Docker записывает в журнал и nginx доступ и журналы ошибок - PullRequest
0 голосов
/ 16 ноября 2018

Итак, я заметил, что если я docker exec в образе nginx и перехожу к /var/log/nginx/, ошибки перенаправляются на стандартный вывод

 0 lrwxrwxrwx    1 root     root          11 Nov  7 00:24 access.log -> /dev/stdout
 0 -rw-r--r--    1 root     root           0 Nov 16 04:57 mywebsite_error.log
 0 lrwxrwxrwx    1 root     root          11 Nov  7 00:24 error.log -> /dev/stderr

Я предполагаю, что это вывод, если я использую docker logs <nginx-container>?Имеет ли смысл также ссылаться (?) На ошибки моих веб-сайтов и получать доступ к журналам к одному и тому же выводу?Не нарушит ли это существующие ссылки, прикрепленные к access.log и error.log?

Или лучше будет просто выводить ошибки моего веб-сайта в эти журналы доступа по умолчанию и журналы ошибок (поскольку будет работать только один сайт)на этом сервере)

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Правильное решение зависит от ситуации и зависит от дизайнера.

Несколько вариантов:

Если вы используете парсер журналов для обработки журналов, то объединение строк и использование драйверов журналирования докера не является проблемой. Анализатор журнала сможет распознавать тип / источник журнала из самой записи журнала и обрабатывать его соответствующим образом. Это просто сделать для Nginx, который записывает отформатированные записи журнала.

Чтобы сохранить журналы в виде отдельных файлов, подключите каталог хоста как том докера, на котором записываются журналы, и удалите символические ссылки на stdout / stderr. Это обеспечивает предсказуемый способ совместного использования журналов за пределами контейнера. Это решение может быть расширено путем монтирования тома журналов в другой контейнер, который впоследствии обрабатывает журналы.

Также можно написать скрипт, который запускает задачи доставки журналов, такие как filebeat, из контейнера и запускается в фоновом режиме. Это нарушает соглашение о микросервисном / однопроцессном процессоре и поэтому не рекомендуется.

0 голосов
/ 16 ноября 2018

Я предполагаю, что это вывод, если я использую журналы Docker?

Да.

Имеет ли смысл также ссылку на символ (?) Мойошибки веб-сайтов и доступ к журналам к одному и тому же выводу?

Это возможно сделать.Сообщения об ошибках будут запутаны во всех записях журнала доступа.

Не нарушит ли это существующие ссылки, связанные с access.log и error.log?

AFAIK no.Вы можете иметь несколько символических ссылок на /dev/stdout.

...