36.11. 更改聚合日志记录驱动程序
对于聚合日志,建议使用 json-file
日志驱动程序。
使用 json-file
驱动程序时,请确保使用 Docker 版本 docker-1.12.6-55.gitc4618fb.el7_4 now 或更高版本。
Fluentd 通过检查 /etc/docker/daemon.json 和 /etc/sysconfig/docker 文件来确定驱动程序 Docker 正在使用。
您可以通过 docker info
命令确定 Docker 正在使用哪些驱动程序:
# docker info | grep Logging Logging Driver: journald
进入 json-file
:
修改 /etc/sysconfig/docker 或 /etc/docker/daemon.json 文件。
例如:
# cat /etc/sysconfig/docker OPTIONS=' --selinux-enabled --log-driver=json-file --log-opt max-size=1M --log-opt max-file=3 --signature-verification=False' cat /etc/docker/daemon.json { "log-driver": "json-file", "log-opts": { "max-size": "1M", "max-file": "1" } }
重启 Docker 服务:
systemctl restart docker
重启 Fluentd。
警告同时,在超过 dozen 节点上重启 Fluentd 会在 Kubernetes 调度程序上创建一个大型负载。在使用以下指示重启 Fluentd 时要小心谨慎。
重启 Fluentd 的方法有两种。您可以在一个节点或一组节点或所有节点中重启 Fluentd。
以下步骤演示了如何在一个节点或一组节点上重启 Fluentd。
列出运行 Fluentd 的节点:
$ oc get nodes -l logging-infra-fluentd=true
对于每个节点,删除标签并关闭 Fluentd:
$ oc label node $node logging-infra-fluentd-
验证 Fluentd 已关闭:
$ oc get pods -l component=fluentd
对于每个节点,重启 Fluentd:
$ oc label node $node logging-infra-fluentd=true
以下步骤演示了如何重启 Fluentd 所有节点。
在所有节点上关闭 Fluentd:
$ oc label node -l logging-infra-fluentd=true --overwrite logging-infra-fluentd=false
验证 Fluentd 已关闭:
$ oc get pods -l component=fluentd
在所有节点上重启 Fluentd:
$ oc label node -l logging-infra-fluentd=false --overwrite logging-infra-fluentd=true
验证 Fluentd 是否存在:
$ oc get pods -l component=fluentd