天天看點

用Kibana+Logstash+Elasticsearch快速搭建實時日志查詢、收集與分析系統

先看看都需要安裝什麼軟體包

ruby 運作Kibana 必須,

rubygems 安裝ruby擴充必須

bundler 功能類似于yum

JDK 運作java程式必須 

redis 用來處理日志隊列

logstash 收集、過濾日志

ElasticSearch 全文搜尋服務(logstash內建了一個)

kibana 頁面展示

192.168.18.240 logstash index,kibana,JDK

192.168.18.241 logstash agent,JDK

192.168.18.242 redis

192.168.18.243 ElasticSearch,JDK

先安裝redis (192.168.18.242)

#

wget http://redis.googlecode.com/files/redis-2.6.12.tar.gz

# tar zxvf redis-2.6.12.tar.gz 

# mv redis-2.6.12 redis 

# cd redis

# make -j24

# make install

# vi /root/soft/redis/redis.conf

修改level為 loglevel verbose

# redis-server /root/soft/redis/redis.conf & 

看看 redis服務的狀态

#  lsof -i:6379 

安裝elasticsearch (192.168.18.243)

<code># vi /etc/apt/sources.list</code>

<code>deb http:</code><code>//ftp.debian.org/debian/ squeeze main non-free</code>

<code>deb-src http:</code><code>//ftp.debian.org/debian/ squeeze main non-free</code>

<code># apt-get update</code>

<code># apt-cache search sun-java</code>

<code># apt-get install sun-java6-jdk sun-java6-jre</code>

<code># java -version</code>

<code></code>

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.20.6.zip

unzip

elasticsearch-0.20.6.zip

# <code>mv</code> elasticsearch-0.20.6

<code>/usr/local/share/elasticsearch</code>

<code>#</code>

cd /usr/local/share/elasticsearch/bin/

<code># ./elasticsearch -f</code>

在 logstash index上安裝基礎的軟體環境: (192.168.18.240)

<code>開始安裝logstash (</code>其實logstash 就是一個java腳本,不需要安裝... 下載下傳即用 )

# wget https://logstash.objects.dreamhost.com/release/logstash-1.1.9-monolithic.jar

#  vi /root/soft/redis.conf

input {

redis {

  host =&gt; '192.168.18.242'

  data_type =&gt; 'list'

  port =&gt; "6379"

  key =&gt; 'logstash:redis'

  type =&gt; 'redis-input'

  }

}

output {

    elasticsearch {

           host =&gt; '192.168.18.243'

           port =&gt; "9300"

    }

#  java -jar /root/soft/logstash-1.1.9-monolithic.jar agent -f /root/soft/redis.conf -- web --backend elasticsearch:///?local

配置logstash的agent (192.168.18.241)

安裝sun-java6-jre sun-java6-jdk 

wget https://logstash.objects.dreamhost.com/release/logstash-1.1.9-monolithic.jar

        stdin {

                type =&gt; "stdin-type"

        }

        file {

                type =&gt; "linux-syslog"

                # Wildcards work, here :)

                path =&gt; [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]

     redis {

      host =&gt; '192.168.18.242'

      data_type =&gt; 'list'

      key =&gt; 'logstash:redis'

       }

#  java -jar /root/soft/logstash-1.1.9-monolithic.jar agent -f /root/soft/redis.conf &amp;

OK,最後就是 Kibana了 ,我把Kibana裝在了 logstash index上面

<code># apt-get install ruby rubygems</code>

# gem install bundler

# bundle install

     ( /var/lib/gems/1.8/bin/bundle install )

以上為ruby運作環境

 wget https://github.com/rashidkpc/Kibana/archive/v0.2.0.tar.gz

# tar zxvf Kibana-0.2.0.tar.gz 

# cd Kibana-0.2.0 

直接安裝就好了,非常簡單,因為之前咱們已經安裝好了 bundle 

編輯配置檔案,指定 elasticsearch 的位置 

# vim KibanaConfig.rb 

..... 

  Elasticsearch = "192.168.18.243:9200" 

  KibanaPort = 5601 

  KibanaHost = '0.0.0.0' 

主要是這幾個參數 

啟動的話需要ruby 

# /usr/bin/ruby kibana.rb &amp; 

# == Sinatra/1.3.5 has taken the stage on 5601 for development with backup from Thin 

&gt;&gt; Thin web server (v1.5.0 codename Knife) 

&gt;&gt; Maximum connections set to 1024 

&gt;&gt; Listening on 0.0.0.0:5601, CTRL+C to stop 

如果ruby的東西都不缺的話,啟動會很順利,ok 現在看看5601端口的狀态 

# lsof -i:5601 

COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME 

ruby    3116 root    5u  IPv4  28947       TCP *:esmagent (LISTEN) 

<a href="http://img1.51cto.com/attachment/201303/133220759.jpg"></a>

呵呵,要的就是這個效果,日志會實時的彙總到 logstash index 上供我們查詢,當然這隻是開始使用logstash的第一步而已,更多的進階功能可以看看官方文檔