温馨提示×

怎么配置linux syslog

小樊
45
2026-07-02 00:52:08
栏目: 智能运维

在 Linux 中配置 syslog 主要取决于你使用的发行版和日志服务。下面从常见场景出发,系统讲解如何配置 syslog。


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

常见日志服务有:

系统 默认日志服务
CentOS 6 / RHEL 6 rsyslog
CentOS 7+ / RHEL 7+ rsyslog
Ubuntu / Debian rsyslog(新版也可用 journald)
老系统 syslog-ng / syslogd

查看当前服务:

ps -ef | grep syslog

或:

systemctl status rsyslog

二、rsyslog 配置文件结构(最常见)

主配置文件

/etc/rsyslog.conf

子配置目录(推荐)

/etc/rsyslog.d/*.conf

三、syslog 基本语法

规则格式

facility.priority    action

示例

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

四、常见 facility 和 priority

facility(日志来源)

facility 含义
auth / authpriv 认证
cron 定时任务
daemon 守护进程
kern 内核
mail 邮件
user 用户程序
local0–local7 自定义

priority(级别,从低到高)

priority 含义
debug 调试
info 信息
notice 注意
warning 警告
err 错误
crit 严重
alert 警报
emerg 紧急

级别越高,越严重


五、配置示例

1️⃣ 将所有日志写入一个文件

*.*    /var/log/all.log

2️⃣ 只允许 error 以上日志

*.err    /var/log/error.log

3️⃣ 自定义程序日志(local0)

local0.*    /var/log/myapp.log

程序中使用:

logger -p local0.info "test message"

六、远程 syslog 配置(集中日志)

服务端(接收日志)

编辑 /etc/rsyslog.conf

# 提供 UDP
module(load="imudp")
input(type="imudp" port="514")

# 提供 TCP
module(load="imtcp")
input(type="imtcp" port="514")

重启:

systemctl restart rsyslog

客户端(发送日志)

*.*    @192.168.1.10     # UDP
*.*    @@192.168.1.10    # TCP

七、日志轮转(防止磁盘爆满)

配置文件:

/etc/logrotate.d/syslog

示例:

/var/log/messages {
    daily
    rotate 7
    missingok
    notifempty
    compress
}

生效:

logrotate -f /etc/logrotate.conf

八、重启 syslog 服务

systemctl restart rsyslog
systemctl enable rsyslog

九、排错常用命令

tail -f /var/log/messages
journalctl -u rsyslog
logger "test syslog"

十、如果你用的是 systemd(journal)

查看日志:

journalctl
journalctl -u nginx
journalctl -f

十一、我可以继续帮你

你可以告诉我:

  • ✅ Linux 发行版(CentOS / Ubuntu / 麒麟 / 欧拉)
  • ✅ 本地日志 or 远程日志
  • ✅ 是否用于 防火墙 / 交换机 / 应用

我可以给你完整可直接用的配置模板

0