在 Ubuntu 上,syslog 通常由 rsyslog(或 systemd-journald)负责。下面从查看、实时监控、过滤、告警、集中管理几个层面说明如何“监控”syslog。
Ubuntu 的 syslog 一般在:
/var/log/syslog
实时监控:
tail -f /var/log/syslog
只看某服务:
tail -f /var/log/syslog | grep sshd
Ubuntu 16.04+ 默认使用 systemd:
journalctl -f
按服务:
journalctl -u ssh -f
按优先级(如错误):
journalctl -p err -f
按时间:
journalctl --since "10 min ago"
journalctl -p warning -f
tail -f /var/log/auth.log | grep "192.168.1.100"
journalctl -f | grep sudo
适合脚本或程序:
sudo apt install inotify-tools
inotifywait -m /var/log/syslog
tail -f /var/log/syslog | while read line; do
echo "$line" | grep -q "error" && echo "$line" | mail -s "Syslog Error" admin@xxx.com
done
*.* @logserver:514
# 查看系统启动日志
journalctl -b
# 查看内核日志
dmesg -T
# 查看登录失败
grep "Failed password" /var/log/auth.log
如果你能说明:
我可以给你更精确的监控方案。