얼마전 ELK Stack이 Splunk 대체 Solution으로서 적합한가에 대해 논하고자 글을 적었다. ELK Stack을 사용해보고 Splunk와 비교하기 위해 글을 적으며 ELK Stack의 간단한 소개와 설치, 설정, 사용법에 대해 다룬 적이 있다.

하지만 얼마 지나지않아 Elasticsearch, Logstash, Kibana가 새로운 버전을 선보였다. 이에 이 글에서는 새로워진 ELK Stack을 사용해보고자 설치와 설정 및 사용법에 대해 설명한다.

ELK Stack이 무엇인지 잘 모른다면 이전 글을 참고하길 바란다.


설치 및 설정

아래의 내용은 1대의 Server 환경에서 설치 및 설정한 경우이며, Elasticsearch는 1.0.1, Logstash는 1.4.0 GA, Kibana는 3.0.0 GA를 사용하였다.


Elasticsearch 설치 및 설정

(1) Elasticsearch 홈페이지에서 Elasticsearch의 zip파일을 다운받아 unzip한다.


(2) Elasticsearch 모니터링을 위한 Plugin을 설치 한다.

  $ bin/plugin --install mobz/elasticsearch-head


(3) config/elasticsearch.yml의 node.name을 지정한다. 이는 노드 식별을 위한 이름이므로 유일성과 의미를 가진 이름을 사용한다.


Logstash 설치 및 설정

(1) Elasticsearch 홈페이지에서 Logstash의 zip파일을 다운받아 unzip한다.


(2) Logstash Config File을 생성하여 다음과 같이 저장한다.

  input {

    file {

      path => "/var/log/apache2/access.log"

      type => "apache"

    }

  }

  filter {

    grok {

      type => "apache"

      pattern => "%{COMBINEDAPACHELOG}"

    }

    date {

      type => "apache"

      match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]

    }

  }

  output {

    stdout { debug => true debug_format => "json"}

    elasticsearch { host => "localhost" }
  }


Kibana 설치 및 설정

(1) Elasticsearch 홈페이지에서 Kibana의 zip파일을 다운받아 unzip한다.

 


(2) unzip한 파일은 Elasticsearch의 Plugin에 넣어 사용한다. 경로는 다음과 같다.

  path/to/elasticsearch/plugins/kibana/_site


(3) path/to/elasticsearch/plugins/kibana/_site/config.js의 Elasticsearch Server URL을 지정한다. 

     (예: elasticsearch: "http://localhost:9200")


실행

Elasticsearch 실행

unzip한 Elasticsearch 디렉토리안에서 실행한다.

  $ bin/elasticsearch


Logstash 실행

unzip한 Logstash 디렉토리안에서 실행한다.

  $ bin/Logstash -f logstash.conf

logstash.conf는 앞서 생성한 Logstash의 Config File이다.


Kibana 실행

Elasticsearch의 Plugin안에 넣었기 때문에 따로 실행할 필요가 없다. 

http://localhost:9200/_plugin/kibana/#/dashboard에서 Kibana가 잘 뜨는지 확인한다.


사용

Dashboard 생성

(1) http://localhost:9200/_plugin/kibana/#/dashboard에서 Blank Dashboard를 클릭한다.


(2) 설정 아이콘을 클릭한다.


(3) Dashboard의 Title을 입력하고 저장하면 새로운 Dashboard가 생성된다.

Panel 생성

(1) 'ADD A ROW' 버튼을 클릭 한다.


(2) Rows의 Title을 입력하고, 'Create Row' 버튼을 클릭하여 Row를 생성한 후 저장하고 창을 닫는다.


(3) Panel 생성을 위해 'Add panel to empty row' 버튼을 클릭한다.


(4) Panel Type을 선택하고 저장한후 창을 닫는다. 여기서는 'histogram'을 선택하였다.


(5) Panel의 Title 및 사용자가 원하는 설정을 하고난 후 'Add Panel' 버튼을 클릭하여 Panel을 생성하고 창을 닫는다.


(6) 위에서 선택한 Type의 Panel이 생성되었음을 확인할수 있다.


Query

다양한 Query를 이용하여 Search하고 결과를 확인할 수 있다. 

(Query문의 종류 :  http://lucene.apache.org/core/3_5_0/queryparsersyntax.html )



Apache로그를 이용하여 위와 같은 작업을 거쳐 Dashboard를 완성해 보았다.



Reference Sites

(1) Elasticsearch : http://www.elasticsearch.org/

(2) ELK Download : http://www.elasticsearch.org/overview/elkdownloads/

(3) Logstash 1.4.0 Docs : http://logstash.net/docs/1.4.0/tutorials/getting-started-with-logstash

(4) Elasticsearch 1.x version set up : http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup.html

(5) Whats cooking kibana : http://www.elasticsearch.org/blog/whats-cooking-kibana/



Posted by minji7