CentOS Syslog 性能与稳定性优化指南
一 基线检查与关键参数
systemctl status rsyslog && systemctl enable rsyslog,确保 rsyslog 正常运行并随系统启动。LimitNOFILE=65536),防止高并发时“Too many open files”。二 缓解日志洪峰与丢日志
journal: Suppressed 149 messages from /system.slice/postfix.service。[Journal] 下的 RateLimitInterval=30s、RateLimitBurst=10000(示例值,可按峰值×2~3 规划),执行 systemctl restart systemd-journald。$imjournalRatelimitInterval 30 与 $imjournalRatelimitBurst 10000,执行 systemctl restart rsyslog。RateLimitBurst=0 与 $imjournalRatelimitInterval 0),但需评估磁盘 I/O 与存储压力。三 日志轮转与存储策略
daily、rotate 7、compress、include /etc/logrotate.d/*,确保旧日志及时压缩归档。create 640 <user> <group> 保证权限一致,例如:/var/log/nginx/*.log { daily; rotate 7; compress; missingok; notifempty; create 640 nginx adm; size 100M }。size 100M 等阈值,避免单文件过大影响 I/O 与检索。copytruncate,但更推荐配合服务的“reopen logs”机制或采用能无缝切换的方案。logrotate -f /etc/logrotate.conf 验证,并通过 tail -f /var/log/messages 观察轮转是否按预期执行。四 远程集中与模板治理
rsyslog.conf 或 rsyslog.d/ 中使用 action(type="omfwd" target="log.example.com" port="514" protocol="tcp" ...),必要时开启队列与重试。$template RFC3339,"%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%%msg%\n"*.* /var/log/central.log;RFC3339。journalctl -u rsyslog -f、日志速率与磁盘使用率监控,出现异常(如队列堆积、远端不可达)及时告警。五 快速检查清单与常用命令
systemctl status rsyslog && systemctl enable rsyslogLimitNOFILE=65536(或更高)journalctl -u rsyslog -flogrotate -f /etc/logrotate.confsystemctl restart rsyslog、systemctl restart systemd-journaldchown root:adm /var/log/messages; chmod 640 /var/log/messagesnc -vz log.example.com 514 或 openssl s_client -connect log.example.com:514 -quiet