Filebeat 를 봐야 할 일이 생겨서 문서 확인 및 요약하기 위함.
현재 6.0 을 쓰고 있어서 6.0 기준으로 살펴 볼려고 하며 역시 공식 사이트 번역 정도임 ( https://www.elastic.co/guide/en/beats/filebeat/6.0/index.html )
파일비트 시작하기
filebeat.prospectors: - type: log enabled: true paths: - /var/log/*.log #- c:\programdata\elasticsearch\logs\*
Golang Glob 패턴을 지원한다고 함.
하위 디렉토리까지 가져오기 위해선 /var/log/*/*.log
logstash output 을 사용하기 위해서는 logstash 에 beat input plugin 설치를 해야 함
일반적인 로그 포멧을 지원해 주기 위해서 모듈을 제공
Nginx, Apache2, Mysql 등등의 모듈을 제공
파일비트 설정하고 실행하기
* 디렉토리 구조 ( 사이트 들어가서 보는게 좋을 듯 https://www.elastic.co/guide/en/beats/filebeat/6.0/directory-layout.html )
기본적인 구조는 path.home 밑에 bin, data, logs 가 위치하는 구조이고, 실행할 때 path.config, path.data, path.logs 인자를 주어 변경 가능
기본 위치가 있고 자세한 건 위 링크에 들어가서 보는게 좋을 듯.
* 커맨드 라인 실행 옵션
위에 설명한 디렉토리 구조 ( --path.config 등등) 외에 여러개가 있으며 이것도 사이트 ( https://www.elastic.co/guide/en/beats/filebeat/6.0/command-line-options.html ) 에서 필요할 때마다 참고 하는게 좋을 듯. 하나 test command 가 있어서 설정 테스트를 해 볼 수 있다는걸 숙지.
* 도커로 실행하기
docker run \ -v ~/filebeat.yml:/usr/share/filebeat/filebeat.yml \ docker.elastic.co/beats/filebeat:6.0.1
이미지를 입맞에 맞게 변경하기 위해선 아래와 같이 하면 됨
FROM docker.elastic.co/beats/filebeat:6.0.1 COPY filebeat.yml /usr/share/filebeat/filebeat.yml USER root RUN chown filebeat /usr/share/filebeat/filebeat.yml USER filebeat
파일 비트는 어떻게 동작하는가?
* harvester
하나의 파일의 내용을 읽는 애로써 하나의 파일을 읽어서 내용을 출력함.
파일을 열고 닫는것 까지 처리를 하고 있으며, 하비스터가 실행 되고 있으면 file descriptor 가 남아 있다는 의미임. 하비스터가 살아 있는데 파일이 지워져도 계속 잡고 있기 때문에 디스크 문제가 있을 수 있음 close_inactive 에 도달할 때 까지 파일을 열고 있음
파일 close 에 대한 설정은 close_* 옵션으로 설정 할 수 있음
* prospector
하비스터를 관리하고 읽어야 할 모든 소스를 찾는 역할을 하며, 자신만의 Go routine 을 가지고 실행함.
log, stdin 타입만 지원하며, 프로스펙터당 2개 이상의 type 선언이 가능하다.
로그스태시처럼 어디까지 읽었는지 position 을 별도로 디스크에 저장함.
파일비트는 데이터 유실 없이 at-leat-once 전달을 하는데 각 이벤트에 대한 상태를 별도로 가지고 있기 때문
모듈, 자세한 설정등은 필요할 때 사이트에서 봐야 할 듯
기타
filebeat -e 로 디버깅 가능 ( foreground 로 실행하여 output이 console 에 찍힘 )
자주 묻는 질문
* 네트워크 볼륨에 있는 파일은 읽을 수 없습니까? -> 네. (읽지 못한다고 생각하세요.)
* 너무 많은 오픈 파일 핸들러
filebeat는 파일의 마지막 (엔터 2번? ) 에 도달할 때까지 파일을 열고 있다.
너무 많은 파일을 하비스터가 열고 있으면 문제가 될 수 있다. 일반적인 환경에서는 활성화 되어 있는 파일의 업데이트 횟수가 적은 편인데 close_inactive 설정에 따라 파일을 닫을 수 있다.
close_* 관련 옵션 설정을 좀 봐야 할 듯 하며, 특히 file rotation 에 필요 할 듯
* 너무 큰 Registry file
파일이 큰 경우 clean_removed, clean_inative 옵션을 활용할 것
* Inode 재사용으로 인해 lines 가 생략되는 문제?
* 파일비트가 너무 많은 CPU 를 사용하는 문제
* 파일비트가 마지막 라인은 불러오지 않는다.
* 지워진 파일을 너무 오랜 시간동안 열고 있다.
* bandwidth 를 제한할 필요가 있다?
os 설정을 수정하라.
'elasticsearch' 카테고리의 다른 글
sping data elasticsearch 정리 ( spring 에서 es 사용 관련) (3) | 2016.12.14 |
---|---|
elasticsearc 검색 첫 번째 (0) | 2016.06.23 |
elasticsearch indexing Performance Tips ( 엘라스틱서치) (0) | 2016.06.01 |
elasticsearch module (엘라스틱서치 모듈에 대해서) (0) | 2016.05.29 |
엘라스틱서치 ( elasticsearch ) 순차 재시작 (0) | 2016.05.27 |