温馨提示×

Debian syslog怎么配置

小樊
37
2026-07-19 03:54:07
栏目: 智能运维

在 Debian 系统中,syslog 其实多数情况下指的是 rsyslog(现代 Debian 默认使用 rsyslog 作为 syslog 守护进程)。下面我从安装 → 配置文件 → 常见配置示例 → 重启与验证几个方面说明。


一、确认 rsyslog 是否安装与运行

1. 检查是否安装

dpkg -l | grep rsyslog

如果没有安装:

sudo apt update
sudo apt install rsyslog

2. 检查服务状态

sudo systemctl status rsyslog

启动 / 开机自启:

sudo systemctl enable rsyslog
sudo systemctl start rsyslog

二、rsyslog 配置文件结构

主配置文件

/etc/rsyslog.conf

附加配置目录(推荐在这里修改)

/etc/rsyslog.d/

示例文件:

/etc/rsyslog.d/50-default.conf

三、主配置文件(/etc/rsyslog.conf)

常见的关键项:

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

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

# 包含额外配置
$IncludeConfig /etc/rsyslog.d/*.conf

通常 不需要大幅修改主配置文件,只改 rsyslog.d/ 下的文件即可。


四、日志规则语法(最重要)

基本格式

设施.优先级    动作

常见设施(facility)

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

优先级(低 → 高)

debug < info < notice < warning < err < crit < alert < emerg

五、常见配置示例

1. 把所有日志写入单独文件

*.*    /var/log/all.log

⚠️ 不建议生产环境这样用(日志量巨大)


2. 只记录错误及以上级别

*.err    /var/log/error.log

3. 为某个程序单独记录日志

例如 SSH:

authpriv.*    /var/log/ssh.log

4. 远程 syslog 服务器(集中式日志)

客户端配置

*.* @@192.168.1.100:514
  • @ = UDP
  • @@ = TCP

服务端开启接收

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

5. 按日期轮转日志(配合 logrotate)

创建:

sudo nano /etc/logrotate.d/rsyslog-custom

示例:

/var/log/all.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

六、重启与验证

重启 rsyslog

sudo systemctl restart rsyslog

查看日志

tail -f /var/log/syslog

或:

journalctl -u rsyslog

七、Debian 日志文件常见位置

文件 内容
/var/log/syslog 主系统日志
/var/log/auth.log 认证日志
/var/log/kern.log 内核日志
/var/log/mail.log 邮件
/var/log/daemon.log 守护进程

八、常见问题

1. 日志不生效?

  • 是否重启 rsyslog
  • 是否有语法错误:
rsyslogd -N1

2. 看不到内核日志?

sudo modprobe nf_log_ipv4

或检查:

dmesg

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

  • ✅ Debian 版本(10 / 11 / 12)
  • ✅ 是想本地日志远程日志,还是程序日志
  • ✅ 是否用 Docker / 容器 / 服务器环境

我可以给你一份可直接复制使用的 rsyslog 配置模板

0