ELK 구축 (Elastic Search + Kibana + Logstash)
1. ElasticSearch를 설치합니다. (ubuntu 기준)
(https://www.elastic.co/guide/en/beats/libbeat/5.5/elasticsearch-installation.html)
1-1. JAVA 설치 (8이상 버전에서 실행가능)
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
1-2. ElasticSearch 다운로드 및 unzip
$ curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
$ unzip elasticsearch-5.5.1.zip
$ cd elasticsearch-5.5.1
1-3. ElasticSearch config 설정 (사용자가 원하는 이름과 경로로 설정해주면 됩니다. 아래는 예시입니다.)
(../elasticsearch-5.5.1/config 디렉토리에서 실행)
$ vi elasticsearch.yml
cluster.name: elk_cluster
node.name: elk_node-1
http.port: 9200
1-4. 실행
(../elasticsearch-5.5.1/bin 디렉토리에서 실행)
./elasticsearch
1-5. 실행 확인
$ curl localhost:9200
{ "name" : "elk_node-1", "cluster_name" : "elk_cluster", "cluster_uuid" : "CEmUNQhIQlmuUdU6qv1JWQ", "version" : { "number" : "5.5.1", "build_hash" : "19c13d0", "build_date" : "2017-07-18T20:44:24.823Z", "build_snapshot" : false, "lucene_version" : "6.6.0" }, "tagline" : "You Know, for Search" }
2. Logstash를 설치합니다.
(https://www.elastic.co/guide/en/beats/libbeat/5.5/logstash-installation.html)
2-1. Logstash 다운로드 및 unzip
$ curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-5.5.1.zip
$ unzip logstash-5.5.1.zip
2-2. Logstash config 설정
(http://rea1man.tistory.com/83 블로그에서 참고하였으며 최근 양식으로 conf 수정하였습니다.)
- 아래 conf는 free, cat /proc/stat, df -k 명령어를 파싱하여 mem, cpu, hdd를 모니터링하는 설정입니다.
- localhost:9200 이 부분은 ElasticSearch가 설치된 호스트 및 포트를 입력해주면됩니다.
- server-status-%{+YYYY.MM.dd} 이 부분은 원하는 index name을 설정해주면 됩니다. (추후 Kinaba에서 데이터 시각화 시 필요한 name입니다.)
(../logstash-5.5.1/bin 디렉토리에서 실행)
$ vi logstash-simple.confinput { exec { command => "free | grep buffers/cache | awk '{print int($3/($3+$4)*100)}'" interval => "5" type => "mem" } exec { command => "cat /proc/stat | grep 'cpu ' | awk '{print int(($2+$3+$4)/($2+$3+$4+$5)*100)}'" interval => "5" type => "cpu" } exec { command => "df -k | grep /was | awk '{print ($5*1)}'" interval => "5" type => "hdd" } } filter { mutate { convert => ["message", "integer"] } } output { elasticsearch{ hosts => "localhost:9200" index => "server-status-%{+YYYY.MM.dd}" } }
2-3. 실행
(../logstash-5.5.1/bin 디렉토리에서 실행)
$ ./logstash -f logstash-simple.conf
※ 만약 정상적으로 올라가지 않는다면 일단 ElasticSearch 프로세스를 재시작 후 Logstash를 실행 하시면 됩니다.
3. kibana 설치
(https://www.elastic.co/guide/en/beats/libbeat/5.5/kibana-installation.html)
3-1. 다운로드 및 실행
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-5.5.1-linux-x86_64.tar.gz
tar xzvf kibana-5.5.1-linux-x86_64.tar.gz
cd kibana-5.5.1-linux-x86_64/
./bin/kibana
3-2. Kibana 접속 확인
(원격으로 putty 등으로 접속할 경우 터널링 필요)
http://localhost:5601 접속
참고 사이트
Realman World 블로그: http://rea1man.tistory.com/83
Elastic : https://www.elastic.co/guide