Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

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

  1. 修改 /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"
    }
    }
  2. 重启 Docker 服务:

    systemctl restart docker
  3. 重启 Fluentd。

    警告

    同时,在超过 dozen 节点上重启 Fluentd 会在 Kubernetes 调度程序上创建一个大型负载。在使用以下指示重启 Fluentd 时要小心谨慎。

    重启 Fluentd 的方法有两种。您可以在一个节点或一组节点或所有节点中重启 Fluentd。

    1. 以下步骤演示了如何在一个节点或一组节点上重启 Fluentd。

      1. 列出运行 Fluentd 的节点:

        $ oc get nodes -l logging-infra-fluentd=true
      2. 对于每个节点,删除标签并关闭 Fluentd:

        $ oc label node $node logging-infra-fluentd-
      3. 验证 Fluentd 已关闭:

        $ oc get pods -l component=fluentd
      4. 对于每个节点,重启 Fluentd:

        $ oc label node $node logging-infra-fluentd=true
    2. 以下步骤演示了如何重启 Fluentd 所有节点。

      1. 在所有节点上关闭 Fluentd:

        $ oc label node -l logging-infra-fluentd=true --overwrite logging-infra-fluentd=false
      2. 验证 Fluentd 已关闭:

        $ oc get pods -l component=fluentd
      3. 在所有节点上重启 Fluentd:

        $ oc label node -l logging-infra-fluentd=false --overwrite logging-infra-fluentd=true
      4. 验证 Fluentd 是否存在:

        $ oc get pods -l component=fluentd