ELK를 사용해 웹서버의 tomcat로그를 가져오는 방법 정리
elasticsearch는 띄워져있다고 생각하고 logstash,filebeat 설치 방법을 정리함.
Filebeat설치는 읽어올 로그가 있는 서버에 각각 설치해준다
서버가 3대면 각 서버에 Filebeat설치해야함
logstash,elasticsearch는 맘에드는 서버에 설치하면 되고 A라는 서버에 함께 설치했다.
$touch /사용자지정경로/logstash.conf
$vi logstash.conf
input {
beats {
port => "5044"
}
}
filter {
grok {
match => {"message" => "%{COMBINEDAPACHELOG"}
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["host:9200"]
index => "test-logstash-%{+YYYY.MM.dd}"
}
}
logstash 는 1) input 2) filter 3) output 크게 3가지 구조가 있다.
$/~bin/logstash -f /사용자지정경로/logstash.conf
위의 방법으로 실행시 기본위치에 data폴더로 쓰여짐
! 데이터 폴더 지정하여 실행 방법
$/~bin/logstash -f /사용자지정경로/logstash.conf --path.data /사용자지정경로/my_data/
이렇게 하면 data폴더가 아닌 my_data폴더를 사용하게 되어 여러 logstash를 띄울 수 있다.(단, 각 conf파일은 다른 port사용해야함)
마찬가지로 filebeat.tar 파일을 가져와 tar -xvf filebeat 압축해제
$vi filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /dir/tomcat
fields:
log_type: "catalina"
project: "my_project"
output.logstash:
# The Logstash hosts
hosts: ["logstash_install_host:5044"]
위의 부분 제외 모두 주석 처리한다.
$ ./filebeat -e
logstash를 실행하고 filebeat로 로그를 보낸다면 이제 elasticsearch의 kibana로 가면 색인이 생성된 것을 확인 할 수 있다.