?
This document uses PHP Chinese website manual Release
fluentd
日志記錄驅(qū)動(dòng)程序發(fā)送容器日志到 Fluentd 集電極結(jié)構(gòu)化日志數(shù)據(jù)。然后,用戶可以使用 Fluentd 的各種輸出插件將這些日志寫入各個(gè)目標(biāo)。
除了日志消息本身之外,fluentd
日志驅(qū)動(dòng)程序還會(huì)在結(jié)構(gòu)化日志消息中發(fā)送以下元數(shù)據(jù):
領(lǐng)域(范疇) | 描述 |
---|---|
container_id | 完整的64個(gè)字符的容器 ID。 |
container_name | 容器名稱在啟動(dòng)時(shí)。如果使用 docker rename 重命名容器,則新名稱不會(huì)反映在日記帳分錄中。 |
source | stdout 或 stderr |
docker logs
命令不適用于此日志記錄驅(qū)動(dòng)程序。
通過根據(jù)需要指定--log-opt
多次來(lái)支持一些選項(xiàng):
fluentd-address
:指定一個(gè)套接字地址來(lái)連接到 Fluentd 守護(hù)進(jìn)程,ex fluentdhost:24224
或unix:///path/to/fluentd.sock
tag
:指定 fluentd 消息的標(biāo)簽,其解釋一些標(biāo)記,ex{{.ID}}
,{{.FullID}}
或{{.Name}}
docker.{{.ID}}
要將fluentd
驅(qū)動(dòng)程序用作默認(rèn)日志記錄驅(qū)動(dòng)程序,請(qǐng)將該鍵log-driver
和log-opt
鍵設(shè)置daemon.json
為位于/etc/docker/
Linux 主機(jī)或C:\ProgramData\docker\config\daemon.json
Windows Server 上的文件中的適當(dāng)值。有關(guān)+使用 Docker 配置的更多信息daemon.json
,請(qǐng)參閱+ daemon.json。
以下示例將日志驅(qū)動(dòng)程序設(shè)置為fluentd
并設(shè)置fluentd-address
選項(xiàng)。
{ "log-driver": "fluentd", "log-opts": { "fluentd-address": "fluentdhost:24224" } }
重新啟動(dòng) Docker 以使更改生效。
要為特定容器設(shè)置日志記錄驅(qū)動(dòng)程序,請(qǐng)將--log-driver
選項(xiàng)傳遞給docker run
:
docker run --log-driver=fluentd ...
在使用此日志記錄驅(qū)動(dòng)程序之前,請(qǐng)啟動(dòng) Fluentd 守護(hù)進(jìn)程。日志記錄驅(qū)動(dòng)程序localhost:24224
默認(rèn)連接到此守護(hù)程序。使用該fluentd-address
選項(xiàng)連接到不同的地址。
docker run --log-driver=fluentd --log-opt fluentd-address=fluentdhost:24224
如果容器無(wú)法連接到 Fluentd 守護(hù)進(jìn)程,則容器將立即停止,除非使用該fluentd-async-connect
選項(xiàng)。
用戶可以使用該--log-opt NAME=VALUE
標(biāo)志來(lái)指定其他 Fluentd 日志記錄驅(qū)動(dòng)程序選項(xiàng)。
默認(rèn)情況下,日志記錄驅(qū)動(dòng)程序連接到localhost:24224
。提供fluentd-address
連接到不同地址的選項(xiàng)。支持tcp
(默認(rèn))和unix
套接字。
docker run --log-driver=fluentd --log-opt fluentd-address=fluentdhost:24224docker run --log-driver=fluentd --log-opt fluentd-address=tcp://fluentdhost:24224docker run --log-driver=fluentd --log-opt fluentd-address=unix:///path/to/fluentd.sock
以上兩項(xiàng)指定了相同的地址,因?yàn)樗?code>tcp是默認(rèn)的。
默認(rèn)情況下,Docker 使用容器 ID 的前12個(gè)字符來(lái)標(biāo)記日志消息。請(qǐng)參閱日志標(biāo)記選項(xiàng)文檔以定制日志標(biāo)記格式。
在labels
和env
選項(xiàng)各取一個(gè)逗號(hào)分隔的密鑰列表。如果label
和env
鍵之間存在沖突,env
則優(yōu)先。這兩個(gè)選項(xiàng)都將附加字段添加到日志消息的額外屬性中。
env-regex
選項(xiàng)類似于并兼容env
。它的值是一個(gè)正則表達(dá)式來(lái)匹配與日志相關(guān)的環(huán)境變量。它用于高級(jí)日志標(biāo)記選項(xiàng)。
Docker 在后臺(tái)連接到 Fluentd。消息被緩存直到連接建立。
刷新到磁盤之前要緩沖的數(shù)據(jù)量。默認(rèn)為容器可用的 RAM 數(shù)量。
重試之間需要等待多長(zhǎng)時(shí)間。默認(rèn)為1秒。
最大重試次數(shù)。默認(rèn)為10。
關(guān)于Fluentd
本身,看到 項(xiàng)目的網(wǎng)頁(yè) 和 其文件。
要使用此日志記錄驅(qū)動(dòng)程序,請(qǐng)?jiān)谥鳈C(jī)上啟動(dòng)fluentd
守護(hù)程序。我們建議您使用Fluentd泊塢窗圖像。如果要在每臺(tái)主機(jī)上聚合多個(gè)容器日志,則此圖像特別有用,然后將日志傳輸?shù)搅硪粋€(gè) Fluentd 節(jié)點(diǎn)以創(chuàng)建聚合存儲(chǔ)。
1. 寫一個(gè)配置文件(test.conf
)來(lái)轉(zhuǎn)儲(chǔ)輸入日志:<type> @type forward </ source> <match \ *> @type stdout </ match>
2. 使用此配置文件啟動(dòng) Fluentd 容器:
$ docker run -it -p 24224:24224 -v /path/to/conf/test.conf:/fluentd/etc/test.conf -e FLUENTD_CONF = test.conf fluent / fluentd:latest
3. 使用fluentd
日志記錄驅(qū)動(dòng)程序啟動(dòng)一個(gè)或多個(gè)容器:
$ docker run --log-driver=fluentd your/application