23.ELK實時日誌分析平臺之Beats平臺搭建
在被監控的系統使用Beats平臺,要配合Elasticsearch、Logstash(如果需要的話)、Kibana共同使用。搭建該平臺要求在安裝Beat客戶端的機器上可以訪問到Elasticsearch、Logstash(如果有的話)以及Kibana伺服器。隨著系統的演進,可能會將Elasticsearch擴充套件為叢集,或者將部署過程自動化。
1.安裝Elasticsearch
Elasticsearch是一個實時的、分散式儲存、查詢和分析引擎。它尤其擅長索引半結構化的資料,比如日誌或者網路報文。關於Elasticsearch的更詳細的安裝過程可以參考Elasticsearch安裝過程,確認Elasticsearch安裝並執行成功後,進行下一步。
2.安裝Logstash(可選)
在最簡單的Beats平臺中,可以不使用Logstash,使用Logstash的優勢在於可以自由調整Beats收集到的資料的格式,並且Logstash有很多output的外掛可以與其他系統很好的結合。關於Logstash的更詳細的安裝過程可以參考這裡。
確認Logstash安裝並執行成功後,還需要對Logstash進行一些配置才可以配合Beats平臺使用。比如,Logstash使用beats input plugin
接收來自beat的資料(適配所有遵循beats框架的beat),然後使用Elasticsearch output plugin向Elasticsearch傳送資料,比如在/etc/logstash/conf.d
beats-input.conf
:
input {
beats {
port => 5044
type => "logs"
}
}
再新增如下配置檔案output.conf:
output {
elasticsearch {
hosts => "localhost:9200"
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
當然,需要在Beat的配置檔案中指定將收集到的資料傳送給Logstash,下面以使用Filebeat收集日誌為例講解Logstash與Filebeat配合的方法。
3.安裝Filebeat
關於Filebeat的更詳細的安裝過程可以參考這裡。在filebeat.yml的配置檔案中,配置要監控的日誌檔案的路徑,然後配置Filebeat向Logstash輸出,需要在output欄位將向Elasticsearch輸出的配置註釋掉,然後將向Logstash的輸出的配置反註釋掉。比如:
output:
logstash:
hosts: ["localhost:5044"]
在啟動Filebeat之前,需要Elasticsearch載入相應的索引模板,推薦使用的模板在安裝Filebeat的時候已經放在其配置路徑下面了,名字叫做filebeat.template.json,可以使用如下命令裝載模板:
$ curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@/etc/filebeat/filebeat.template.json
然後從下游到上游依次啟動各個工具:
$ sudo service elasticsearch restart
$ sudo service logstash restart
$ sudo service filebeat restart
在被監控日誌檔案中新增內容,檢視/var/lib/elasticsearch中是否有新增內容,如果有的話,進行下一步。
4.安裝Kibana
Kibana是一個與Elasticsearch配合使用的圖形化工具,提供高度可定製化的UI。關於Kibana的更詳細的安裝過程可以參考這裡。確認Kibana安裝並執行成功後,在瀏覽器中訪問http://localhost:5601,第一次使用會跳轉至Kibana的配置介面,填入配置的索引的pattern(本教程的index pattern是filebeat-*),敲入回車,然後點選Create:
接下來顯示將會被顯示在Kibana的Field欄位:
目前我們先忽略這部分的內容,點選左上角的Discover頁籤,在被監控的日誌中新增新的一行並儲存,就會看到日誌中的資訊:
至此,最簡單的ELK日誌分析平臺就搭建完成了。後續如果想根據自己的需求進行定製,需要繼續深入研究Filebeat、Logstash、Elasticsearch及Kibana的配置了。
如果覺得我的文章對您有幫助,歡迎關注我(CSDN:Mars Loo的部落格)或者為這篇文章點贊,謝謝!