在docker container中调用php函数syslog无法工作
我试图dockerize我的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守护程序被configuration为使用syslog驱动程序:
{ "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-compose启动Docker容器,并仅为每个容器设置日志选项。
NGINX被configuration为login到系统日志:
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函数创build的日志消息不会出现。
这里有什么问题? 使用docker syslog driver来捕获容器中的所有系统日志消息?
任何build议如何解决这个问题?