엘라스틱서치 환경구성

Docker 이미지로 elastic search, Logstash, File beat, Kibana 7.5.2 설치 사용 port: 9200, 9300 (Elastic Search), 5601 (Kibana), 5044,9600(Logstash)

Logstash 는 버전상의 이유로 7.6.1로 업데이트 해줬습니다.

Linux에서 도커에 elastic search를 올릴땐 도커의 한계호용메모리를 늘려주어야 한다. Sudo sysctl -a | grep vm.max Sudo sysctl -w vm.max_map_count=262144 그러나 영구적이진 않다 영구적인 방법: Sudo vi /etc/sysctl.conf 에 vm.max_map_count값을 넣은후 Sudo sysctl -p 로 적용

Xpack 설정은 다 disable 시켜두자(로그스태시,키바나)

Elastic Search 기본정보

Elastic search를 올릴땐 single node 인지 멀티노드인지 반드시 설정해주어야함

Run command:

docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch -e "discovery.type=single-node" -v /data1/elasticsearch/elasticsearch:/usr/share/elasticsearch --log-opt max-size=100m --log-opt max-file=3 docker.elastic.co/elasticsearch/elasticsearch:7.6.2

키바나 기본정보

Docker 에 올릴때 link 걸어주고 config yaml 파일의 엘라스틱 서치 주소를 바꿔주어야 한다 (바꾼이름)

Run command: docker run -d --link elk-e --name kibana -p 5601:5601 -v /data1/elasticsearch/kibana:/usr/share/kibana --log-opt max-size=100m --log-opt max-file=3 docker.elastic.co/kibana/kibana:7.6.2

Logstash의 기본정보

Config/logstash.yml 파일에서 http host: “0.0.0.0” 으로 설정 바꿔주어야함 Config/pipeline yml파일에서 pipeline 파일들 지정 Pipeline/logstash.config 에서 Input filter output 정의 Output elasticsearch 에 주소는 “http://elk-e:9200”과 같이 정의해주어야 한다. xpack은 반드시 # 처리를하자

Run command: docker run -d --name elk-l --link elk-e -p 5044-5049:5044-5049 -p 9600:9600 --user root -v /data1/elasticsearch/logstash:/usr/share/logstash --log-opt max-size=100m --log-opt max-file=3 docker.elastic.co/logstash/logstash:7.6.2

Filebeats

설정 조언: 5 Filebeat Pitfalls To Be Aware Of | Logz.io

도커내에서 도커밖의 파일을 어떻게 바라볼것인가 고민 Filebeat는 tcp 통신이다 Output elastic search 할때는 http://elastichostip:9200 다 써주고 Output logstash 할떄는 ip 경로만 입력하자 tcp 통신이어서 앞에 tcp:// 가 붙는다 Volume 공유로 파일 공유 Filebeat를 run 시작할땐 --user root 으로 만들어줄것

Run Command: docker run -d —name elk-f -v /Users/home/hyunsuklogs:/usr/share/filebeat/logs —user root docker.elastic.co/beats/filebeat:7.5.2