이전 글: ELK + beats 시작하기

어떻게 구성할 것인가?

가이드 글에 나타난 것처럼 beath와 elk의 동작은(가장 기본적인) filebeat의 내용을 elk로 보내면 된다.

image


난 여기서 filebeat이랑 logstash 서버를 달리하고싶은건데… 이 포스터 가 정말 다양한 구성을 보여주고 있어서 좋다. 아래 그림은 그 중 가장 기본적인 구조이다.

image

처음에 위 그림에서 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를 추가하니 그 때 추가해보도록 하자 :)
image

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

실행은 문제없이 된다 :) image

비밀번호 변경이 추가되어야하는데 이 때문에 자꾸 에러가 떠서 잠깐 보류..ㅠㅠ..(일단 내 로컬에서만 테스팅할거니까)

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