服务器系统安装后,日志配置的核心做法是修改 /etc/rsyslog.conf 主配置文件并重启服务。通过在该文件中添加规则行,可以指定特定设施(如 kern、auth)或优先级(如 info、warn)的日志写入到自定义路径的文件中。例如,将内核日志单独分离到 /var/log/kern.log,能避免与系统常规日志混杂,便于后续排查。

如何分离内核日志到独立文件
要实现内核日志的独立存储,需要在 rsyslog.conf 中添加针对 kern.* 的规则。这会将所有级别的内核消息重定向到指定文件,同时确保该目录权限正确且服务已重载。

# /etc/rsyslog.d/10-kernel-log.conf # 将所有内核日志写入独立文件 kern.* /var/log/kern.log # 确保其他默认日志继续工作 *.info;mail.none;authpriv.none;cron.none /var/log/messages
上述配置生效后,kern.log 将仅包含内核相关输出。需执行 systemctl restart rsyslog 使更改生效。验证时可使用 dmesg | tail -n 5 查看最近内核消息,并检查 /var/log/kern.log 是否有对应条目。注意:若使用 journald 为主日志源,rsyslog 可能未运行,此时应改用 journalctl -k 查询内核日志,但本方案适用于传统 rsyslog 环境。
如何按认证事件过滤日志
安全审计常需隔离认证日志。通过匹配 authpriv.* 设施,可将登录、sudo 等敏感操作记录至专用文件。此配置不影响其他系统日志,有助于合规性审查。

# /etc/rsyslog.d/20-auth-log.conf # 将认证相关日志单独存放 authpriv.* /var/log/auth.log # 保留全局信息日志 *.info;mail.none;authpriv.none;cron.none /var/log/messages
应用此配置后,auth.log 会累积所有认证事件。重启 rsyslog 服务后,可通过 tail -f /var/log/auth.log 实时监控。需注意:authpriv 设施在部分系统中可能被合并至 auth,若发现日志缺失,可尝试将规则改为 auth.*。此外,确保 /var/log/auth.log 属主为 root:adm 且权限为 640,以保障安全性。
当/var/log目录下无新日志文件时如何排查
若配置后目标文件未生成,首要检查 rsyslog 服务状态及配置文件语法。常见原因包括:服务未重启、路径权限不足、或规则被后续配置覆盖。通过 rsyslogd -N1 可验证配置合法性,而 ls -l /var/log/ 能确认文件是否存在及权限是否正确。
# 验证配置语法 rsyslogd -N1 # 检查服务状态 systemctl status rsyslog # 手动创建测试文件并设置权限 touch /var/log/test.log chmod 640 /var/log/test.log chown root:adm /var/log/test.log # 发送测试日志 logger -p kern.info "Test kernel log" logger -p authpriv.info "Test auth log" # 检查是否生成 ls -l /var/log/kern.log /var/log/auth.log /var/log/test.log
执行上述命令后,若 kern.log 和 auth.log 出现内容,则配置成功;若 test.log 无内容,说明 rsyslog 未捕获通用日志,需检查 /etc/rsyslog.conf 中全局规则是否屏蔽了 local0-7 设施。此排查流程基于标准 Linux 发行版,不适用于容器化或云原生环境中的轻量级日志代理。

















