我正在使用 docker vnc 基础:FROM dorowu/ubuntu-desktop-lxde-vnc:focal
此图像使用主管启动许多进程
我在服务器上和本地运行容器,并让服务器保持几个月的测试自动化,所以 docker 日志很有用,但我在日志中得到了太多我不想要的。
我想删除/减少如下所示的日志
我每天都会收到成千上万的 docker 日志,例如:
127.0.0.1 - - [2021-12-29 22:10:41] "GET /api/state?video=false&id=2&w=1320&h=764 HTTP/1.0" 200 239 30.203522
127.0.0.1 - - [2021-12-29 22:10:49] "GET /api/health HTTP/1.1" 200 122 0.191225
127.0.0.1 - - [2021-12-29 22:11:12] "GET /api/state?video=false&id=2&w=1320&h=764 HTTP/1.0" 200 239 30.223648
127.0.0.1 - - [2021-12-29 22:11:19] "GET /api/health HTTP/1.1" 200 122 0.161399
127.0.0.1 - - [2021-12-29 22:11:45] "GET /api/state?video=false&id=2&w=1320&h=764 HTTP/1.0" 200 239 30.252270
127.0.0.1 - - [2021-12-29 22:11:49] "GET /api/health HTTP/1.1" 200 122 0.164935
>>> sending remote command: "cmd=fb" via X11VNC_REMOTE X property.
>>> sending remote command: "cmd=fb" via X11VNC_REMOTE X property.
>>> sending remote command: "cmd=fb" via X11VNC_REMOTE X property.
>>> sending remote command: "cmd=fb" via X11VNC_REMOTE X property.
其中一种日志显然来自 X11VNC,另一种(我认为)是来自 php-fpm 的健康检查
对于健康检查,这是我尝试过的:
我已经更新了 php-fpm.conf,试图关闭健康信息,但是……那没用???这在启动 bash 中,我尝试过:
sudo sed -i 's/;systemd_interval = 10/systemd_interval = 0/g' /etc/php/7.4/fpm/php-fpm.conf
它正确更新了 conf 文件,但唉,我仍然得到日志
我也从 bash 开始,如下
sudo /etc/init.d/php7.4-fpm start -D >/dev/null 2>&1
但唉,我仍然在 docker 日志中收到“GET /api/health”消息
对于 X11VNC 日志,这是我尝试过的:
supervisord.conf 包含:
[program:x11vnc]
priority=20
command=x11vnc -display :1 -xkb -forever -shared -repeat -capslock -rfbauth /.password2
我已经更新到这个:
[program:x11vnc]
stderr_logfile_maxbytes=0
stderr_logfile=/dev/fd/2
stdout_logfile_maxbytes=0
stdout_logfile=/dev/fd/1
loglevel=critical
priority=20
command=x11vnc -quiet -display :1 -xkb -forever -shared -repeat -capslock -rfbauth /.password2
但是,每次通过 novnc 访问容器时,我仍然会收到 X11VNC_REMOTE 日志消息
(我也在 [supervisord] 级别上尝试过 loglevel=critical,但我仍然收到这些消息)
我有点不知所措,我在这上面花了很长时间,感觉就像我在用头撞砖墙。我错过了什么?
更新,到目前为止,我发现其中一个日志来自这里:
https://github.com/LibVNC/x11vnc/blob/f07df92816ef10b7382a542125955df7f4156a5c/src/remote.c >>> 发送远程命令”
这是使用
fprintf(stderr
所以理论上,如果主管设置为抑制 stderr 它不应该在日志中(但它仍然是)