2021년 7월 26일 월요일

ignore_older

ignore_older는 수집 대상 로그의 시간 범위를 결정할 수 있게 해준다. 그런데 filebeat의 ignore_olderwinlogbeat의 ignore_older는 좀 다르다.

filebeat

filebeat의 ignore_older는 수집 대상 파일이 수정된 시간을 검사한다. 다음은 filebeat input 설정.
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - D:\ELK\filebeat-7.12.0-windows-x86_64\logs\*
  ignore_older: 24h

해당 설정은 프로세스 실행 시점으로부터 modified time, 즉 수정된 시간이 24시간 이내인 파일만을 수집한다.


검사 조건이 파일 수정 시간이기 때문에 때문에 실제 로그 기록 시간은 따지지 않는다. 로그 파일 내에 24시간 이전에 기록된 로그가 있어도 파일 수정 시간이 조건과 일치하면 수집한다는 얘기.   


이때 filebeat가 읽은 데이터의 마지막 위치는 다음 경로에 기록된다. 그래야 한 번 읽은 로그를 또 읽지 않을테니까. 만약 데이터를 다시 읽어들이고 싶다면 해당 파일을 지우면 된다.


winlogbeat

winlogbeat의 ignore_older는 로그가 실제 기록된 시간을 본다. 다음은 보안 이벤트 input 설정. 해당 설정은 정확히 24시간 이내에 발생한 이벤트만 수집한다.
winlogbeat.event_logs:
  - name: Security
    ignore_older: 24h

아무래도 다수 파일이 로테이션하지 않고, 이벤트 유형별로 하나의 파일만 기록하니 좀 더 직관적으로 동작한다. 다음은 winlogbeat가 읽은 데이터의 마지막 위치를 기록하는 경로. 


참고로 스플렁크 역시 같은 기능을 지원하는데, 일단 ignoreOlderThan은 filebeat의 ignore_older와 똑같이 동작한다. 특징은 텍스트 로그에 대해서만 동작한다는 것. 윈도우 이벤트 로그는 current_only와 checkpointInterval을 적절히 조합해서 사용해야 한다.

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스