ELK 完整部署和使用 - 每天5分鐘玩轉 Docker 容器技術(90)
ELK 完整部署和使用 - 每天5分鐘玩轉 Docker 容器技術(90)
原創 CloudMan CloudMan 2017-11-06
第90篇
ELK 完整部署和使用
上一節我們已經部署了容器化的 ELK,本節討論如何將日誌匯入 ELK 並進行圖形化展示。
幾乎所有的軟體和應用都有自己的日誌檔案,容器也不例外。前面我們已經知道 Docker 會將容器日誌記錄到 /var/lib/docker/containers/<contariner ID>/<contariner ID>-json.log
,那麼只要我們能夠將此檔案傳送給 ELK 就可以實現日誌管理。
要實現這一步其實不難,因為 ELK 提供了一個配套小工具 Filebeat,它能將指定路徑下的日誌檔案轉發給 ELK。同時 Filebeat 很聰明,它會監控日誌檔案,當日志更新時,Filebeat 會將新的內容傳送給 ELK。
安裝 Filebeat
下面在 Docker Host 中安裝和配置 Filebeat。
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.0-amd64.deb
sudo dpkg -i filebeat-5.4.0-amd64.deb
當你看到這篇文章時,Filebeat 可能已經有了更新的版本,請參考最新的安裝文件 https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html
配置 Filebeat
Filebeat 的配置檔案為 /etc/filebeat/filebeat.yml
,我們需要告訴 Filebeat 兩件事:
-
監控哪些日誌檔案?
-
將日誌傳送到哪裡?
首先回答第一個問題。
在 paths
中我們配置了兩條路徑:
-
/var/lib/docker/containers/*/*.log
是所有容器的日誌檔案。 -
/var/log/syslog
是 Host 作業系統的 syslog。
接下來告訴 Filebeat 將這些日誌傳送給 ELK。
Filebeat 可以將日誌傳送給 Elasticsearch 進行索引和儲存;也可以先傳送給 Logstash 進行分析和過濾,然後由 Logstash 轉發給 Elasticsearch。
為了不引入過多的複雜性,我們這裡將日誌直接傳送給 Elasticsearch。
如果要傳送給 Logstash,可參考後半部分的註釋。
當前的日誌處理流程如下圖所示:
啟動 Filebeat
Filebeat 安裝時已經註冊為 systemd 的服務,可以直接啟動服務。
systemctl start filebeat.service
管理日誌
Filebeat 啟動後,正常情況下會將監控的日誌傳送給 Elasticsearch。重新整理 Elasticsearch 的 JSON 介面 http://[Host IP]:9200/_search?pretty 進行確認。
這次我們能夠看到 filebeat-*
的 index
,以及 Filebeat 監控的那兩個路徑下的日誌。
好,Elasticsearch 已經建立了日誌的索引並儲存起來,接下來是在 Kibana 中展示日誌。
首先需要配置一個 index pattern
,即告訴 Kibana 查詢和分析 Elasticsearch 中的哪些日誌。
指定 index pattern
為 filebeat-*
,這與 Elasticsearch 中的 index
一致。
Time-field name
選擇 @timestamp
。
點選 Create
建立 index pattern
。
點選 Kibana 左側 Discover
選單,便可看到容器和 syslog 日誌資訊。
下面我們啟動一個新的容器,該容器將向控制檯列印資訊,模擬日誌輸出。
docker run busybox sh -c 'while true; do echo "This is a log message from container busybox!"; sleep 10; done;'
重新整理 Kibana 頁面或者點選右上角 圖示,馬上就能看到 busybox 的日誌。
Kibana 也提供了強大的查詢功能,比如輸入關鍵字 busybox
能搜尋出所有匹配的日誌條目。
我們這裡只是簡單地將日誌匯入 ELK 並樸素地顯示出來,實際上 ELK 還可以對日誌進行歸類彙總、分析聚合、建立炫酷的 Dashboard 等,可以挖掘的內容很多,玩法很豐富。由於這個教程的重點是容器,這裡就不過多展開。下面這張圖可以感受一下 ELK 的能力,更多的功能留給大家自己去探索。
ELK 我們們就討論到這裡,下一節學習 Fluentd。
書籍:
1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html(點選“閱讀原文”直達)
2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html
相關文章
- 每天5分鐘玩轉Docker容器技術(二)Docker
- MySQL 使用 PV 和 PVC - 每天5分鐘玩轉 Docker 容器技術(154)MySqlDocker
- 【Docker】(9)---每天5分鐘玩轉 Docker 容器技術之映象Docker
- Kubernetes Dashboard - 每天5分鐘玩轉 Docker 容器技術(173)Docker
- 回收 PV - 每天5分鐘玩轉 Docker 容器技術(152)Docker
- Network Policy - 每天5分鐘玩轉 Docker 容器技術(171)Docker
- Prometheus Operator - 每天5分鐘玩轉 Docker 容器技術(177)PrometheusDocker
- PV & PVC - 每天5分鐘玩轉 Docker 容器技術(150)Docker
- 部署 Graylog 日誌系統 - 每天5分鐘玩轉 Docker 容器技術(92)Docker
- 外部 Storage Provider - 每天5分鐘玩轉 Docker 容器技術(149)IDEDocker
- Liveness 探測 - 每天5分鐘玩轉 Docker 容器技術(143)Docker
- Helm 架構 - 每天5分鐘玩轉 Docker 容器技術(161)架構Docker
- 再次實踐 MySQL chart - 每天5分鐘玩轉 Docker 容器技術MySqlDocker
- 什麼是 stack?- 每天5分鐘玩轉 Docker 容器技術(111)Docker
- 在滾動更新中使用 Health Check - 每天5分鐘玩轉 Docker 容器技術(146)Docker
- 通過 Service 訪問 Pod - 每天5分鐘玩轉 Docker 容器技術(136)Docker
- Kubernetes 叢集日誌管理 - 每天5分鐘玩轉 Docker 容器技術(180)Docker
- 如何用 Graylog 管理日誌? - 每天5分鐘玩轉 Docker 容器技術(93)Docker
- 用 Weave Scope 監控叢集 - 每天5分鐘玩轉 Docker 容器技術(175)Docker
- 萬能資料收集器 Fluentd - 每天5分鐘玩轉 Docker 容器技術(91)Docker
- 用 k8s 管理機密資訊 - 每天5分鐘玩轉 Docker 容器技術(155)K8SDocker
- Docker容器與虛擬化技術:OpenEuler 部署 docker容器應用Docker
- 容器技術和Docker介紹Docker
- 1.01 容器技術和docker簡介Docker
- Docker--容器技術Docker
- docker容器技術原理Docker
- ELK 之Kibana(部署和使用)
- docker-compose部署ELKDocker
- 玩轉docker之自定義PHP容器DockerPHP
- 探秘Kubernetes:在本地環境中玩轉容器技術
- Docker技術( 容器虛擬化技術 )Docker
- Docker容器技術與Docker介紹Docker
- 容器技術之Docker映象Docker
- 使用Portainer部署Docker容器實踐AIDocker
- 使用Docker快速部署ELK分析Nginx日誌實踐DockerNginx
- 容器技術之Docker-swarmDockerSwarm
- 容器技術之Docker網路Docker
- 容器技術之Docker資料卷Docker