더 자세한 내용은 Logstash를 보면 좋다.
[DevOps/ELK] - Logstash Tutorial, 로그스태시 튜토리얼
Filebeat Turorial
-https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html
목적
경량으로 log를 forwarding 할 수 있음
설치
- https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation-configuration.html
직접 curl을 통해 다운로드 가능
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.5.3-linux-x86_64.tar.gz
tar xzvf filebeat-8.5.3-linux-x86_64.tar.gz
filebeat.yml 파일 configuration 설정
- https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html
filebeat.inputs:
- type: log
enabled: true
#아래 경로에 있는 log파일들 모두를 input 으로 함
paths:
- /var/log/apache2/*.log
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
#elasticsearch 인덱스 번호 설정
setup.template.settings:
index.number_of_shards: 3
#filebeat에서 수집한 로그를 elasticsearch로 출력
output.elasticsearch:
hosts: ["localhost:9200"]
특히 configuration 설정할 때 몇 가지 field를 더 쓰기도 함
-multiline:
여러 줄의 로그 중에서 특수한 패턴을 매칭시키기 위해 사용 → log에 newline 이 있을 때 사용함
pattern : 정규식 표현 패턴을 의미
negate : 패턴에 대해 negate 할지 말지에 대한 여부 결정 → negate를 하게 되면(true) 해당 패턴을 제외하는 line과 매칭하게 됨
match : 여러 줄이 된 log에 대해 combine이 될 지 여부를 결정 → 현재(current) line을 합치는 작업 -> (before) 패턴 매칭 전에 합치고, 매칭 (after) 패턴 매칭 후에 합침 : 즉, 현재 라인이 매칭이 안되면 합치지 않음
filebeat.inputs:
- type: log
paths:
- /var/log/nginx/access.log
multiline.pattern: '^\['
multiline.negate: true
multiline.match: after
실행
filebeat 또한 Shell 터미널에서 직접 실행하기 보다는 Shell Script로 많이 실행됨
역시 백그라운드에서 실행되어야 하기 때문에 몇 가지 옵션 사용
- nohup
- daemonize
#!/bin/bash
# Start Filebeat as a daemon
sudo filebeat -e -c /etc/filebeat/filebeat.yml -d "publish" &
# Check the status of Filebeat
sudo service filebeat status
'DevOps > ELK' 카테고리의 다른 글
Elasticsearch (2) | 2023.04.01 |
---|---|
Logstash vs Filebeat (0) | 2023.01.04 |
ELK, Elasticsearch+Logstash+Kibana (0) | 2022.12.29 |
Logstash Tutorial, 로그스태시 튜토리얼 (2) | 2022.12.29 |
grok (0) | 2022.12.29 |