Логирование
Просмотр логов — это первое, что нужно сделать, чтобы определить причину проблемы. По умолчанию процессы FindFace Multi регистрируются в логах контейнеров Docker, доступ к которым можно получить, используя команды docker logs
и docker service logs
. Помимо этого Docker использует драйвер логирования в формате JSON, который кэширует логи контейнеров в данный формат. Вы можете настроить Docker на использование другого драйвера логирования, выбрав из множества доступных механизмов логирования.
Данный раздел посвящен настройке Docker на использование драйвера логирования journald
, который отправляет логи контейнеров в журнал systemd
. В этом случае записи журнала извлекаются с помощью команды journalctl
, через journal API или команды docker logs
. Следуя приведенным ниже инструкциям, вы также можете настроить журнал systemd
.
В этом разделе:
Настройка Journald
Для настройки сервиса systemd-journal
выполните следующие действия:
Проверьте наличие директории
/var/log/journal
. Если таковая отсутствует, создайте ее следующей командой:sudo mkdir /var/log/journal sudo chmod 2755 /var/log/journal
Откройте файл конфигурации
/etc/systemd/journald.conf
. Включите сохранение логовjournald
на жестком диске, раскомментировав параметрStorage
и изменив его значение наpersistent
. Также отключите фильтрациюsystemd-journal
:sudo vi /etc/systemd/journald.conf [Journal] ... Storage=persistent ... RateLimitIntervalSec=0 RateLimitBurst=0 ...
При необходимости раскомментируйте и измените значение параметра
SystemMaxUse
. Данный параметр определяет максимальный объем логов на жестком диске. Укажите его значение в байтах или используйте K, M, G, T, P, E в качестве единиц для указанного размера (соответственно \(1024\), \(1024^2\), … байт).... SystemMaxUse=3G
Перезапустите сервис
journald
.sudo systemctl restart systemd-journald.service
Активация драйвера логирования journald
Для того чтобы разрешить Docker использовать драйвер логирования journald
, выполните следующие действия:
Добавьте следующую строку в файл конфигурации
/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" }
Остановите все контейнеры Docker.
sudo docker stop $(sudo docker ps -a -q)
Перезапустите сервис Docker.
sudo systemctl restart docker
Запустите все контейнеры 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
См.также