Tomcat의 catalina.out 을 filebeat를 통해 logstash로 전송 후 이걸 ES에 저장.
그리고 키바나에서 분석 및 기타 등등 하고 싶은 작업을 하는...
이걸 하게된 계기는 그냥 유부트 영상보다가 하게 된...
https://www.youtube.com/watch?v=J2PIBQgEpC4&list=PLVNY1HnUlO24LCsgOxR_eK2Yi4sOgH9Pg
허민석 님의 유투브 강의 인데, 이것만 보면 나도 이제 데이터사이언티스트 ㅋㅋㅋㅋ라고 생각하며 정독 했어요.
이 영상은 5.6 기반의 영상인데 나는 7.0 환경에서 하다보니 약간의 문제 아닌 문제들을 만나게 되었어요.
일단 E가 실행중이어야 L이 데이터를 보낼 수 있으며, L 또한 실행중이어야 F가 데이터를 보낼 수 있겠죠?
E는 그냥 켜있기만 하면 되고요!
L은 input과 output에 대한 정보가 기록된 conf 파일이 필요해요.
모든 내용을 다 알어야 하는건 아닌데
output 부분에서 if를 사용가능하더라고요.
output {
if [host][hostname] == "www1" or [host][hostname] == "www2" {
elasticsearch {
hosts => ["http://localhost:9200"]
manage_template => false
index => "front-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
else if [host][hostname] == "batch" {
elasticsearch {
hosts => ["http://localhost:9200"]
manage_template => false
index => "batch-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
else {
elasticsearch {
hosts => ["http://localhost:9200"]
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
}
if 에 조건부에 쓰인 부분이 정확히 뭔지도 모르고 그냥 예제 따라 했더니,
자꾸 else로 빠져서 내가 원하는 인덱스에 데이터를 안넣더군요!
그러다가 E에 쌓인 데이터를 보니 ...
조건절에 쓰인내용을 필드를 가리키는 거였...뭔지도 잘 모르고 계속 해보니 안될 수 밖에...
무슨 차이인지 모르겠으나(버전차이?) 필드 이름이 예제와는 다르게 넘어오고 있던...
그리고 filebeat는 tomcat이 설치된 서버에 설치를 하는데...
dpkg 설치를 해서 설정 파일은 /etc/filebeat에 있어요.
filebeat.yml을 열어보면
filebeat.inputs 와 output.logstash
부분을 수정 하면 되는데요.
일단 inputs 부분은
enabled 부분을 true로 변경하고
paths 부분을 톰캣의 catalina.out으로 변경하면 되겠죠?
그리고 예제에서는 멀티라인이 알아서 잘 처리가 되던데...버전에 따른 기본값의 차이인지 모르겠으나,
저 부분이 주석이 걸린 상태에서는 작동이 안되어서, 한줄한줄 도큐멘트로 다 쌓이는...ㅎㅎ
순식간에 용량이 어마어마 해지더라고요~!!
pattern 부분은 본인 로그에 알맞게 수정해서 사용하면 될거 같아요!
보통 톰캣로그가 시작부분이 [시간]으로 시작을 해서 저렇게 하면 잘 처리되는듯 합니다!
그리고 두번째로 만난 문제!
curator에 대한 부분인데요. curator가 5.6버전까지만 있어요.
근데 뭣도 모르고 이거 설치하고 사용하려고 하니 버전차이로 인해 안되는거 있죠.
그래도 오래된 쓸모없는 로그자료는 지워야 하기에...찾아보니...
이런게 있더라고요!
일단 정책? 을 만들어주고, 그 정책을 사용할 템플릿을 만들어 주고 해당 템플릿에는 여러 인덱스가 속하겠고요.
그럼 알아서 작동하는건데~~
기존에 있던 인덱스는 적용이 안되더라고요? 이 부분은 저도 잘 모르겠어요. 좀더 찾아봐야 할까 했는데...
어차피 새로 만드는 인덱스만 적용되면 저는 만족 하는 부분이라...ㅎㅎ
정책은 위처럼도 가능하지만, Kibana > Management > Index Lifecycle Policies에서도 작성이 가능해요
작성한 정책을 인덱스템플릿과 연결하는것도 kibana에서 가능합니다.
그리고 직면하는 또 새로운 문제 ㅋㅋㅋㅋㅋ
https://discuss.elastic.co/t/index-lifecycle-error/171254/4
이 부분은 공식문서에도 나오는 부분인데 인덱스를 alias를 지정해야하는 문제다.
근데 인덱스가 logstash를 통해 데이터를 받으며 자동으로 생성이 되는건가 어찌해야할까...
위 내용을 잘 읽어보면 해결책이 있다.
처음에 한번만 수동으로 인덱스를 생성하면 문제가 안된다고 하네요.
공식문서에도 비슷한 내용이 적혀있긴한데 영알못인 나한테는 너무 어렵게 다가옴...
그리도 또 한가지 문제를 만남...
인덱스 이름의 패턴은 -뒤에 숫자만 가능...하다는...그렇다면 . 빼고 숫자만 남겨주면 되려나?..
'서버 > ES' 카테고리의 다른 글
[ElasticSearch] X-PACK 보안(인증) 기능 포함 무료~!!(BASIC) (0) | 2019.06.03 |
---|---|
[ElasticSearch] Nori - Index 생성 (0) | 2019.04.26 |
[ElasticSearch - Kibana] 설치 For Ubuntu (0) | 2019.04.12 |
[ElasticSearch] 초성 필터링에 대한 고찰 (0) | 2019.04.11 |
[ElasticSearch] Nori와 설치 For Ubuntu (0) | 2019.04.09 |