Logstash+kibana+ ElasticSearch+redis

  這是以前Logstash+kibana+ ElasticSearch+redis 安裝時,本身整理的初學者容易看懂的資料,按照如下的步驟也已經完成了安裝。html

這裏有二臺服務器:
  192.168.148.201 logstash index,redis,ElasticSearch,kibana,JDK
  192.168.148.129 logstash agent,JDK
java

1 系統各部分應用介紹linux

  Logstash:一個徹底開源對日誌進行收集、分析和存儲的工具。他能夠作系統的log收集,轉載的工具。同時集成各種日誌插件,對日誌查詢和分析的效率有很大的幫助.通常使用shipper做爲log收集、indexer做爲log轉載.git

  • Logstash shipper收集log 並將log轉發給redis 存儲
  • Logstash indexer從redis中讀取數據並轉發給elasticsearch

  redis:在這裏作一個緩存的機制,logstash shipper將log轉發到redis(只作隊列處理不作存儲)。Logstash indexer從redis中讀取數據並轉發給elasticsearch。 這裏加上redis是爲了提升Logstash shipper的日誌提交到Logstash indexer的速度,同時避免因爲忽然斷電等致使的數據的丟失。github

  Elasticsearch:開源的搜索引擎框架,它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。也可進行多數據集羣,提升效率。這裏的目的是從redis中讀取數據,並轉發到kibana中。web

  Kibana:漂亮的界面展現,用web界面將數據挖掘後的數據以圖表等形式進行形象的展現。redis

如下是工做的一個流程圖:數據庫

 

 

2 服務端的安裝步驟(192.168.148.201)apache

  2.1 JDK安裝json

  1.下載JDK:jdk-8u25-linux-x64.tar.gz

  2.解壓安裝:

    咱們把JDK安裝到這個路徑(本身定義):/opt      

cd /opt
tar -zxvf jdk-8u25-linux-x64.tar.gz

     出現文件夾  jdk1.8.0_25。

  3.配置環境變量:vim ~/.bashrc

    在打開的文件的末尾添加,

export JAVA_HOME=/opt/jdk1.8.0_25
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

    保存退出,而後輸入下面的命令來使之生效

source ~/.bashrc

 

  4.配置默認JDK

sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_25/bin/java 300

sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_25/bin/javac 300

    注意:若是以上兩個命令出現找不到路徑問題,只要重啓一下計算機在重複上面兩行代碼就OK了。

    執行下面的代碼能夠看到當前各類JDK版本和配置:

sudo update-alternatives --config java

  5.測試

    打開一個終端,輸入下面命令:

java -version

    檢測java命令是否已經能夠運行了。

  2.2 redis

  下面是redis.conf的主要配置參數的意義:

  • daemonize:是否之後臺daemon方式運行
  • pidfile:pid文件位置
  • port:監聽的端口號
  • timeout:請求超時時間
  • loglevel:log信息級別
  • logfile:log文件位置
  • databases:開啓數據庫的數量
  • save * *:保存快照的頻率,第一個*表示多長時間,第三個*表示執行多少次寫操做。在必定時間內執行必定數量的寫操做時,自動保存快照。可設置多個條件。
  • rdbcompression:是否使用壓縮
  • dbfilename:數據快照文件名(只是文件名,不包括目錄)
  • dir:數據快照的保存目錄(這個是目錄)
  • appendonly:是否開啓appendonlylog,開啓的話每次寫操做會記一條log,這會提升數據抗風險能力,但影響效率。
  • appendfsync:appendonlylog如何同步到磁盤(三個選項,分別是每次寫都強制調用fsync、每秒啓用一次fsync、不調用fsync等待系統本身同步)

這時你能夠打開一個終端進行測試了,配置文件中默認的監聽端口是6379

 

  1.部署一個redis單機實例:

wget https://github.com/antirez/redis/archive/3.0.0-rc1.tar.gz

 

  2.

tar zxvf 3.0.0-rc1.tar.gz

 

  3.編譯

    須要說明的事,redis的安裝很是簡單,已經有現成的Makefile文件,直接運行make命令便可。

make
make install

  4.redis.conf配置文件爲:

 

daemonize yes
port 6379
appendonly yes

  5.啓動:

 redis.server redis.conf

  6.測試

 redis-cli

127.0.0.1:6379> quit

/bin

redis-server redis.conf &

  2.3 logstash

  下載並解壓:

$ wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz

$ tar zxvf logstash-1.4.2.tar.gz -C /usr/local/

$ cd /usr/local/logstash-1.4.2

$ mkdir conf logs

 

  配置文件conf/central.conf:

input {

 

    file {

        path => "/var/log"

        type => "syslog"

        exclude => "*.gz"

    }

 

 

    redis {

        host => "127.0.0.1"

        port => 6379

        type => "redis-input"

        data_type => "list"

        key => "key_count"

    }

}

  output {

    elasticsearch {

     host => "192.168.148.201"

     port => "9300"

    }

 

 

啓動:

  

 root@user:/opt/logstash-1.4.2# bin/logstash agent --verbose --config conf/central.conf --log logs/stdout.log  

 

 

2.4 ElasticSearch

$ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.4.tar.gz

 

  $ elasticsearch使用默認配置便可,默認的cluster name爲:elasticsearch;

  啓動:

lasticsearch -d

 

  $ bin/elasticsearch解壓便可使用很是方便,接下來咱們看一下效果,首先啓動ES服務,切換到elasticsearch目錄,運行bin下的elasticsearch

cd /search/elasticsearch/elasticsearch-0.90.5/bin

./elasticsearch start

 

  訪問默認的9200端口

curl -X GET http://localhost:9200

  3.啓動服務

# elasticsearch-1.1.1/bin/elasticsearch &

# logstash-1.4.2/bin/logstash -f logstash-1.4.2/conf/logstash-apache.conf &

 

  2.5部署Kibana

$ wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.1.tar.gz

$ tar zxvf kibana-3.1.1.tar.gz 

 

   修改配置文件config.js,僅須要配置elasticsearch的地址便可:

elasticsearch: "http://192.168.148.201:9200"
 cp -r kibana-3.1.0 /var/www/html/kibana3

 

  出現問題:kibana 的WEB界面沒法出現,80端口已經被用

cd /etc/apache2/sites-available

cp 000-default.conf kibana3.conf

vim kibana3.conf

 

  

<VirtualHost *:8080>#修改端口

 

    ServerAdmin 192.168.148.201/kibana3#有沒有都不要緊的

    DocumentRoot /var/www/html/kibana3#kibana的根目錄

    <Directory /var/www/html/kibana3>

        Options None

        AllowOverride None

        Allow from all

    </Directory>

CustomLog /var/www/html/kibana combined#放日誌的地方

</VirtualHost>

 

 

cd /etc/apache2

vim  ports.conf

 

Listen 80

Listen 8080#新加的

<IfModule ssl_module>

    Listen 443

</IfModule>

 

<IfModule mod_gnutls.c>

    Listen 443

</IfModule>

  各類重啓:

cd  /var/www/html/kibana3/app/dashboards
mv logstash.json default.json
/etc/init.d/apache2 restart
cd /opt
elasticsearch-1.1.1/bin/elasticsearch &
logstash-1.4.2/bin/logstash -f logstash-1.4.2/conf/logstash.conf &

3.客戶端的安裝

  安裝服務端安裝:

bin/logstash -e 'input { stdin { } } output { stdout { codec => rubydebug } }'
咱們再輸入一些字符,此次咱們輸入"goodnight moon":
goodnight moon {   "message" => "goodnight moon",   "@timestamp" => "2013-11-20T23:48:05.335Z",   "@version" => "1",   "host" => "my-laptop" }

  netstat –atln 看端口信息   

4.訪問:http://192.168.148.201:8080

歡迎界面

 

 

相關文章
相關標籤/搜索