以详细模式运行 syslog-ng

以详细模式运行 syslog-ng

EDIT1: syslog-ng 启动命令:
/usr/sbin/syslog-ng -u syslog -g syslog -R /tmp/syslog-ng.persist -F

使用的命令:

syslog-ng-ctl verbose --set=onsyslog-ng-ctl verbose

我尝试syslog-ng以详细模式运行,但出现错误:

连接控制套接字时出错,套接字 = '/var/lib/syslog-ng/syslog-ng.ctl',错误 = '没有此文件或目录'

root@CHB:~# syslog-ng-ctl verbose
Error connecting control socket, socket='/var/lib/syslog-ng/syslog-ng.ctl', error='No such file or directory'

因此创建了 ctl 文件并根据需要更改了权限,但再次出现错误:

连接控制套接字时出错,套接字 = '/var/lib/syslog-ng/syslog-ng.ctl',错误 = '连接被拒绝'

root@CHB:~# touch /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rw-r--r--    1 root     root             0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl

root@CHB:~# chown syslog /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rw-r--r--    1 syslog   root             0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl

root@CHB:~# chgrp syslog /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rw-r--r--    1 syslog   syslog           0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl

root@CHB:~# chmod +x /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rwxr-xr-x    1 syslog   syslog           0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl

root@CHB:~# syslog-ng-ctl verbose
Error connecting control socket, socket='/var/lib/syslog-ng/syslog-ng.ctl', error='Connection refused'

root@CHB:~# syslog-ng-ctl verbose --set=on
Error connecting control socket, socket='/var/lib/syslog-ng/syslog-ng.ctl', error='Connection refused'

我的系统信息是否有帮助

root@CHB:~# cat /etc/issue
Poky (Yocto Project Reference Distro) 2.0 \n \l
root@CHB:~# uname -a
Linux CHB 3.2.48 #1 SMP Tue Mar 14 15:52:38 CET 2017 i686 GNU/Linux

如果需要任何其他信息,请告诉我。
感谢您对解决问题的任何帮助。

编辑2:
配置文件

#syslog settings
CS_SYSLOG_DAEMON="/usr/sbin/syslog-ng"
CS_SYSLOG_NAME="syslog-ng"
# user/group
CS_SYSLOG_USER="syslog"
CS_SYSLOG_GROUP="syslog"
# syslog port/interface to be used in syslog-ng.conf in case of remote logging
CS_SYSLOG_PORT="2020"
CS_SYSLOG_INTERFACE="eth1"
# syslog specific parameters: user, group, persist file in /tmp, in the foreground (start-stop-daemon will take care of the spawn)
CS_SYSLOG_ARGS="-u $CS_SYSLOG_USER -g $CS_SYSLOG_GROUP -R /tmp/syslog-ng.persist -F"
CS_SYSLOG_EXTRA_ARGS=

在 init.d 脚本启动命令中,上述变量在之前被引用

startdaemon $CS_SYSLOG_DAEMON $CS_SYSLOG_NAME $CS_SYSLOG_ARGS $CS_SYSLOG_EXTRA_ARGS
        ;;

答案1

详细输出将被放入 /var/log/messages。

检查套接字所在目录的权限。通常,套接字文件是在服务启动期间创建的,有时是由服务本身创建的。因此,请检查哪个用户想要启动该服务。然后修复创建套接字文件的目录的权限。

如果 syslog 是启动服务的用户,则 /var/lib/syslog-ng 应归用户 syslog 所有。由于我不确定您的系统具体情况如何,因此我建议仅出于调试原因,也授予该组写入权限。

rm /var/lib/syslog-ng/syslog-ng.ctl
chmod 770 /var/lib/syslog-ng
chown syslog:syslog /var/lib/syslog-ng

为了确保没有奇怪的文件会破坏某些东西,请对 syslog-ng.ctl 文件执行 rm。将所有者和组的权限更改为读取、写入、执行。我猜其他人在您的系统上无事可做。将此目录的所有者和组更改为 syslog。

相关内容