在docker container dosn中调用php函数syslog工作

时间:2017-06-09 10:26:41

标签: php docker syslog

我试图将我的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消息?

有任何建议如何解决这个问题?

0 个答案:

没有答案