利用 ELK 搭建 Docker 容器化應用日誌中心

概述應用一旦容器化以後,需要考慮的就是如何採集位於 Docker 容器中的應用程序的打印日誌供運維分析。典型的比如SpringBoot應用的日誌收集。本文即將闡述如何利用ELK日誌中心來收集容器化應用程序所產生的日誌,並且可以用可視化的方式對日誌進行查詢與分析,其架構如下圖所示:

利用 ELK 搭建 Docker 容器化應用日誌中心
鏡像準備
利用 ELK 搭建 Docker 容器化應用日誌中心
ElasticSearch鏡像
Logstash鏡像
Kibana鏡像
Nginx鏡像(作爲容器化應用來生產日誌)

開啓Linux系統Rsyslog服務

修改Rsyslog服務配置文件:

vim /etc/rsyslog.conf

開啓下面三個參數:
利用 ELK 搭建 Docker 容器化應用日誌中心
利用 ELK 搭建 Docker 容器化應用日誌中心
開啓3個參數

意圖很簡單:讓Rsyslog加載imtcp模塊並監聽514端口,然後將Rsyslog中收集的數據轉發到本地4560端口!

然後重啓Rsyslog服務:

systemctl restart rsyslog

查看rsyslog啓動狀態:

netstat -tnl

利用 ELK 搭建 Docker 容器化應用日誌中心
部署ElasticSearch服務
利用 ELK 搭建 Docker 容器化應用日誌中心
利用 ELK 搭建 Docker 容器化應用日誌中心
部署Logstash服務

添加 ~/logstash/logstash.conf 配置文件如下:
利用 ELK 搭建 Docker 容器化應用日誌中心
配置中我們讓Logstash從本地的Rsyslog服務中取出應用日誌數據,然後轉發到ElasticSearch數據庫中!

配置完成以後,可以通過如下命令來啓動Logstash容器:
利用 ELK 搭建 Docker 容器化應用日誌中心

利用 ELK 搭建 Docker 容器化應用日誌中心

部署Kibana服務

利用 ELK 搭建 Docker 容器化應用日誌中心

利用 ELK 搭建 Docker 容器化應用日誌中心
啓動nginx容器來生產日誌
利用 ELK 搭建 Docker 容器化應用日誌中心
很明顯Docker容器中的Nginx應用日誌轉發到本地syslog服務中,然後由syslog服務將數據轉給Logstash進行收集。

至此,日誌中心搭建完畢,目前一共四個容器在工作:
利用 ELK 搭建 Docker 容器化應用日誌中心
實驗驗證

瀏覽器打開 localhost:90 來打開Nginx界面,並刷新幾次,讓後臺產生GET請求的日誌

打開 Kibana 可視化界面:localhost:5601

利用 ELK 搭建 Docker 容器化應用日誌中心

收集 Nginx 應用日誌

利用 ELK 搭建 Docker 容器化應用日誌中心

查詢應用日誌

在查詢框中輸入program=nginx可查詢出特定日誌

利用 ELK 搭建 Docker 容器化應用日誌中心

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章