Ant*_*oun 6 startup syslog-ng systemd
我在 CentOS 7 上有一个新安装的版本,我已经从 EPEL 存储库安装了 syslog-ng。
~: yum list | grep syslog
syslog-ng.x86_64 3.5.6-1.el7 @epel
Run Code Online (Sandbox Code Playgroud)
当我尝试通过 systemctl 启动它时,它失败如下:
/usr/lib/systemd/system: systemctl start syslog-ng
Job for syslog-ng.service failed. See 'systemctl status syslog-ng.service' and 'journalctl -xn' for details.
Run Code Online (Sandbox Code Playgroud)
查看日志时,我们可以看到它们依赖于“开始”正常的套接字,但该过程返回有关参数不正确的错误,如下所示:
May 07 17:26:15 superserver.company.corp systemd[1]: Starting Syslog Socket.
May 07 17:26:15 superserver.company.corp systemd[1]: Listening on Syslog Socket.
May 07 17:26:15 superserver.company.corp systemd[1]: Starting System Logger Daemon...
May 07 17:26:15 superserver.company.corp systemd[1]: syslog-ng.service: main process exited, code=exited, status=2/INVALIDARGUMENT
May 07 17:26:15 superserver.company.corp systemd[1]: Failed to start System Logger Daemon.
May 07 17:26:15 superserver.company.corp systemd[1]: Unit syslog-ng.service entered failed state.
May 07 17:26:15 superserver.company.corp systemd[1]: syslog-ng.service holdoff time over, scheduling restart.
May 07 17:26:15 superserver.company.corp systemd[1]: Stopping System Logger Daemon...
May 07 17:26:15 superserver.company.corp systemd[1]: Starting System Logger Daemon...
May 07 17:26:15 superserver.company.corp systemd[1]: syslog-ng.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Run Code Online (Sandbox Code Playgroud)
如果我们查看服务配置文件,我们可以确认对套接字的依赖以及用于启动服务的命令。
[Service]
Type=notify
Sockets=syslog.socket
ExecStart=/usr/sbin/syslog-ng -F -p /var/run/syslogd.pid
Run Code Online (Sandbox Code Playgroud)
问题是,如果我运行上面提到的命令,它就可以正常启动并且按预期工作。
我的问题是:我运行程序启动命令和 systemd 启动同一个程序有什么区别?我该怎么做才能找出它的实际问题?
编辑 1
我按照 Raymond 在答案中的建议启用了调试输出,但输出并没有教给我们更多信息。
May 08 10:31:29 server.corp systemd[1]: Starting System Logger Daemon...
May 08 10:31:29 server.corp systemd[1]: About to execute: /usr/sbin/syslog-ng -F -p /var/run/syslogd.pid
May 08 10:31:29 server.corp systemd[1]: Forked /usr/sbin/syslog-ng as 3121
May 08 10:31:29 server.corp systemd[1]: syslog-ng.service changed dead -> start
May 08 10:31:29 server.corp systemd[1]: Set up jobs progress timerfd.
May 08 10:31:29 server.corp systemd[1]: Set up idle_pipe watch.
May 08 10:31:29 server.corp systemd[3121]: Executing: /usr/sbin/syslog-ng -F -p /var/run/syslogd.pid
May 08 10:31:29 server.corp systemd[1]: Got notification message for unit syslog-ng.service
May 08 10:31:29 server.corp systemd[1]: syslog-ng.service: Got message
May 08 10:31:29 server.corp systemd[1]: syslog-ng.service: got STATUS=Starting up... (Fri May 8 10:31:29 2015
May 08 10:31:29 server.corp systemd[1]: Got notification message for unit syslog-ng.service
May 08 10:31:29 server.corp systemd[1]: syslog-ng.service: Got message
May 08 10:31:29 server.corp systemd[1]: syslog-ng.service: got STATUS=Starting up... (Fri May 8 10:31:29 2015
May 08 10:31:29 server.corp systemd[1]: Received SIGCHLD from PID 3121 (syslog-ng).
May 08 10:31:29 server.corp systemd[1]: Child 3121 (syslog-ng) died (code=exited, status=2/INVALIDARGUMENT)
May 08 10:31:29 server.corp systemd[1]: Child 3121 belongs to syslog-ng.service
May 08 10:31:29 server.corp systemd[1]: syslog-ng.service: main process exited, code=exited, status=2/INVALIDARGUMENT
May 08 10:31:29 server.corp systemd[1]: syslog-ng.service changed start -> failed
May 08 10:31:29 server.corp systemd[1]: Job syslog-ng.service/start finished, result=failed
May 08 10:31:29 server.corp systemd[1]: Failed to start System Logger Daemon.
Run Code Online (Sandbox Code Playgroud)
在 syslog-ng 进程开始时显示了一些警告(没有什么可以阻止它正常启动),所以我将所有输出重定向到 /dev/null 但最终结果是相同的。
另外,作为旁注,如果 systemd 无法进行系统日志记录,我的整个系统将不再启动。这可以通过内核选项禁用以登录到 kmesg。
我们在 Debian 8.1 上遇到了同样的问题,但通过将我们的 syslog-ng 本地配置更改为使用unix-dgram
而不是unix-socket
.
关于自定义 syslog-ng 配置文件的注意事项
由于 systemd 和 syslog-ng 旧配置文件之间的 unix 套接字类型不匹配,使用自定义 syslog-ng 配置的人很可能会面临升级问题:
- systemd 创建 /dev/log 作为
unix-dgram
- syslog-ng < 3.2.5 预期 /dev/log 是
unix-stream
(配置文件)如果您在日志消息源之一中使用“unix-stream ("/dev/log")”,则需要手动将其更改为“unix-dgram ("/dev/log")”。
归档时间: |
|
查看次数: |
51868 次 |
最近记录: |