在開源的日志管理方案中,最出名的莫過于 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
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://10.12.31.22:5601/ 看看效果
?
?
當前 Kibana 沒有可顯示的數據,因為當前 Elasticsearch 還沒有任何日志數據。
?
訪問一下 Elasticsearch 的 JSON 接口 http://10.12.31.22:9200/_search?pretty
?
確實,目前 Elasticsearch 沒有與日志相關的 index。
?
---------------------------------------------引用來自-------------------------------------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587982&idx=1&sn=1a943b21d3eaa5c34280472736cfd197&chksm=8d308217ba470b0178864af800806bdd32e5e17fb10b7b4cf26c94ef5b1df8cd80b1c8bce0fb&scene=21#wechat_redirect
?