确认rsyslog服务是否正在运行,若未运行则启动服务并设置开机自启。常用命令:
sudo systemctl status rsyslog # 查看服务状态
sudo systemctl start rsyslog # 启动服务
sudo systemctl enable rsyslog # 设置开机自启
若服务无法启动,需进一步查看服务日志(journalctl -u rsyslog)定位具体原因。
Syslog的主配置文件为/etc/rsyslog.conf(或/etc/rsyslog.d/*.conf),需检查以下内容:
*.info;mail.none;authpriv.none;cron.none /var/log/messages);/var/log/messages、/var/log/secure);Syslog进程需具备写入日志文件的权限,通常/var/log下的日志文件所有者为root,所属组为adm,权限为640。常用命令:
ls -l /var/log/messages # 查看文件权限
sudo chown root:adm /var/log/messages # 修改所有权
sudo chmod 640 /var/log/messages # 修改权限
若权限不足,会导致日志无法写入或文件为空。
若配置了远程日志接收(如*.* @192.168.1.100:514),需检查:
ping 192.168.1.100;telnet 192.168.1.100 514(UDP)或nc -zv 192.168.1.100 514(TCP);firewall-cmd --add-port=514/udp --permanent)。若系统启用SELinux(getenforce返回Enforcing),可能会限制syslog功能。解决方法:
setenforce 0(测试是否解决问题);/etc/selinux/config,将SELINUX=enforcing改为SELINUX=permissive;audit2allow生成自定义策略(针对拒绝日志):ausearch -m avc -ts recent | audit2allow -M mypolicy
semodule -i mypolicy.pp
使用以下命令查看rsyslog自身的日志,定位具体故障:
journalctl -u rsyslog -xe # 查看rsyslog服务的详细日志
tail -f /var/log/messages # 实时查看系统日志中的syslog错误
grep "rsyslog" /var/log/messages # 搜索rsyslog相关错误
日志中常见错误包括“Permission denied”(权限问题)、“Configuration error”(配置错误)、“Connection refused”(网络问题)。
磁盘空间不足会导致日志无法写入,需检查/var分区使用情况:
df -h /var # 查看/var分区磁盘空间
若空间不足(如使用率超过80%),需清理旧日志(如rm -rf /var/log/*.gz)或扩展磁盘。
日志轮转配置不当(如/etc/logrotate.conf中rotate值过小)可能导致日志丢失。检查轮转规则:
cat /etc/logrotate.conf # 查看全局配置
cat /etc/logrotate.d/rsyslog # 查看rsyslog专用配置
确保配置合理(如rotate 7表示保留7个归档日志,compress表示压缩旧日志)。