读懂 Linux 的 syslog 其实就是搞懂三件事:日志在哪、格式是什么意思、怎么过滤和分析。下面按实用角度讲。
/var/log/messages:通用系统消息/var/log/syslog:Debian/Ubuntu 常见/var/log/auth.log:登录、sudo、SSH/var/log/kern.log:内核日志/var/log/cron:定时任务很多系统用 systemd-journald,不直接看文件:
journalctl
journalctl -xe
典型格式(rsyslog):
Jun 10 14:23:01 server sshd[1234]: Failed password for root from 1.2.3.4 port 22 ssh2
拆解:
Jun 10 14:23:01serversshd[1234]
sshd:进程名1234:PIDsyslog 有 8 个级别(从严重到普通):
emerg > alert > crit > err > warning > notice > info > debug
常见含义:
err:错误(值得看)warning:潜在问题info:普通信息debug:调试用grep -i err /var/log/syslog
grep sshd /var/log/auth.log
tail -f /var/log/syslog
journalctl -p err
journalctl -u sshd
journalctl --since "2024-06-10 14:00"
/etc/rsyslog.conf/etc/rsyslog.d/*.conf/etc/systemd/journald.conf规则示例:
*.info;mail.none /var/log/messages
auth.* /var/log/auth.log
ls -ltr /var/log
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c
journalctl --disk-usage
如果你愿意,可以: