docker 日誌管理

2022-06-23 14:57:08 字數 795 閱讀 7826

高效的監控和日誌管理對保持生產系統持續穩定地執行以及排查問題至關重要。

在微服務架構中,由於容器的數量眾多以及快速變化的特性使得記錄日誌和監控變得越來越重要。考慮到容器短暫和不固定的生命週期,當我們需要 debug 問題時有些容器可能已經不存在了。因此,一套集中式的日誌管理系統是生產環境中不可或缺的組成部分。

本章我們將討論監控容器的各種可用技術和方案,首先會介紹 docker 自帶的 logs 子命令,然後討論 docker 的 logging driver,接下來通過實踐學習幾個已經廣泛應用的日誌管理方案:elk、fluentd 和 graylog。

docker logs

我們首先來看一看預設配置下 docker 的日誌功能。

舉個例子,用下面的命令執行 httpd 容器:

因為我們在啟動日誌的時候沒有用-d

這種情況下如果要檢視容器的日誌,有兩種方法:

attach 到該容器。

attach 到了 httpd 容器,但並沒有任何輸出,這是因為當前沒有新的日誌資訊。

這時,attach 的終端就會列印出新的日誌。

attach 的方法在實際使用中不太方便,因為:

只能看到 attach 之後的日誌,以前的日誌不可見。

退出 attach 狀態比較麻煩(ctrl+p 然後 ctrl+q 組合鍵),一不小心很容器將容器殺掉(比如按下 ctrl+c)。

docker logs

下一節我們討論 docker 如何支援多種日誌方案。

docker日誌 及 docker容器日誌

docker容器的日誌是預設存在本地的 var lib docker containers container id container id json.log 裡。可以用以下命令查log檔案的位置 docker inspect container id grep log 或 docker insp...

docker 檢視docker容器日誌

1 命令格式 docker logs options container options details 顯示更多的資訊 f,follow 跟蹤實時日誌 since string 顯示自某個timestamp之後的日誌,或相對時間,如42m 即42分鐘 tail string 從日誌末尾顯示多少行日...

docker 日誌位置

日誌分兩類,一類是docker 引擎日誌 另一類是容器日誌。docker 引擎日誌 docker 引擎日誌一般是交給了upstart ubuntu 14.04 或者systemd centos 7,ubuntu 16.04 前者一般位於 var log upstart docker.log下,後者一...