Home | 문태준 | 시스템어드민 메일링 | Sys Admin 세미나
Skip to end of metadata
Go to start of metadata

https://www.elastic.co/guide/en/beats/libbeat/current/getting-started.html 문서보고 따라해보기

java 설치

https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04

ELK 설치 방법

바이너리 파일로 설치할 수도 있고 apt 로 설치할 수도 있음.

apt 로 설치하려고 할 경우 설정하기 https://www.elastic.co/guide/en/beats/libbeat/current/setup-repositories.html

logstash : port 5044

es : port 9200


ES 설치

ES :  메모리 1G 일때 에러가 나서 메모리 4096으로 세팅하였음.

https://www.elastic.co/guide/en/beats/libbeat/current/elasticsearch-installation.html : deb 설치

localhost에서만 접속가능하며 /etc/elasticsearch/elasticsearch.yml 파일을 설정하여 바꿀 수 있다. 

현재 상태를 조회하기 위해서는 API를 활용하면 된다.

Cluster APIs : https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html

사람에게 편한 cat APIs :  https://www.elastic.co/guide/en/elasticsearch/reference/current/cat.html

Cluster APIs는 json 으로 결과를 돌려주기 때문에 사람이 보기가 불편하다. 그래서 cat APIs를 사용하는 것이 편리하다. 위의 페이지를 보면 사용법은 간단하다.

 

 

 

logstash 설치

https://www.elastic.co/guide/en/beats/libbeat/current/logstash-installation.html : deb 설치

logstash 프로그램 경로가 나와있지 않다. 

https://www.elastic.co/guide/en/logstash/5.6/dir-layout.html 참고하면 됨.

/usr/share/logstash/bin/logstash-plugin update logstash-input-beats 

위 프로그램실행시 java 프로그램을 못 찾는다고 나온다. 아래 설정을 하면 된다.

 Logstash pipeline configuration file  파일을 만들어야 한다고 하는데 /etc/logstash/conf.d/ 디렉토리에 만들어야  /var/log/logstash 에서 에러가 없었다.

 

logstash 가 정상작동하는지는 아래와 같이 테스팅을 할 수 있다.

https://www.elastic.co/guide/en/logstash/5.6/first-event.html

kibana 설치

https://www.elastic.co/guide/en/beats/libbeat/current/kibana-installation.html#kibana-installation

tar 파일로 설치했다가 apt로 바꿈. 기본은 localhost에서만 접속이 된다. https://www.elastic.co/guide/en/kibana/current/settings.html 내용을 참고하여 conf/kibana.yml 파일 또는 /etc/kibana/kibana.yml 에서 server.host 를 "0.0.0.0" 으로 지정하고 kibana를 다시 띄우면 원격에서 접속이 되었다.

 

그런데 위와 같이 설치하면 kibana에서 어떻게 검색을 할 수 있는지 몰라서 kibana Getting Started 의 내용을 보면서  샘플데이터 넣고 인덱스를 만들고 kibana 사용법을 익혀야 한다..

https://www.elastic.co/guide/en/kibana/current/getting-started.html

  • Load a sample data set into Elasticsearch
  • Define an index pattern
  • Explore the sample data with Discover
  • Set up visualizations of the sample data
  • Assemble visualizations into a Dashboard

sample data를 넣은 경우 아래의 명령으로 해당 인덱스가 있는지 확인을 할 수 있다. 

 

이 문서를 계속 따라가면서 실습하는데 visualizations  은 이해 안되는 내용이 있었지만 그냥 따라 해 보았다.

https://www.elastic.co/guide/en/kibana/current/tutorial-visualizing.html

filebeat 설치

https://www.elastic.co/guide/en/beats/filebeat/5.6/filebeat-getting-started.html

 

apt 등록을 하고 설치하는게 편리하다.

https://www.elastic.co/guide/en/beats/filebeat/5.6/setup-repositories.html

filebeat 설치

 

filebeat 설정  : output을 elasticsearch 대신 logstash로 설정을 해야 함. logstash에서도 설정을 해야 함.   https://www.elastic.co/guide/en/beats/filebeat/5.6/config-filebeat-logstash.html

logstash 설정은 https://www.elastic.co/guide/en/beats/libbeat/5.6/logstash-installation.html#logstash-setup 에 나와 있다.

elasticsearch대신 logstash로 보낼 경우  load the index template into Elasticsearch manually  를 해야 한다고 나와있다. 

https://www.elastic.co/guide/en/beats/filebeat/5.6/filebeat-template.html 에 있는 아래 내용을 실행한다.

 

처음 filebeat 설치시 설정

elasticseach 대신 logstash로 변경 : 사전에 logstash 에서 filebeat 를 받을 수 있도록 설정해야 함.

 

logstash 에서 filebeat 를 받을 수 있도록 설정하기  https://www.elastic.co/guide/en/beats/libbeat/5.6/logstash-installation.html#logstash-setup

Updating the Beats Input Plugin for Logstash

logstash를 재시작해준다.

logstash grok test

Getting Started with Logstash 문서를 보고 테스팅을 해 보았다. 아래 문서를 보면 어떻게 logstash 에서 파싱을 하는지 나와있다. 

https://www.elastic.co/guide/en/logstash/current/advanced-pipeline.html

https://www.elastic.co/guide/en/logstash/current/multiple-input-output-plugins.html

 

이 문서를 보면 filebeat, logstash를 서비스로 띄우지 않고 필요한 부분만 테스팅 하는 방법을 설명하고 있다. 디버깅 할 때는 편리할 것 같다.

아래는 Getting Started with Logstash  문서를 다 읽고 테스팅을 한 내용이므로 해당 문서를 보면서 테스팅을 각각 해봐야 한다.

먼저 filebeat, logstash 서비스를 내려 놓는다.

 

일단 테스팅했던 코드만 나열..

filebeat : /var/log/nginx/access.log, /var/log/*.log 파일을 전송하도록 설정을 함. fileds 를 추가하여 log_type으로 구분을 할 수 있도록 하였음. nginx 는 먼저 설치가 되어서 정상적으로 돌아가고 있어야 한다.

filebeat 명령을 실행하면 해당 로그를 logstash로 보내려고 시도를 한다. 

계속 업데이트되는 파일이 아니라 샘플데이터 파일을 가져와서 실행을 하는 경우 filebeat 에서 다시 정보를 보내려면 /var/lib/filebeat/registry 파일을 지우고 filebeat 를 실행하면 된다.

 

이제 logstash 테스팅 파일을 만든다.

몇가지 설명

  • grok를 이용하여 nginx 로그파일에서 필요한 필드를 뽑아내고 있다. 위의 예는 nginx 기본 로그파일 포맷을 이용하는 것이며 해당 로그 패턴은 /etc/logstash/grok 디렉토리에 만들어 두었다.
  • output에서 stdout { codec => rubydebug } 부분은 콘솔에서 바로 출력하도록 하는 부분임. 디버깅용.

설정파일에 문제가 없는지 확인을 한다. warning 메시지는 나오지만 설정파일에 문제가 있는지 확인은 한다.

설정파일에 문제가 없으면 테스팅 설정파일을 이용하여 logstash를 띄운다. --config.reload.automatic 옵션은 설정파일을 변경하는 경우 자동으로 읽어들이도록 하는 옵션이다.

 

 

Labels
  • No labels