ELK3 [Filebeat] 파일 수집과 registry 파일 수집과 registryfilebeat는 registry에 파일을 어디까지 읽었는지 offset으로 저장한다.cursor의 offset에 해당하는 숫자가 파일내의 바이트 단위 offset이다.output으로 설정된 시스템(es나 logstash)와 연결이 끊기면 마지막으로 전송된 줄을 추적하고 연결이 다시 되면 다시 마지막으로 전송된 줄부터 파일을 읽어서 전송한다.logstash가 죽더라도 logstash가 정상 구동되고 filebeat와 연결되면 그때부터 다시 로그를 수집하고 registry가 업데이트된다. 파일비트의 파일 식별 기준리눅스 파일시스템에서 파일비트는 inode와 device 값을 사용하여 파일을 식별한다.디스크에서 파일을 제거하면 새로운 파일이 제거된 inode와 device값을 할당.. 2024. 7. 14. [Filebeat] 8 버전 filestream input 타입 재수집 이슈 filebeat 8.7 버전의 filestream input 타입으로 로그 파일을 수집하는 환경에서 로그 파일을 재수집하는 이슈가 발생했다. 로그파일은 일자별로 rotate되고 있는 상황이었다. 특정 일자의 로그 파일을 수집하다가 처음부터 다시 읽는 현상 간헐적으로 발생했고 어떤 파일만 재수집했는지 registry를 분석했다.두가지 상황에서 재수집했다.1. 파일비트 재시작 할 때 2. 특정 파일을 수집하는 도중에 처음부터 수집하는 경우 분석 결과, 1번의 경우에 재시작하면서 registry에 저장된 inode에 해당된 파일을 읽으려고 시도 -> 저장된 offset이 파일의 바이트 크기보다 커서 offset에 해당하는 내용이 없음-> 처음부터 수집, 파일비트 로그는 다음과 같이 찍힘 File was tr.. 2024. 7. 14. Kibana circuit_breaking_exception 키바나에서 elasticsearch과 연결이 안된다는 문구가 떴고 로그를 보니 kibana에서 모니터링 인덱스를 elasticsesarch에 넣을 때 circuit_breaking_exception이 난다.모니터링 인덱스 data 크기가 커서 발생한 에러로 보인다.elasticsearch의 힙 사이즈를 늘려줬다. elasticsearch 공식 docs를 보니 elasticsearch는 default로 서버 메모리의 절반 (도커로 띄워져 있는 경우 컨테이너에 설정된 메모리의 절반)을 힙 사이즈로 지정해준다고 한다.직접 설정하기보다는 운영레벨에서는 default sizing으로 설정하라고 권장한다.따라서, docker-compose.yml에서 mem_limit을 ec2서버 메모리를 고려해줘 늘려서 해결했다... 2024. 7. 10. 이전 1 다음