파일 수집과 registry
- filebeat는 registry에 파일을 어디까지 읽었는지 offset으로 저장한다.
- cursor의 offset에 해당하는 숫자가 파일내의 바이트 단위 offset이다.
- output으로 설정된 시스템(es나 logstash)와 연결이 끊기면 마지막으로 전송된 줄을 추적하고 연결이 다시 되면 다시 마지막으로 전송된 줄부터 파일을 읽어서 전송한다.
- logstash가 죽더라도 logstash가 정상 구동되고 filebeat와 연결되면 그때부터 다시 로그를 수집하고 registry가 업데이트된다.
파일비트의 파일 식별 기준
- 리눅스 파일시스템에서 파일비트는 inode와 device 값을 사용하여 파일을 식별한다.
- 디스크에서 파일을 제거하면 새로운 파일이 제거된 inode와 device값을 할당받을 수 있다. 이 때는 registry에 기록된 정보가 제거된 파일과 동일한 파일로 간주하고 offset값부터 읽으려고 하여 문제될 수 있다.
- clean_inactive와 clean_removed를 적절히 설정해야함 (참고)
- 디스크에서 파일을 제거하면 새로운 파일이 제거된 inode와 device값을 할당받을 수 있다. 이 때는 registry에 기록된 정보가 제거된 파일과 동일한 파일로 간주하고 offset값부터 읽으려고 하여 문제될 수 있다.
파일비트의 prospector
- 공식문서에서 파일비트의 clean_** 옵션을 테스트할 때 하나의 파일로만 삭제하면 테스트가 정상적으로 안되고 하나의 파일을 더 생성하는 걸 권고한다.
- 새로운 파일을 생성하거나 수집하는 다른 파일에 append를 해야 prospector에 트리거돼서 registry에 상태를 업데이트할 수 있다. (링크 참고)
'ELK' 카테고리의 다른 글
[Filebeat] 8 버전 filestream input 타입 재수집 이슈 (0) | 2024.07.14 |
---|---|
Kibana circuit_breaking_exception (1) | 2024.07.10 |