1. 程式人生 > >23.ELK實時日誌分析平臺之Beats平臺搭建

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的部落格)或者為這篇文章點贊,謝謝!