温馨提示×

ubuntu syslog启动顺序

小樊
43
2025-12-24 19:34:00
栏目: 智能运维

Ubuntu 中 syslog 的启动顺序与关键要点

一、服务名称与默认实现

  • 在现代 Ubuntu(16.04 及以后) 上,日志守护进程通常由 rsyslog 提供;也有使用 syslog-ng 的场景。两者都通过 systemd 管理,服务名分别为 rsyslogsyslog-ng。传统服务名 syslog 在部分系统上可能作为兼容单元存在,但在 Ubuntu 上实际提供日志功能的一般是 rsyslog 或 syslog-ng。

二、systemd 启动顺序与依赖

  • 在现代 Ubuntu 的 systemd 启动流程中,syslog 服务通常在本地文件系统挂载完成后、网络就绪前后启动,具体顺序由单元文件中的 After=Wants= 等依赖关系决定。典型情况下,syslog 会在多用户目标(multi-user.target)之前进入活动状态,以便其它服务启动过程中的日志能被及时记录。
  • 查看依赖与顺序的常用命令:
    • 查看服务是否启用与是否开机自启:sudo systemctl is-enabled rsyslog(或 syslog-ng)
    • 查看服务详细状态与最近日志:sudo systemctl status rsyslog(或 syslog-ng)
    • 查看单元依赖关系:systemctl list-dependencies rsyslog(或 syslog-ng)
    • 查看启动耗时与是否失败:systemd-analyze plot > boot.svg(图形化查看启动序列)
    • 查看服务在系统中的排序位置:systemd-analyze critical-chain rsyslog(或 syslog-ng)
  • 如需调整顺序,可在 /etc/systemd/system/ 下创建自定义 drop-in 片段(例如 rsyslog.service.d/override.conf),通过添加或修改 After=、Before=、Wants=、Requires= 等指令来微调;修改后执行 sudo systemctl daemon-reload 并重启服务。

三、实际启动与验证步骤

  • 确认正在使用的日志守护进程:
    • 检查 rsyslog:sudo systemctl is-active rsyslog
    • 检查 syslog-ng:sudo systemctl is-active syslog-ng
  • 启动与自启(按需选择其一):
    • rsyslog:sudo systemctl start rsyslog;sudo systemctl enable rsyslog
    • syslog-ng:sudo systemctl start syslog-ng;sudo systemctl enable syslog-ng
  • 验证日志是否生效:
    • 查看服务日志:sudo journalctl -u rsyslog(或 -u syslog-ng)
    • 查看系统日志文件:sudo tail -f /var/log/syslog(rsyslog 常用;syslog-ng 的日志路径依配置而定)

四、旧版 SysVinit 的差异

  • Ubuntu 14.04 等使用 SysVinit 的旧版本中,通常通过 service 命令管理:sudo service rsyslog start;设置开机自启可用 sysv-rc-conf 或 update-rc.d 等工具。启动顺序由运行级别与 S/K 链接决定,而非 systemd 的依赖图。

0