목표
중앙 집중식 로그 서버를 구축하여, 통계를 만들어낸다.
전체 로깅 시스템
- 일일 단위 로깅
- 5분 단위 로깅
일일 단위 로깅
실제로 각각의 서버에서 임시로 저장되는 로그 파일 (7~30d적절하다고 생각)
디버깅 시 해당 파일을 이용하여 사용
파일 경로는 다음과 같은 형식
tail -F /var/log/nginx/access/daily/20240513/example.com.log
5분 단위 로깅
해당 로그 파일은 중앙 집중식 로그 서버 구축하여 전달하기 위한 파일
tail -F /var/log/nginx/access/5m/1.1.1.1_20240513-1425A_example.com.log
crontab 을 이용해서 5분마다 파일이 전달되도록 설정
*/5 * * * * * /opt/gzip_and_send_log_to_server.sh 2.2.2.2
해당 실행 파일은 다음과 같은 순서를 가진다.
- 약 3초 정도의 sleep (로그 파일이 안정적으로 쓰기를 종료)
- 5m 폴더의 로그 파일 메타데이터를 API로 전달 (서버로 전달될 로그 파일의 갯수 및 해시)
- gzip으로 압축 (네트워크 비용 감소)
- FTP 등을 이용해서 로그파일 업로드
로깅 시스템 에러 발생 시 복구
중앙 서버에서 FTP 트리거를 이용하여 gzip 파일을 받아서 ungzip 이후 메타데이터와 비교 (정상적으로 전달이 됐는지 확인)
5분 뒤 API를 이용해서 받은 로그파일 갯수와 FTP로 전송받은 로그 파일 갯수 확인
파일 갯수가 다르면 알림 발생
분석 솔루션 시작 (5분 이내로 분석이 완료되도록 스케일 아웃 필요)
반응형
'메모 메모' 카테고리의 다른 글
Edge - Relay 간의 Cache 상태 나타내기 (0) | 2024.05.30 |
---|---|
nginx log를 5분 단위로 작성하기 (0) | 2024.05.13 |
소시지는 에어프라이에 140도 20분 (2) | 2024.05.09 |
모니터암은 듀얼 말고 싱글X싱글 (0) | 2024.05.07 |
초량 불백집은 찾기 어려워 (0) | 2024.05.02 |