
二.對上面的工作流程進行簡單描述。
(1)將filebeat部署到需要采集日志的服務器上,filebeat將采集到的日志數(shù)據(jù)傳輸?shù)絢afka中。
(2)kafka將獲取到的日志信息存儲起來,并且作為輸入(input)傳輸給logstash。
(3)logstash將kafka中的數(shù)據(jù)作為輸入,并且把kafka中的數(shù)據(jù)進行過濾等其他操作,然后把操作后得到的數(shù)據(jù)輸入(output)到es(elasticsearch)中。
?(4)es(基于lucene搜索引擎)對logstash中的數(shù)據(jù)進行處理,并且將數(shù)據(jù)作為輸入傳送給kibna進行顯示。
三.部署該平臺需要的軟件,本次部署使用的軟件及版本如下:
? (1)? elasticsearch-6.1.3.tar.gz
(2)filebeat-6.1.3-linux-x86_64.tar.gz
(3)kibana-6.1.3-linux-x86_64.tar.gz
(4)logstash-6.2.3.tar.gz
(5)kafka_2.12-1.0.0.tgz
以上軟件可以到elasticsearch官網(wǎng)下載需要的軟件:
https://www.elastic.co/cn/products
四.安裝以及配置各軟件。
(1)elasticsearch安裝配置
? ? ? ? ? 1.首先解壓elasticsearch-6.1.3.tar.gz
? ? ? ? ? ? ?tar -zxvf?elasticsearch-6.1.3.tar.gz
? ? ? ? ? 2.修改config/elasticsearch.yml配置文件

? ? ? ? ? ? 將配置中的network.host修改為本機的ip地址,配置配置自己的端口號
? ? ? ? ? ?3.啟動elasticsearch(啟動該軟件不能使用root用戶,需要普通用戶,可以新建普通用戶,將 目錄的權(quán)限都賦予給該新用戶)
? ? ? ? ? ? ? ?nohup bin/elasticsearch?&
? ? ? ? ? ? ? ?驗證是否啟動成功:

(2)kibana安裝配置:
? ? ? ? ? vim config/kibana.yml
? ? ? ? ? 具體配置如下(根據(jù)自己的ip以及端口情況進行配置)

? ? ? ?啟動kibana: nohup bin/kibana &
? ? ? ?在瀏覽器中驗證是否啟動成功:

(3)kafka安裝與配置:
? ? 請參考http://blog.51cto.com/xiangcun168/1933375
(4)logstash安裝與配置:
在logstash安裝軟件中新建test.conf配置文件。
配置如下,該配置中沒有加過濾器filter

上述配置說明如下:
topics后面的test和logstash-tomcat表示從kafka中topic為test與logstash-tomcat的主題中獲取數(shù)據(jù),此處的配置根據(jù)自己的具體情況去配置。
bootstrap_servers表示配置kafka的ip與端口。
output配置中的hosts表示elasticsearch的ip和端口好,index的配置是用于后面在kibana中配置index使用。
啟動logstash:nohup bin/logstash -f test.conf &
(5)filebeat安裝與配置:
修改filebeat的配置文件filebeat.yml

paths后的值表示從/home/elk/log/access.log中獲取數(shù)據(jù),tags表示日志標簽,在后面的kibna中查看數(shù)據(jù)時可以找到該tag標簽,并且可以根據(jù)該tag標簽查找過濾查找數(shù)據(jù)。

添加kafka輸出的配置,將elasticsearch輸出配置注釋掉。hosts表示kafka的ip和端口號,topic表示filebeat將數(shù)據(jù)輸出到topic為test的主題下,此處也根據(jù)自己情況修改。
啟動filebeat: nohup ./filebeat -c filebeat.yml &
(6)在kibana操作:
以上平臺都搭建好以后在kibana上創(chuàng)建index索引,該index索引和logstash配置中的output中的index對應。

該index名稱要和logstash配置中的index正則匹配,否則新增不了。
驗證搭建的平臺,日志數(shù)據(jù)是否能正常獲取及顯示。在filebeat配置文件中paths對應的目錄下新增access.log文件,并且添加數(shù)據(jù)進去,然后在kibana上查看數(shù)據(jù)是否正常顯示。

點開任何一條數(shù)據(jù)可以查看詳細情況:

截圖中的tags即表示filebeat中配置文件中的tags配置,可以將tags作為filter過濾條件進行查詢。

在分布式系統(tǒng)中,可以將某一類服務器日志歸為一個tag,這樣在查詢?nèi)罩緯r可以減小查詢的區(qū)域。
說明:
1.在部署的過程中可能會遇到各種情況,此時根據(jù)日志說明都可以百度處理(如部署的過程中不能分配內(nèi)存的問題)。
2.如果完成后如果數(shù)據(jù)顯示不了,可以先到根據(jù)工作流程到各個節(jié)點查詢數(shù)據(jù)是否存儲和傳輸成功。如查詢filebeat是否成功把數(shù)據(jù)傳輸?shù)搅薻afka,可以使用kafka中如下命令查詢:
bin/kafka-console-consumer.sh?--zookeeper?localhost:2181?--topic?test?--from-beginning
查看日志filebeat中的數(shù)據(jù)是否正常在kafka中存儲。
在filebeat配置的日志中手動添加日志: echo "test" > access.log,可以在kafka中動態(tài)的顯示出該信息
3.該平臺的搭建是比較簡便的方式,大家可以更加靈活以及動態(tài)的配置該平臺。