Slide : http://slides.com/silvernine/elk-log/fullscreen
ELK stack(elasticsearch, logstash, kibana)을 이용해서 간단하게 log data visualization이 가능합니다.
* https://www.elastic.co/downloads 에서 아래 버전을 다운 받습니다.
– elasticsearch 2.3.4
– logstash 2.3.4 All Plugins
– kibana 4.5.3
1. elasticsearch
tar zxvf elasticsearch-2.3.4.tar.gz
bin/elasticsearch ( -d 옵션을 추가하면 Background로 실행됩니다. )
curl localhost:9200 ( 터미널에서 엘라스틱서치를 호출합니다. 기본 포트 값은 9200 입니다. )
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "name" : "Paris", "cluster_name" : "elasticsearch", "version" : { "number" : "2.3.4", "build_hash" : "e455fd0c13dceca8dbbdbb1665d068ae55dabe3f", "build_timestamp" : "2016-06-30T11:24:31Z", "build_snapshot" : false, "lucene_version" : "5.5.0" }, "tagline" : "You Know, for Search" } |
편리한 사용을 위해 Head plugin을 설치합니다. ( 유용한 플러그인이 정말 많습니다! )
bin/plugin install mobz/elasticsearch-head
설치 후 http://localhost:9200/_plugin/head/ 접속 해보면 Head Plugin 화면을 확인하실 수 있습니다.
2. logstash
tar zxvf logstash-all-plugins-2.3.4.tar.gz
bin/logstash.conf 파일을 추가하면서 간단하게 json형태의 데이터가 쌓여있는 파일을 읽어서 “logstash-년월” 으로 명명되는 index를 생성하도록 설정 정보를 입력합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
input { file { codec => json path => "/Users/SilverNine/Documents/elastic/data/*.log" } } filter{ } output{ elasticsearch { hosts => ["127.0.0.1"] index => "logstash-%{+YYYY.MM}" codec => "json" } } |
bin/logstash -f bin/logstash.conf ( config 파일을 지정하여 logstash 를 실행합니다. )
실행 후 logstash config에서 지정한 data 폴더에 log 파일을 넣습니다. 예제 log 파일의 데이터 형태는 아래와 같습니다. sample : http://silvernine.me/document/query.20160729.log
1 2 3 4 5 6 7 |
{"query":"언더아머","@version":"1","@timestamp":"2016-07-19T23:51:44.832Z","source":"query.20160720.log","totalHitsCount":7834,"input_type":"log","count":1} {"query":"언더아머","@version":"1","@timestamp":"2016-07-19T23:51:44.832Z","source":"query.20160720.log","totalHitsCount":7834,"input_type":"log","count":1} {"query":"내야글러브","@version":"1","@timestamp":"2016-07-19T23:51:44.832Z","source":"query.20160720.log","totalHitsCount":7834,"input_type":"log","count":1} {"query":"내야글러브","@version":"1","@timestamp":"2016-07-19T23:51:44.832Z","source":"query.20160720.log","totalHitsCount":7834,"input_type":"log","count":1} {"query":"내야글러브","@version":"1","@timestamp":"2016-07-19T23:51:44.832Z","source":"query.20160720.log","totalHitsCount":7834,"input_type":"log","count":1} {"query":"나이키","@version":"1","@timestamp":"2016-07-19T23:51:44.832Z","source":"query.20160720.log","totalHitsCount":7834,"input_type":"log","count":1} {"query":"나이키","@version":"1","@timestamp":"2016-07-19T23:51:44.832Z","source":"query.20160720.log","totalHitsCount":7834,"input_type":"log","count":1} |
다시 Head plugin으로 접속해서 확인해보면 아래와 같이 index가 정상적으로 생성된 것을 확인하실 수 있습니다.
3. Kibana
tar zxvf kibana-4.5.3-darwin-x64.tar.gz
vi config/kibana.yml > server.port, server.host 주석을 해제하고 port는 5601, host는 127.0.0.1 로 설정합니다.
bin/kibana 실행 후 http://localhost:5601 접속!
background mode ( nohup ./bin/kibana > kibana.log 2>&1 & )
Index name or pattern은 default값인 logstash-* 으로 하겠습니다.
화면 오른쪽 상단의 Last 15 minutes 버튼을 눌러 적당한 기간을 선택하도록 합니다.
kibana 에서 elasticsearch의 index정보를 정상적으로 조회 해왔습니다!
4. Visualize
pie chart를 선택하고 아래와 같이 설정합니다.
저장 후 Dashboard 메뉴에서 기 저장했던 chart들을 불러올 수 있습니다.
이런 과정을 통해 여러 차트를 생성한 후 Dashboard를 만들어 저장하면 아래 예시와 같이 꾸밀 수 있습니다.
* share 버튼을 통해서 iframe tag를 export 할 수 있습니다! 관리자 화면 같은 곳에 붙이면 딱 좋겠죠!!
0개의 댓글