容器網絡(十一)初探 ELK【82】

(三)初探 ELK

在開源的日誌管理方案中,最出名的莫過於 ELK 了。ELK 是三個軟件的合稱:Elasticsearch、Logstash、Kibana。web

Elasticsearch
一個近乎實時查詢的全文搜索引擎。Elasticsearch 的設計目標就是要可以處理和搜索巨量的日誌數據。docker

Logstash
讀取原始日誌,並對其進行分析和過濾,而後將其轉發給其餘組件(好比 Elasticsearch)進行索引或存儲。Logstash 支持豐富的 Input 和 Output 類型,可以處理各類應用的日誌。負載均衡

Kibana
一個基於 JavaScript 的 Web 圖形界面程序,專門用於可視化 Elasticsearch 的數據。Kibana 可以查詢 Elasticsearch 並經過豐富的圖表展現結果。用戶能夠建立 Dashboard 來監控系統的日誌。學習

本節將討論如何用 ELK 這組黃金搭檔來監控 Docker 容器的日誌。搜索引擎

(1)日誌處理流程

下圖展現了 Docker 部署環境下典型的 ELK 日誌處理流程:設計

數據===》Logstash ===》Elasticsearch ===》Kibana日誌

Logstash 負責從各個 Docker 容器中提取日誌,Logstash將日誌轉發到 Elasticsearch 進行索引和保存,Kibana 分析和可視化數據。code

(2)安裝 ELK 套件

ELK 的部署方案能夠很是靈活,在規模較大的生產系統中,ELK 有本身的集羣,實現了高可用和負載均衡。咱們的目標是在最短的時間內學習並實踐 ELK,所以將採用最小部署方案:在容器中搭建 ELK。索引

docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk

咱們使用的是 sebp/elk 這個現成的 image,裏面已經包含了整個 ELK stack。容器啓動後 ELK 各組件將分別監聽以下端口:接口

5601 - Kibana web 接口
9200 - Elasticsearch JSON 接口
5044 - Logstash 日誌接收接口

先訪問一下 Kibana http://[Host IP]:5601/ 看看效果。

當前 Kibana 沒有可顯示的數據,由於當前 Elasticsearch 尚未任何日誌數據。

訪問一下 Elasticsearch 的 JSON 接口 http://[Host IP]:9200/_search?pretty

確實,目前 Elasticsearch 沒有與日誌相關的 index

接下來的工做就是將 Docker 的日誌導入 ELK,咱們下一節完成。

相關文章
相關標籤/搜索