本章小結
本章從兩個維度介紹了容器可觀測性:
- 指標監控:以 Prometheus + Grafana 為主,完成指標採集、儲存與視覺化。
- 日誌管理:以 EFK/ELK 為例,完成容器日誌的集中採集、檢索與分析。
生產環境中,建議將『可觀測性』當成一個完整閉環:採集 -> 儲存 -> 展示 -> 告警 -> 排錯 -> 容量治理。
擴充套件閱讀:Docker 日誌驅動
Docker 提供了多種日誌驅動 (Log Driver),用於將容器標準輸出的日誌轉發到不同後端。
常見的日誌驅動包括:
json-file:預設驅動,將日誌以 JSON 格式寫入本地檔案。syslog:將日誌轉發到 syslog 伺服器。journald:將日誌寫入 systemd journal。fluentd:將日誌轉發到 fluentd 收集器。gelf:支援 GELF 協定的日誌後端 (如 Graylog)。awslogs:傳送到 Amazon CloudWatch Logs。
生產建議:無論採用哪種驅動,都要明確日誌的保留週期、容量上限與傳輸可靠性,避免『日誌把磁碟寫滿』或『鏈路抖動導致丟日誌』。
19.4 日誌平台選型對比與注意事項
日誌平台通常由『採集/處理/儲存/查詢展示』幾部分組成。常見選型包括:
- EFK/ELK:Elasticsearch + Fluentd/Logstash + Kibana,適合全文檢索與結構化查詢。
- Loki + Grafana:更偏『日誌像指標一樣儲存』的思路,部署與成本可能更友好,但查詢能力與使用習慣不同。
選型時建議關注:
- 寫入壓力與背壓:當儲存端變慢時,採集端是否會緩衝、落盤、重試,是否會影響業務。
- 容量治理:是否具備按天/按大小捲動、保留策略、生命週期管理 (ILM) 等能力。
- 安全與合規:鑑權、TLS、審計、敏感欄位脫敏。
- 可運維性:升級策略、備份恢復、告警指標是否齊全。
19.5 上線前檢查清單
你可以用下面的清單快速檢查『是否具備最小生產可用性』:
- Prometheus 資料目錄已持久化,並設定了合理的保留週期。
- Prometheus Targets 全部為
UP,並且關鍵查詢 (CPU/記憶體/容器指標) 有數據。 - Grafana 已匯入面板並能定位到具體實例/容器;預設賬號密碼已修改。
- 至少有一條關鍵告警已打通 Alertmanager 的接收鏈路,並驗證告警能被正確傳送與抑制。
- Elasticsearch 資料目錄已持久化,並有明確的日誌保留週期與容量上限策略。
- Kibana 能查詢到最新日誌;當 UI 異常時能用 Elasticsearch API 驗證入庫。
- 可觀測性元件未直接暴露到公網,訪問已加鑑權或置於內網。