ELK 架構之 Logstash和Filebeat 安裝配置
閱讀目錄:
1. 環境準備
2. 安裝 Logstash
3. 配置 Logstash
4. Logstash 採集的日誌數據,在 Kibana 中顯示
5. 安裝配置 Filebeat
6. Filebeat 採集的日誌數據,在 Kibana 中顯示
7. Filebeat 採集日誌數據,Logstash 過濾
8. Filebeat 採集的日誌數據,Logstash 過濾後,在 Kibana 中顯示
上一篇主要說的是 Elasticsearch 和 Kibana 安裝配置,以及服務追蹤數據的處理和展示,日誌數據採集使用的 Spring Cloud Sleuth Zipkin + Stream/RabbitMQ 中間件(Service 端配置),然後 Zipkin Server 從隊列中獲取日誌數據,再使用 HTTP 的請求的方式,傳輸並存儲到 Elasticsearch 中,最後 Kibana 進行日誌數據展示。
在 ELK Stack 中,日誌數據採集有單獨的工具,就是 Logstash 和 Beats。
Logstash主要是用來日誌的搜集、分析、過濾日誌的工具,支持大量的數據獲取方式。一般工作方式為 c/s 架構,client 端安裝在需要收集日誌的主機上,server 端負責將收到的各節點日誌進行過濾、修改等操作在一併發往 Elasticsearch 上去。
Beats在這裡是一個輕量級日誌採集器,其實 Beats 家族有 6 個成員,早期的 ELK 架構中使用 Logstash 收集、解析日誌,但是 Logstash 對內存、cpu、io 等資源消耗比較高。相比 Logstash,Beats 所佔系統的 CPU 和內存幾乎可以忽略不計。
目前 Beats 包含六種工具:
Packetbeat: 網路數據(收集網路流量數據)
Metricbeat: 指標(收集系統、進程和文件系統級別的 CPU 和內存使用情況等數據)
Filebeat: 日誌文件(收集文件數據)
Winlogbeat: windows 事件日誌(收集 Windows 事件日誌數據)
Auditbeat:審計數據(收集審計日誌)
Heartbeat:運行時間監控(收集系統運行時的數據)
本篇文章目的:
1. Logstash 日誌數據採集,Elasticsearch 存儲,Kibana 展示
2. Filebeat 日誌數據採集,Elasticsearch 存儲,Kibana 展示
3. Filebeat 日誌數據採集,Logstash 過濾,Elasticsearch 存儲,Kibana 展示
第三種方案的實現架構圖:
1. 環境準備
伺服器環境:Centos 7.0(單機版)
Elasticsearch 和 Logstash 需要 Java,Elasticsearch 推薦的版本為 Java 8,安裝教程:確定穩定的 Spring Cloud 相關環境版本
另外,我們需要修改下伺服器主機信息:
2. 安裝 Logstash
運行以下命令將 Elasticsearch 公共 GPG 密鑰導入 rpm:
在目錄中,創建一個名為的文件,添加下面配置:
然後安裝 Logstash:
安裝報錯,具體問題:。
解決方案:安裝 Logstash 提示 /usr/bin/java: No such file or directory
對 Java 配置軟鏈接,鏈接到:
然後卸載 Logstash:
重新安裝:
設置開機啟動,以及啟動系統服務:
先不急啟動 Logstash,需要先配置下 Logstash。
3. 配置 Logstash
採集日誌數據,需要有個數據源,這裡我們使用 rsyslog 進行測試。
Linux 日誌機制的核心是 rsyslog 守護進程,該服務負責監聽 Linux下 的日誌信息,並把日誌信息追加到對應的日誌文件中,一般在 /var/log 目錄下。 它還可以把日誌信息通過網路協議發送到另一台 Linux 伺服器上,或者將日誌存儲在 MySQL 或 Oracle 等資料庫中。
修改 rsyslog 配置:
重啟 rsyslog:
增加配置文件:
驗證配置文件,是否有效:
啟動 Logstash:
查看啟動日誌:
具體錯誤:
解決方案:http://www.cnblogs.com/szk5043/articles/8652677.html
執行命令:
重新啟動 Logstash:
查看 Logstash 啟動狀態:
查看埠監聽(是否正常):
Logstash 的監聽 IP 是這個本地 IP,本地 IP 無法遠程通信,所以需要修改一下配置文件,配置一下監聽的 IP(需要設置 IP 地址,不能設置 Hostname):
重新啟動 Logstash:
查看埠監聽(是否正常):
4. Logstash 採集的日誌數據,在 Kibana 中顯示
查看 Elasticsearch 索引列表,可以看到生成了類型的日誌數據:
然後在 Kibana 上面創建索引:
創建好之後,就可以看到整個日誌數據了:
其實這裡顯示的日誌數據就是文件里的數據,因為 Logstash 里配置的就是收集文件里的數據。
以上這就是如何使用 Logstash 收集系統日誌,輸出到 Elasticsearch 伺服器上,並在 Kibana 的頁面上進行查看。
5. 安裝配置 Filebeat
運行以下命令將 Elasticsearch 公共 GPG 密鑰導入 rpm:
在目錄中,創建一個名為的文件,添加下面配置:
安裝 Filebeat:
設置開機啟動,以及啟動系統服務:
編輯配置文件:
啟動 Filebeat 服務:
查看 Filebeat 服務狀態:
6. Filebeat 採集的日誌數據,在 Kibana 中顯示
查看 Elasticsearch 索引列表,可以看到生成了類型的日誌數據:
然後在 Kibana 上面創建索引:
創建好之後,就可以看到整個日誌數據了:
和上面 Logstash 收集 rsyslog 日誌數據一樣,Filebeat 配置的,也是收集的日誌數據。
可以看到,和索引對應的日誌數據,是同步更新的(如果沒效果,重啟下 Logstash 和 Filebeat)。
7. Filebeat 採集日誌數據,Logstash 過濾
先停止 Logstash 和 Filebeat:
然後刪除上面產生的索引日誌數據:
創建新的 Logstash 配置文件:
驗證 Logstash 配置文件,是否有效:
編輯 Filebeat 配置文件(注釋掉):
重新啟動 Logstash 和 Filebeat:
查看 Logstash 是否正常監聽:
8. Filebeat 採集的日誌數據,Logstash 過濾後,在 Kibana 中顯示
可以看到生成了類型的日誌數據(索引日誌數據,是由 Logstash 的配置文件採集的):
因為之前創建了和索引,這邊我們可以直接查看日誌數據了:
以上是使用 ELK Logstash 和 Filebeat 採集日誌數據的過程(使用 rsyslog 日誌數據源),後面需要將 ELK 集成到 Spring Cloud/Boot 中,用作整個微服務的集中日誌採集處理中心。
TAG:你好架構 |