上一篇里主要是介紹了ES和ES-Head的安裝過程,這一篇繼續介紹ELK集群的其他核心組件安裝過程。
五、安裝Logstash:
本案的Logstash安裝在10.113.130.117上;燃鵝,Logstash也可以利用多臺組成集群,如果未來單臺處理不過來,可以把Logstash擴展到其他服務器上。
將logstash.tar.gz解壓到指定目錄:
# tar -zxvf logstash-5.4.1.tar.gz -C /opt/ # mv /opt/logstash-5.4.1/ /opt/logstash/
logstash三種啟動方式,靠參數進行選擇:-e sting類型啟動,-f 指定配置文件啟動,服務啟動。
但我們沒有通過yum安裝,暫時無法以服務方式啟動——需要編寫啟動腳本。?
創建簡單的配置文件:
# cd /opt/logstash/config # cp sample.conf es-cluster.conf # vim /opt/logstash/config/es-cluster.conf #參考下面的配置信息,Logstash啟動后讀取/var/log/messages的文件內容 input{file{start_position => "beginning"path => ["/var/log/messages "]type => 'messagelog'} }#然后將文件內容發送給ElasticSearch的目標服務器 output{ elasticsearch { hosts => ["10.113.130.116:9200"] } }
完成配置修改后,先啟動logstash,看一下運行情況:
# /opt/logstash/bin/logstash -f /opt/logstash/config/es-cluster.conf &#如果看到如下信息,表示啟動成功: [INFO ][logstash.outputs.elasticsearch] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>[#<URI::Generic:0x5f86b37e URL://10.113.130.116:9200>]} [INFO ][logstash.pipeline] Starting pipeline {"id"=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>500} [INFO ][logstash.pipeline] Pipeline main started [INFO ][logstash.agent] Successfully started Logstash API endpoint {:port=>9600}
?
六、安裝FileBeats
當Logstash安裝完成后,要實現從應用服務器上收集日志的工作,這個工作如果使用Logstash來執行,也是沒有問題的。
在應用服務器上,按照以上安裝Logstash的操作和配置就可以達到目的;但是Logstash安裝繁瑣,而且如果僅僅作為收集日志的代理,未免太重。
?因此選擇官方推薦的FileBeats作為勤勞的工蜂,實現指定文件的掃描、文件內容的收集和發送工作。
?讓我們看看是不是在5分鐘內能完成FileBeats的安裝配置吧:
# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.1-x86_64.rpm # rpm -vi filebeat-5.4.1-x86_64.rpm
修改配置文件:
# vim /etc/filebeat/filebeat.yml filebeat.prospectors: - input_type: log paths: - /ane/tomcat/logs/*.log #- /ane/tomcat/logs/*.out input_type: log #----------------------------- Logstash output -------------------------------- output.logstash:# The Logstash hostshosts: ["10.113.130.117:5044"]worker: 4
配置了日志輸出到Logstash之后,建議注釋掉輸出到Elasticsearch的部分。
?啟動FileBeats:
- For CentOS: # systemctl start filebeat- For Redhat 6.5: # service filebeat start
如果采用了FileBeat收集日志文件,則可以關閉Logstath的文件讀取,從指定的端口讀取數據流。
登錄到Logstash的服務器(10.113.130.117),修改Logstash的配置文件為如下內容:
# vim /opt/logstash/config/es-cluster.conf input{stdin{}beats{port => 5044} }output{elasticsearch {hosts => ["10.113.130.116:9200"]index => "logstash-%{+YYYY.MM.dd}"document_type => "%{[@metadata][type]}"} }
修改完以后,重啟Logstash。
請注意一個細節:logstash-%{+YYYY.MM.dd},不能寫成{+YYYY.MM.DD},不然第二天以后的日期顯示不正確!下面展示寫錯的情況:
上面圖中的logstash-2017.06.170,是6月18日的日志文件的匯總標題。前一天(17日)是正確的,次日就這樣了。
?
七、安裝Kibana
Kibana安裝在10.113.130.118上。從官網下載Kibana.tar.gz,解壓到/opt目錄下:
# tar -zxvf kibana-5.4.0-linux-x86_64.tar.gz -C /opt/# mv /opt/kibana-5.4.0-linux-x86_64 /opt/kibana/ # cd /opt/
# chown -R elasticsearch:elasticsearch kibana
修改配置文件
# cd kibana/
# vim config/kibana.yml#修改如下選項: Server.port: 5601 Server.host: “0.0.0.0” Elasticsearch.url: “10.113.130.116:9200” Kibana.index: “.kibana” Pid.file: /var/run/kibana.pid
由于kibana文件夾的所有者為Elsticsearch,運行也要以elsticsearch用戶身份。
與Elsticsearch的處理方式類似,創建啟動腳本:
# vim kibana-start.sh su - elasticsearch -c "nohup /opt/kibana/bin/kibana> /dev/null 2>&1 &"# chmod +x kibana-start.sh # mv kibana-start.sh /usr/local/bin
#kibana-start.sh
Kibana啟動以后,在瀏覽器輸入http://10.113.130.118:5601,可以看到如下頁面:
?
?
八、安裝ElasticHD
ElasticHD 是一款 ElasticSearch的可視化應用。不依賴ES的插件安裝,更便捷;導航欄直接填寫對應的ES IP和端口就可以操作ES了。目前支持如下功能:
- ES 實時搜索
- ES DashBoard 數據可視化
- ES Index Template (在線修改、查看、上傳)
- SQL Converts to DSL
- ES 基本查詢文檔
?詳見:https://github.com/farmerx/elasticHD/wiki
?
登錄到第一臺服務器(10.113.130.116),下載對應的elasticHD版本,上傳到服務器:
# unzip xxx_elasticHd_xxx.zip
# mv ElasticHD /opt/ # chmod 777 ElasticHD
可指定ip端口運行elastichd
# /opt/ElasticHD -p 10.113.130.116:9800 &
同樣,推薦將上方的啟動命令,制作成啟動腳本eshd-start.sh,并移動到/usr/local/bin/目錄下,可直接執行。
安裝成功后,在瀏覽器輸入配置的地址和端口,看到如下畫面:?
?
?