本章小結

本章從兩個維度介紹了容器可觀測性:

  • 指標監控:以 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 驗證入庫。
  • 可觀測性元件未直接暴露到公網,訪問已加鑑權或置於內網。

📝 發現錯誤或有改進建議? 歡迎送出 IssuePR

第 159 页,共 196 页
使用 mdPress 构建