我试图将我的php应用程序停靠。我有一个NGINX和PHP-FPM的容器。
我的应用程序通过PHP openlog和syslog函数将一些日志数据写入syslog:
openlog("myapp.test", LOG_ODELAY | LOG_CONS, LOG_LOCAL5);
syslog(LOG_INFO, "This is a test");
closelog();
我的docker守护程序配置为使用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容器,并且只为每个容器设置log-tag和日志选项。
NGINX配置为登录syslog:
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的日志在服务器syslog中正确显示。但是使用php函数创建的日志消息永远不会出现。
这是什么问题?想想使用docker syslog驱动程序捕获容器中的所有syslog消息?
有任何建议如何解决这个问题?