LabHub

로그로 원인 찾기 · 로그 읽는 법 · 실습

접근 로그에서 사고 시각 찾기

LabHub 에서 이어서 보기

목표

1269줄짜리 접근 로그에서 사고 시각과 원인 경로를 10분 안에 찾아내고, 급증 폭을 평시값과 비교해 숫자로 말할 수 있게 됩니다.

왜 중요한가

"오류가 103건 있습니다" 는 정보가 아닙니다. 평소가 5건이었으면 심각하고 120건이었으면 개선된 것입니다. 그래서 로그 분석은 원인 찾기가 아니라 기준선 만들기에서 시작하고, 낯선 고객사에는 기준선 문서가 없으므로 같은 로그 안에서 만들어야 합니다. 사고 구간을 제외한 나머지가 곧 평시값입니다.

그리고 4xx 와 5xx 를 반드시 나눠 봅니다. 4xx 는 클라이언트가 잘못 보낸 것이고 5xx 는 서버가 망가진 것이라, 두 숫자가 같이 움직이는지 따로 움직이는지가 원인의 방향을 알려 줍니다. 배포 후 4xx 만 늘었다면 API 계약이 바뀐 것이고, 5xx 만 늘었다면 내부가 깨진 것입니다.

/opt/data/web.log 의 형식은 공백으로 구분된 다섯 필드입니다.

10.9.4.21 04:52:15 GET /api/pay 200IP        시각      메서드 경로     상태코드

단계

1. /root/incident 디렉터리를 만드세요.
2. 상태 코드가 500 인 요청의 총 개수를 /root/incident/total_500.txt 에 적으세요.
3. 상태 코드가 404 인 요청의 총 개수를 /root/incident/total_404.txt 에 적으세요.
4. 500 이 가장 많이 발생한 HH:MM 형태로 /root/incident/peak_minute.txt 에 적으세요.
5. 500 이 가장 많이 발생한 경로/root/incident/endpoint.txt 에 적으세요.
6. 그 피크 1분 안에서 발생한 500 의 개수를 /root/incident/peak_count.txt 에 적으세요.
7. 피크 분을 제외한 나머지 시간대의 500 개수를 /root/incident/baseline.txt 에 적으세요.
8. 위 네 값이 모두 들어간 요약을 /root/incident/summary.txt 에 쓰세요.

참고

단계 8개

  1. 작업 디렉터리 만들기
  2. 500 총량 세기
  3. 404 총량 세기
  4. 사고 시각 찾기
  5. 원인 경로 찾기
  6. 피크 분의 오류 수 세기
  7. 평시 오류량 구하기
  8. 분석 요약 만들기