温馨提示×

linux syslog怎样优化

小樊
63
2026-09-01 19:13:41
栏目: 智能运维

在 Linux 下优化 syslog(通常指 rsyslog / syslog-ng / journald 等日志系统),通常目标有几个:减少磁盘 IO、控制日志体积、提高性能、保证关键日志不丢、便于排查问题。下面以最常见的 rsyslog 为主说明,同时补充 systemd-journald 的优化建议。


一、先确认你用的是哪种 syslog

ps -ef | grep -E "rsyslog|syslog-ng|systemd-journal"

常见组合:

  • CentOS 6/7:rsyslog
  • Debian/Ubuntu:rsyslog
  • 新系统:systemd-journald + rsyslog

二、rsyslog 常见优化点

1️⃣ 减少不必要的日志

编辑 /etc/rsyslog.conf 或 /etc/rsyslog.d/*.conf

示例:降低调试级别

*.info;mail.none;authpriv.none;cron.none   /var/log/messages

屏蔽噪音日志

:msg, contains, "timeout" stop
:programname, isequal, "dhclient" stop

stop 表示不再继续处理该日志


2️⃣ 使用异步写入(减少 IO)

$ActionFileEnableSync off
$ActionFileBuffered on

或 modern 写法:

action(type="omfile" file="/var/log/messages" flushInterval="5")

3️⃣ 日志轮转(必须做)

使用 logrotate:

/etc/logrotate.d/syslog

示例:

/var/log/messages {
    daily
    rotate 7
    compress
    missingok
    notifempty
    postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service
    endscript
}

✅ 避免日志无限增长拖死磁盘


4️⃣ 分离高频率日志

例如把 cron / auth 单独写盘:

authpriv.*    /var/log/secure
cron.*        /var/log/cron

避免所有日志挤在 messages


5️⃣ 使用队列(高并发服务器必开)

$WorkDirectory /var/spool/rsyslog
$ActionQueueType LinkedList
$ActionQueueFileName fwdRule1
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on

作用:

  • 防止阻塞
  • 宕机不丢日志

6️⃣ 远程日志优化(集中式)

如果是日志服务器:

module(load="imtcp")
input(type="imtcp" port="514")

客户端:

*.* @@logserver:514

➡ 减少本地磁盘压力


三、systemd-journald 优化(现代系统)

配置文件:/etc/systemd/journald.conf

[Journal]
Storage=volatile        # 不写磁盘(性能最好)
# Storage=persistent

SystemMaxUse=500M
SystemKeepFree=1G
MaxRetentionSec=7day
RateLimitInterval=30s
RateLimitBurst=1000

重启:

systemctl restart systemd-journald

四、通用系统级优化

1️⃣ 避免日志写慢盘

  • 使用 SSD
  • 或挂载 /var/log 到独立分区

2️⃣ 禁用不需要的服务日志

systemctl disable --now bluetooth

3️⃣ 监控日志增长

du -sh /var/log/*

五、典型优化方案示例(生产推荐)

✅ Web 服务器:

  • journald:volatile
  • rsyslog:只记录 warning 以上
  • 远程日志 + logrotate

✅ 数据库服务器:

  • 关闭 cron / mail 日志
  • 队列 + 异步写盘

如果你愿意,可以告诉我:

  • 系统版本(CentOS / Ubuntu / 容器?)
  • 是否高并发 / 嵌入式 / 云服务器
  • 是否集中日志(ELK / Loki)

我可以给你一套可直接用的配置。

0 踩