ELK + beats 시작하기 2
ELK를 이용해 beats 데이터를 모아보자
이전 글: ELK + beats 시작하기
어떻게 구성할 것인가?
가이드 글에 나타난 것처럼 beath와 elk의 동작은(가장 기본적인) filebeat의 내용을 elk로 보내면 된다.
난 여기서 filebeat이랑 logstash 서버를 달리하고싶은건데…
이 포스터 가 정말 다양한 구성을 보여주고 있어서 좋다.
아래 그림은 그 중 가장 기본적인 구조이다.
처음에 위 그림에서 master / data nodes (3)이 이해가 안갔다.
- master 1에 data 3개라는 뜻인가…?
- master, data 모두 3개라는 뜻인가?
이 곳 에서 해답을 찾을 수있었다.
Master eligible node라는 개념으로 중요한 역할인 master가 죽어버리면 이를 대신할 node를 지정해놔야한다. 그리고 매번 마스터는 최적의 노드가 맡게된다고한다.
즉 모든 노드가 data node이자 master node 후보였던 것이다. 기본값이 마스터이면서 데이터라고 한다. 단, production 환경에서는 분리하는 것이 좋다고…
Ingest Nodes는 인덱싱 전 전처리를 담당하는 노드인데 아래 그림을 보면 이는 분리해서 두는게 좋다고 나와있다.
x-pack은 이 곳 에 설명되어있다.유료 기능이 때문에,, 필요하지않는 경우 관련 설정을 지워준다.(elastic,kibana,logstash/config/~.yml 파일에 있다)
X-Pack은 보안, 알림, 모니터링, 보고, 그래프 기능을 설치하기 편리한 단일 패키지로 번들 구성한 Elastic Stack 확장 프로그램입니다.
각 노드의 필요 스팩이다. 일단 위 사진에는 없는 노드인데 ML은 지금 당장은 필요가없고.. Coordinator는 좀 더 봐야할 듯 하다. 위 문서에서도 나중에 성능 업그레이드를 위해 coordinating node를 추가하니 그 때 추가해보도록 하자 :)
ELK Cluster 생성
위에 나와있듯이 구성하려면 cluster 구성이 필요하다. 각 노드를 생성한 뒤 클러스터로 통신이 가능하게끔하자.
ELK on Docker 설치
https://github.com/deviantony/docker-elk 를 clone해서 사용하면 된다.
$ git clone https://github.com/deviantony/docker-elk
$ cd docker-elk
$ docker-compose up
실행은 문제없이 된다 :)
비밀번호 변경이 추가되어야하는데 이 때문에 자꾸 에러가 떠서 잠깐 보류..ㅠㅠ..(일단 내 로컬에서만 테스팅할거니까)
REFERENCES
https://logz.io/blog/elasticsearch-cluster-tutorial/
https://www.gnoti.com/index.php/2018/10/22/elk9/
https://m.blog.naver.com/olpaemi/222005459201
https://www.datio.com/architecture/elasticsearch-universe-architectural-perspective/
https://www.digitalocean.com/community/questions/how-to-setup-filebeat-and-another-beats-to-get-log-data-from-another-server
https://www.elastic.co/kr/blog/should-i-use-logstash-or-elasticsearch-ingest-nodes