天天看點

初探 ELK - 每天5分鐘玩轉 Docker 容器技術(89)

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

Elasticsearch

一個近乎實時查詢的全文搜尋引擎。Elasticsearch 的設計目标就是要能夠處理和搜尋巨量的日志資料。

Logstash

讀取原始日志,并對其進行分析和過濾,然後将其轉發給其他元件(比如 Elasticsearch)進行索引或存儲。Logstash 支援豐富的 Input 和 Output 類型,能夠處理各種應用的日志。

Kibana

一個基于 JavaScript 的 Web 圖形界面程式,專門用于可視化 Elasticsearch 的資料。Kibana 能夠查詢 Elasticsearch 并通過豐富的圖表展示結果。使用者可以建立 Dashboard 來監控系統的日志。

本節将讨論如何用 ELK 這組黃金搭檔來監控 Docker 容器的日志。

下圖展示了 Docker 部署環境下典型的 ELK 日志處理流程:

Logstash 負責從各個 Docker 容器中提取日志,Logstash将日志轉發到 Elasticsearch 進行索引和儲存,Kibana 分析和可視化資料。

下面開始實踐這套流程。

ELK 的部署方案可以非常靈活,在規模較大的生産系統中,ELK 有自己的叢集,實作了高可用和負載均衡。我們的目标是在最短的時間内學習并實踐 ELK,是以将采用最小部署方案:在容器中搭建 ELK。

我們使用的是 <code>sebp/elk</code> 這個現成的 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 沒有與日志相關的 <code>index</code>。

接下來的工作就是将 Docker 的日志導入 ELK,我們下一節完成。

書籍:

1.《每天5分鐘玩轉Docker容器技術》

<a href="https://item.jd.com/16936307278.html" target="_blank">https://item.jd.com/16936307278.html</a>

2.《每天5分鐘玩轉OpenStack》

<a href="https://item.jd.com/12086376.html" target="_blank">https://item.jd.com/12086376.html</a>

本文轉自CloudMan6 51CTO部落格,原文連結:http://blog.51cto.com/cloudman/1978610