在 Debian 系统中,syslog 其实多数情况下指的是 rsyslog(现代 Debian 默认使用 rsyslog 作为 syslog 守护进程)。下面我从安装 → 配置文件 → 常见配置示例 → 重启与验证几个方面说明。
dpkg -l | grep rsyslog
如果没有安装:
sudo apt update
sudo apt install rsyslog
sudo systemctl status rsyslog
启动 / 开机自启:
sudo systemctl enable rsyslog
sudo systemctl start rsyslog
/etc/rsyslog.conf
/etc/rsyslog.d/
示例文件:
/etc/rsyslog.d/50-default.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/ 下的文件即可。
设施.优先级 动作
| 设施 | 含义 |
|---|---|
| auth / authpriv | 认证 |
| cron | 定时任务 |
| daemon | 守护进程 |
| kern | 内核 |
| 邮件 | |
| syslog | syslog 自身 |
| user | 用户程序 |
| local0–local7 | 自定义 |
debug < info < notice < warning < err < crit < alert < emerg
*.* /var/log/all.log
⚠️ 不建议生产环境这样用(日志量巨大)
*.err /var/log/error.log
例如 SSH:
authpriv.* /var/log/ssh.log
客户端配置
*.* @@192.168.1.100:514
@ = UDP@@ = TCP服务端开启接收
module(load="imtcp")
input(type="imtcp" port="514")
创建:
sudo nano /etc/logrotate.d/rsyslog-custom
示例:
/var/log/all.log {
daily
rotate 7
compress
missingok
notifempty
}
sudo systemctl restart rsyslog
tail -f /var/log/syslog
或:
journalctl -u rsyslog
| 文件 | 内容 |
|---|---|
| /var/log/syslog | 主系统日志 |
| /var/log/auth.log | 认证日志 |
| /var/log/kern.log | 内核日志 |
| /var/log/mail.log | 邮件 |
| /var/log/daemon.log | 守护进程 |
rsyslogrsyslogd -N1
sudo modprobe nf_log_ipv4
或检查:
dmesg
如果你愿意,可以告诉我:
我可以给你一份可直接复制使用的 rsyslog 配置模板。