Linux 的 syslog 是用来记录系统日志的机制,几乎所有系统事件、服务报错、内核信息都会通过它记录。下面从概念 → 常用命令 → 配置 → 实战示例一步步说明。
syslog 是一个日志标准协议,包括:
/var/log/常见实现:
rsyslog(最常见)syslog-ngsystemd-journald(现代系统)⚠️ 现在大多数 Linux(CentOS 7+、Ubuntu 16+)实际用的是 rsyslog + systemd-journald
/var/log/messages # 通用系统日志(CentOS/RHEL)
/var/log/syslog # 通用系统日志(Ubuntu/Debian)
/var/log/secure # 安全、SSH 登录日志(CentOS)
/var/log/auth.log # 认证日志(Ubuntu)
/var/log/cron # 定时任务日志
/var/log/dmesg # 内核启动日志
/var/log/kern.log # 内核日志
tail -f /var/log/syslog
# 或
tail -f /var/log/messages
tail -n 50 /var/log/syslog
grep "error" /var/log/syslog
grep "sshd" /var/log/auth.log
grep "2025-01-20 10:" /var/log/syslog
logger 手动写 syslog(非常实用)logger "这是一条测试日志"
查看:
tail /var/log/syslog
logger -p auth.warning "认证异常"
logger -p cron.info "定时任务执行"
常见级别(从高到低):
| 级别 | 含义 |
|---|---|
| emerg | 系统不可用 |
| alert | 必须立即处理 |
| crit | 严重错误 |
| err | 错误 |
| warning | 警告 |
| notice | 普通但重要 |
| info | 信息 |
| debug | 调试 |
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
设施.级别 日志位置
示例:
*.info;mail.none;authpriv.none /var/log/messages
authpriv.* /var/log/secure
常见设施:
auth / authpriv:认证cron:定时任务kern:内核mail:邮件user:用户程序local0 ~ local7:自定义# /etc/rsyslog.conf
module(load="imudp")
input(type="imudp" port="514")
重启:
systemctl restart rsyslog
*.* @@192.168.1.10:514
journalctl
journalctl -f
journalctl -u sshd
journalctl -b
grep "Failed" /var/log/auth.log
journalctl -u nginx
df -h
✅ syslog = 系统日志机制
✅ rsyslog 是默认实现
✅ /var/log 是日志家
✅ logger 用来写日志
✅ journalctl 是 systemd 日志工具
如果你愿意,我可以:
你现在用的是 CentOS 还是 Ubuntu?