filebeat FAQ
Filebeat는 거의 실시간으로 새 로그 줄을 읽을 수 있도록 파일 끝에 도달할 때까지 파일 핸들러를 열어 둡니다. Filebeat가 많은 수의 파일을 수집하는 경우 열린 파일 수가 문제가 될 수 있습니다. 대부분의 환경에서는 업데이트되는 파일 수가 적습니다.
더 이상 활성화되지 않은 파일을 닫으려면 close_inactive 구성 옵션을 적절하게 설정해야 합니다.
다른 구성 옵션을 사용하여 파일 처리기를 끌 수 있지만 이러한 옵션은 모두 부작용이 있을 수 있으므로 주의해서 사용해야 합니다. 옵션은 다음과 같습니다.
close_renamed 및 close_removed 옵션은 Windows에서 파일 회전과 관련된 문제를 해결하는 데 유용합니다.
파일 핸들러를 열면 Windows 파일 회전 문제가 발생합니까?를 참조하세요.
close_eof 옵션은 항목이 거의 없는 파일 수가 많은 환경에서 유용합니다.
close_timeout 옵션은 모든 로그 줄을 보내는 것보다 파일 핸들러를 닫는 것이 더 중요한 환경에서 유용합니다. 자세한 내용은 통합관리자 설정을 참조하십시오.
이러한 구성 옵션을 사용하기 전에 해당 구성 옵션에 대한 설명서를 읽으십시오.
Filebeat는 파일을 자주 검색하도록 구성될 수 있습니다. filebeat.yml 구성 파일에서 scan_주파수 설정을 확인하세요. scan_주파수를 1초 미만으로 설정하면 Filebeat가 빈번한 루프에서 디스크를 스캔할 수 있습니다.
Filebeat는 각 파일의 상태를 유지하고 해당 상태를 디스크의 Registry_file에 저장합니다. Filebeat가 다시 시작되면 파일 상태를 사용하여 이전 위치에서 파일을 계속 읽습니다. 매일 많은 수의 새 파일이 생성되면 레지스트리 파일이 너무 커질 수 있습니다. 레지스트리 파일의 크기를 줄이기 위해 clean_removed 및 clean_inactive라는 두 가지 구성 옵션을 사용할 수 있습니다.
더 이상 건드리지 않고 무시하는 오래된 파일에는 clean_inactive를 사용하는 것이 좋습니다(ignore_older 참조). 오래된 파일이 디스크에서 제거된 경우 clean_removed 옵션을 사용하십시오.
Inode를 재사용하면 Filebeat가 행을 건너뛰게 되나요?
Linux 파일 시스템에서 Filebeat는 inode와 장치를 사용하여 파일을 식별합니다.
디스크에서 파일이 삭제되면 새 파일에 inode를 할당할 수 있습니다.
파일 회전과 관련된 사용 사례에서 이전 파일을 삭제하고 그 직후 새 파일이 생성되면
새 파일은 삭제된 파일과 정확히 동일한 inode를 가질 수 있습니다. 이 경우 Filebeat는 새 파일이 이전 파일과 동일하다고 가정하고 이전 위치에서 계속 읽기를 시도하는데 이는 잘못된 것입니다.
기본 상태는 레지스트리 파일에서 제거되지 않습니다. inode 재사용 문제를 해결하려면 clean_* 옵션(특히 clean_inactive)을 사용하여 비활성 파일의 상태를 제거하는 것이 좋습니다.
예를 들어, 파일이 24시간마다 순환되고 순환된 파일이 더 이상 업데이트되지 않는 경우,ignore_older를 48시간으로 설정하고 clean_inactive를 72시간으로 설정할 수 있습니다.
디스크에서 제거된 파일에 clean_removed를 사용할 수 있습니다. clean_removed는 검사 중에 파일을 찾을 수 없는 경우 레지스트리에서 파일 상태를 지웁니다. 나중에 파일이 다시 표시되면 처음부터 다시 전송됩니다.
Filebeat는 개행 문자를 사용하여 이벤트의 끝을 감지합니다. 수집되는 파일에 줄이 점진적으로 추가되는 경우 마지막 줄 뒤에 개행 문자가 필요합니다. 그렇지 않으면 Filebeat는 파일의 마지막 줄을 읽지 않습니다.
기본 동작에서 Filebeat는 파일을 열고 파일 끝에 도달할 때까지 열어 둡니다.
구성된 출력을 오랫동안 사용할 수 없는 상황(예: Elasticsearch 또는 Logstash를 사용할 수 없음)에서는 이로 인해 Filebeat가 파일 시스템에서 삭제된 파일에 대한 파일 핸들러를 동시에 유지할 수 있습니다. . Filebeat가 삭제된 파일을 열어두는 한 운영 체제는 디스크 공간을 확보하지 않으므로 디스크 활용도가 증가하거나 디스크가 부족한 상황이 발생할 수도 있습니다.
이 문제를 완화하려면 close_timeoutedit 설정을 "5m"으로 설정할 수 있습니다. 이렇게 하면 EOF 도달 여부에 관계없이 파일 핸들러가 5분마다 닫히게 됩니다.
참고: 이 옵션을 사용하면 Filebeat가 파일 끝에 도달하기 전에 파일이 삭제될 경우 데이터가 손실될 수 있습니다.
대역폭 사용량을 제한해야 하는 경우 운영 체제 OS에서 네트워크 스택을 구성하여 대역폭 제한을 수행하는 것이 좋습니다.
예를 들어, 다음 Linux 명령은 포트 5044를 통한 TCP 연결에 50kbps 제한을 설정하여 Filebeat와 Logstash 간의 연결을 제한합니다.
운영 체제 도구를 사용하여 대역폭 수행 조절 전략을 더 효과적으로 제어할 수 있습니다. 예를 들어, 운영 체제 도구를 사용하여 낮에는 대역폭을 제한할 수 있지만 밤에는 제한할 수 없습니다. 또는 대역폭을 제한하지 않고 트래픽에 낮은 우선순위를 할당할 수 있습니다.
구성 파일의 구조에 문제가 있거나 구성 파일에 올바르게 이스케이프되지 않은 문자가 포함되어 있기 때문에 YAML 파서가 구문 분석할 수 없는 경로나 표현식을 사용하고 있습니다.
YAML 파일에 공백이나 특이한 문자가 포함된 경로가 포함된 경우 경로를 작은따옴표로 묶습니다(작은따옴표를 줄 바꿈 경로로 표시 참조).
또한 YAML 팁 및 문제 해결에서 일반적인 조언을 참조하세요: https://www.elastic.co/guide/en/beats/filebeat/current/yaml-tips.html
색인 템플릿이 올바르게 로드되지 않을 수 있습니다. 4단계: Elasticsearch에서 인덱스 템플릿 로드를 참조하세요.
최근에 사용자 정의 구조화된 로그를 로드하거나 구문 분석하는 작업을 수행한 경우 Kibana에서 필드를 사용할 수 있도록 인덱스를 새로 고쳐야 할 수도 있습니다. 인덱스를 새로 고치려면 새로 고침 API를 사용하세요.
예:
참조: https://www.elastic.co/guide/en/beats/filebeat/current/faq.html