Quiz: tailing a file
한국어 원문으로 표시합니다.
로그 회전(rename 방식) 뒤 수집이 조용히 멈추는 이유는?
- 새 파일의 권한이 달라 열 수 없기 때문
- 기억해 둔 바이트 위치가 새 파일의 크기보다 커서 읽을 것이 없기 때문
- 회전 중에는 수집기가 파일을 잠그기 때문
- inode 가 같아 수집기가 변화를 못 느끼기 때문
copytruncate 방식의 로테이션을 수집기가 알아채는 단서는?
- inode 가 달라진다
- 파일 이름에 숫자가 붙는다
- 파일 크기가 읽은 위치보다 작아진다
- 수정 시각이 과거로 바뀐다
수집기의 위치 기록에 최소한 무엇이 들어가야 하나?
- 파일 이름과 수정 시각
- inode 와 바이트 offset
- 마지막으로 읽은 줄의 해시
- 파일 크기와 줄 수
위치 파일이 사라진 채 수집기가 재시작했다. '처음부터 읽기' 를 고르면?
- 이미 보낸 줄이 다시 들어와 중복이 생긴다
- 그때까지 쌓인 줄을 통째로 잃는다
- 수집기가 오류로 멈춘다
- 회전본까지 함께 읽어 순서가 뒤섞인다
회전된 파일에 아직 안 읽은 꼬리가 남는 일을 진짜 수집기들은 어떻게 다루나?
- 회전 직후 파일 이름으로 옛 파일을 다시 찾아 읽는다
- 열어 둔 파일 서술자를 잠시 더 붙들어 꼬리를 읽는다
- 로테이션 주기를 수집 주기의 배수로 맞추게 한다
- 회전이 감지되면 그 주기의 자료를 버린다
수집이 조용히 멈춘 것을 알아채는 가장 실용적인 방어는?
- 수집기 자신의 지표를 재고 0 이 되면 경보를 건다
- 수집기를 매시간 재시작한다
- 로그 파일 권한을 넓힌다
- 회전 주기를 늘려 파일을 크게 유지한다