標籤:
這是之前Logstash+kibana+ Elasticsearch+redis 安裝時,自己整理的初學者容易看懂的資料,按照以下的步驟也已經完成了安裝。
這裡有二台伺服器:
192.168.148.201logstash index,redis,Elasticsearch,kibana,JDK
192.168.148.129 logstash agent,JDK
1 系統各部分應用介紹
Logstash:一個完全開源對日誌進行收集、分析和儲存的工具。他可以做系統的log收集,轉載的工具。同時整合各類日誌外掛程式,對日誌查詢和分析的效率有很大的協助.一般使用shipper作為log收集、indexer作為log轉載.
- Logstash shipper收集log 並將log轉寄給redis 儲存
- Logstash indexer從redis中讀取資料並轉寄給elasticsearch
redis:在這裡做一個緩衝的機制,logstash shipper將log轉寄到redis(只做隊列處理不做儲存)。Logstash indexer從redis中讀取資料並轉寄給elasticsearch。 這裡加上redis是為了提高Logstash shipper的日誌提交到Logstash indexer的速度,同時避免由於突然斷電等導致的資料的丟失。
Elasticsearch:開源的搜尋引擎架構,它提供了一個分布式多使用者能力的全文檢索搜尋引擎,基於RESTful web介面。也可進行多資料集群,提高效率。這裡的目的是從redis中讀取資料,並轉寄到kibana中。
Kibana:漂亮的介面展示,用web介面將資料採礦後的資料以圖表等形式進行形象的展示。
以下是工作的一個流程圖:
2 服務端的安裝步驟(192.168.148.201)
2.1 JDK安裝
1.下載JDK:jdk-8u25-linux-x64.tar.gz
2.解壓安裝:
我們把JDK安裝到這個路徑(自己定義):/opt
cd /opttar -zxvf jdk-8u25-linux-x64.tar.gz
出現檔案夾 jdk1.8.0_25。
3.配置環境變數:vim ~/.bashrc
在開啟的檔案的末尾添加,
export JAVA_HOME=/opt/jdk1.8.0_25export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
儲存退出,然後輸入下面的命令來使之生效
source ~/.bashrc
4.配置預設JDK
sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_25/bin/java 300sudo 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命令即可。
makemake install
4.redis.conf設定檔為:
daemonize yesport 6379appendonly yes
5.啟動:
redis.server redis.conf
6.測試
redis-cli127.0.0.1:6379> quit/binredis-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" }
啟動:
[email protected]:/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-availablecp 000-default.conf kibana3.confvim 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/apache2vim ports.conf
Listen 80Listen 8080#新加的<IfModule ssl_module> Listen 443</IfModule> <IfModule mod_gnutls.c> Listen 443</IfModule>
各種重啟:
cd /var/www/html/kibana3/app/dashboardsmv logstash.json default.json/etc/init.d/apache2 restart
cd /optelasticsearch-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
歡迎介面
Logstash+kibana+ Elasticsearch+redis