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 を再起動します。

    警告

    13 以上のノードで一度に Fluentd を再起動すると、Kubernetes スケジューラーに大きな負荷が生成されます。以下の手順に従って Fluentd を再起動する場合は、細心の注意を払ってください。

    Fluentd を再起動する方法は 2 つあります。1 つのノードまたはノードセット上で Fluentd を再起動するか、またはすべてのノードで Fluentd を再起動できます。

    1. 以下の手順は、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