Я пытаюсь докернизировать мое приложение php. У меня есть контейнер для NGINX и PHP-FPM.
Мое приложение записывает некоторые данные журнала в системный журнал с помощью функций PHP openlog и syslog, например:
openlog("myapp.test", LOG_ODELAY | LOG_CONS, LOG_LOCAL5);
syslog(LOG_INFO, "This is a test");
closelog();
Мой демон Docker настроен на использование драйвера системного журнала:
{
"graph": "/storage/docker-service",
"storage-driver": "overlay",
"log-driver": "syslog",
"log-opts": {
"syslog-address": "tcp://SERVER_IP:514",
"syslog-facility": "local5"}
}
(SERVER_IP — IPv4-адрес моего сервера)
Я запускаю свой docker-контейнер с помощью docker-compose и устанавливаю только log-tag с параметрами журнала для каждого контейнера.
NGINX настроен для входа в системный журнал:
error_log syslog:server=SERVER_IP,facility=local5,tag=nginx debug;
access_log syslog:server=SERVER_IP,facility=local5,tag=nginx;
PHP-FPM тоже самое:
error_log = syslog
syslog.ident = php-fpm
syslog.facility = local5
Журналы из NGINX и PHP-FPM правильно отображаются в системном журнале сервера. Но сообщения журнала, созданные с помощью функций php, никогда не появляются.
В чем здесь проблема? Подумайте, с помощью драйвера системного журнала docker перехватывает все сообщения системного журнала в контейнерах?
Любое предложение, как это исправить?
Задача ещё не решена.
Других решений пока нет …