map $time_iso8601 $year {
    '~^(?<y>\d{4})-'  $y;
}

map $time_iso8601 $month {
    '~^\d{4}-(?<m>\d{2})-'  $m;
}

map $time_iso8601 $day {
    '~^\d{4}-\d{2}-(?<d>\d{2})'  $d;
}

map $time_iso8601 $hour {
    '~T(?<h>\d{2}):'  $h;
}

map $time_iso8601 $minute {
    '~T\d{2}:(?<m>\d{2}):'  $m;
}

map $minute $minute5 {
  ~00|01|02|03|04 00;
  ~05|06|07|08|09 05;
  ~10|11|12|13|14 10;
  ~15|16|17|18|19 15;
  ~20|21|22|23|24 20;
  ~25|26|27|28|29 25;
  ~30|31|32|33|34 30;
  ~35|36|37|38|39 35;
  ~40|41|42|43|44 40;
  ~45|46|47|48|49 45;
  ~50|51|52|53|54 50;
  ~55|56|57|58|59 55;
}

server {
  access_log /var/log/nginx/5m/$year-$month-${day}_$hour:$minute5.log;
}
반응형

목표

중앙 집중식 로그 서버를 구축하여, 통계를 만들어낸다.

전체 로깅 시스템

  • 일일 단위 로깅
  • 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

해당 실행 파일은 다음과 같은 순서를 가진다.

  1. 약 3초 정도의 sleep (로그 파일이 안정적으로 쓰기를 종료)
  2. 5m 폴더의 로그 파일 메타데이터를 API로 전달 (서버로 전달될 로그 파일의 갯수 및 해시)
  3. gzip으로 압축 (네트워크 비용 감소)
  4. FTP 등을 이용해서 로그파일 업로드

로깅 시스템 에러 발생 시 복구

중앙 서버에서 FTP 트리거를 이용하여 gzip 파일을 받아서 ungzip 이후 메타데이터와 비교 (정상적으로 전달이 됐는지 확인)
5분 뒤 API를 이용해서 받은 로그파일 갯수와 FTP로 전송받은 로그 파일 갯수 확인
파일 갯수가 다르면 알림 발생
분석 솔루션 시작 (5분 이내로 분석이 완료되도록 스케일 아웃 필요)

반응형

터지지 않고, 속은 다 익은 상태임

반응형

듀얼 모니터암 설치 완료 후에 듀얼 모니터암을 추천하지 않는 이유라는 글을 봤다.

https://www.youtube.com/watch?v=_gbt-BHToRI&pp=ygUT65OA7Ja8IOuqqOuLiO2EsOyVlA%3D%3D

설치에 시간과 노력을 투입했으니, 그냥 사용할려다가 주변의 모든 사람의 비추를 받고 반품 후 싱글 2개로 변경했다.

 

https://www.coupang.com/vp/products/7803766078

 

루나랩 플러스 싱글 모니터암

COUPANG

www.coupang.com

결국 이 제품으로 변경했다.

이걸로 바꾸니 4~5만원 추가 금액이 더 들었다.

 

이제 모니터만 사면 된다.

모니터는 급하지 않아 할인을 기다리고 있다.

27UP850N

 

반응형

 

반응형

+ Recent posts