Fluentd 紀錄檔驅動程式
fluentd
記錄驅動程式將容器日誌作為結構化日誌資料發送到 Fluentd
fluentd
記錄驅動程式將容器日誌作為結構化日誌資料發送到 Fluentd
支援某些選項,方法是根據需要多次指定 --log-opt
fluentd-address
:指定要連線到 Fluentd 守護行程的通訊端位址,例如 fluentdhost:24224
或 unix:///path/to/fluentd.sock
。tag
:指定 Fluentd 訊息的標籤。支援一些 Go 範本標記,例如 {{.ID}}
、{{.FullID}}
或 {{.Name}}
docker.{{.ID}}
。若要使用 fluentd
驅動程式作為預設記錄驅動程式,請在 daemon.json
檔案中將 log-driver
和 log-opt
鍵設定為適當的值,該檔案位於 Linux 主機上的 /etc/docker/
或 Windows Server 上的 C:\ProgramData\docker\config\daemon.json
。如需使用 daemon.json
設定 Docker 的詳細資訊,請參閱 daemon.json。
以下範例將日誌驅動程式設定為 fluentd
並設定 fluentd-address
選項。
{
"log-driver": "fluentd",
"log-opts": {
"fluentd-address": "fluentdhost:24224"
}
}
重新啟動 Docker 以使變更生效。
注意 在
daemon.json
設定檔中的log-opts
設定選項必須以字串形式提供。因此,布林值和數值(例如fluentd-async
或fluentd-max-retries
的值)必須以引號 ("
) 括起來。
若要設定特定容器的記錄驅動程式,請將 --log-driver
選項傳遞給 docker run
$ docker run --log-driver=fluentd ...
在使用此記錄驅動程式之前,請啟動 Fluentd 守護行程。預設情況下,記錄驅動程式會透過 localhost:24224
連線到此守護行程。使用 fluentd-address
選項連線到不同的位址。
$ docker run --log-driver=fluentd --log-opt fluentd-address=fluentdhost:24224
如果容器無法連線到 Fluentd 守護行程,則容器會立即停止,除非使用 fluentd-async
選項。
使用者可以使用 --log-opt NAME=VALUE
旗標來指定其他 Fluentd 記錄驅動程式選項。
預設情況下,記錄驅動程式會連線到 localhost:24224
。提供 fluentd-address
選項以連線到不同的位址。支援 tcp
(預設)和 unix
通訊端。
$ docker run --log-driver=fluentd --log-opt fluentd-address=fluentdhost:24224
$ docker run --log-driver=fluentd --log-opt fluentd-address=tcp://fluentdhost:24224
$ docker run --log-driver=fluentd --log-opt fluentd-address=unix:///path/to/fluentd.sock
以上兩個指定了相同的位址,因為 tcp
是預設值。
預設情況下,Docker 使用容器 ID 的前 12 個字元來標記日誌訊息。請參閱 日誌標籤選項文件 以自訂日誌標籤格式。
labels
和 env
選項都接受以逗號分隔的鍵值列表。如果 label
和 env
鍵值發生衝突,則 env
的值優先。這兩個選項都會將額外的欄位添加到日誌訊息的額外屬性中。
env-regex
和 labels-regex
選項分別與 env
和 labels
類似且相容。它們的值是正規表達式,用於匹配與日誌相關的環境變數和標籤。它用於進階的日誌標籤選項。
Docker 在背景連線到 Fluentd。訊息會被緩衝,直到連線建立完成。預設值為 false
。
當啟用 fluentd-async
時,fluentd-async-reconnect-interval
選項定義了重新建立與 fluentd-address
連線的時間間隔(以毫秒為單位)。如果地址解析為一個或多個 IP 地址(例如 Consul 服務地址),則此選項很有用。
設定記憶體中緩衝的事件數量。記錄將儲存在記憶體中,最多達到此數量。如果緩衝區已滿,則記錄日誌的呼叫將會失敗。預設值為 1048576。(https://github.com/fluent/fluent-logger-golang/tree/master#bufferlimit
重試之間的等待時間。預設值為 1 秒。
最大重試次數。預設值為 4294967295
(2**32 - 1)。
以奈秒解析度產生事件日誌。預設值為 false
。
關於 撰寫設定檔 ( 使用此設定檔啟動 Fluentd 容器 使用 Fluentd
本身,請參閱專案網頁test.conf
) 以傾印輸入的日誌<source>
@type forward
</source>
<match *>
@type stdout
</match>
$ docker run -it -p 24224:24224 -v /path/to/conf/test.conf:/fluentd/etc/test.conf -e FLUENTD_CONF=test.conf fluent/fluentd:latest
fluentd
記錄驅動程式啟動一個或多個容器$ docker run --log-driver=fluentd your/application