Логирование

Просмотр логов — это первое, что нужно сделать, чтобы определить причину проблемы. По умолчанию процессы FindFace Multi регистрируются в логах контейнеров Docker, доступ к которым можно получить, используя команды docker logs и docker service logs. Помимо этого Docker использует драйвер логирования в формате JSON, который кэширует логи контейнеров в данный формат. Вы можете настроить Docker на использование другого драйвера логирования, выбрав из множества доступных механизмов логирования.

Данный раздел посвящен настройке Docker на использование драйвера логирования journald, который отправляет логи контейнеров в журнал systemd. В этом случае записи журнала извлекаются с помощью команды journalctl, через journal API или команды docker logs. Следуя приведенным ниже инструкциям, вы также можете настроить журнал systemd.

В этом разделе:

Настройка Journald

Для настройки сервиса systemd-journal выполните следующие действия:

  1. Проверьте наличие директории /var/log/journal. Если таковая отсутствует, создайте ее следующей командой:

    sudo mkdir /var/log/journal
    sudo chmod 2755 /var/log/journal
    
  2. Откройте файл конфигурации /etc/systemd/journald.conf. Включите сохранение логов journald на жестком диске, раскомментировав параметр Storage и изменив его значение на persistent. Также отключите фильтрацию systemd-journal:

    sudo vi /etc/systemd/journald.conf
    
    [Journal]
    ...
    Storage=persistent
    ...
    RateLimitInterval=0
    RateLimitBurst=0
    ...
    

    При необходимости раскомментируйте и измените значение параметра SystemMaxUse. Данный параметр определяет максимальный объем логов на жестком диске. Укажите его значение в байтах или используйте K, M, G, T, P, E в качестве единиц для указанного размера (соответственно \(1024\), \(1024^2\), … байт).

    ...
    SystemMaxUse=3G
    
  3. Перезапустите сервис journald.

    sudo systemctl restart systemd-journald.service
    

Активация драйвера логирования journald

Для того чтобы разрешить Docker использовать драйвер логирования journald, выполните следующие действия:

  1. Добавьте следующую строку в файл конфигурации /etc/docker/daemon.json.

    Совет

    Данный файл может отсутствовать в вашей системе. Проверьте, существует ли он, и если нет, сначала создайте каталог /etc/docker, а затем файл.

    sudo mkdir /etc/docker
    sudo touch /etc/docker/daemon.json
    
    sudo vi /etc/docker/daemon.json
    
    {
      "log-driver": "journald"
    }
    
  2. Остановите все контейнеры Docker.

    sudo docker stop $(sudo docker ps -a -q)
    
  3. Перезапустите сервис Docker.

    sudo systemctl restart docker
    
  4. Запустите все контейнеры Docker.

    sudo docker start $(sudo docker ps -a -q)
    

Просмотр логов

Используйте любой удобный способ работы с логами journald. Мы рекомендуем начать со следующих команд:

  • Отображение всех логов:

    journalctl -fa
    
  • Отображение логов по ID контейнера:

    journalctl CONTAINER_ID=<container_id> -f
    
  • Отображение логов по имени контейнера:

    journalctl CONTAINER_NAME=<container-name> -f