温馨提示×

怎样监控linux syslog

小樊
43
2026-07-29 20:38:08
栏目: 智能运维

在 Linux 中监控 syslog(系统日志) 常见做法取决于你用的是 传统 syslog / rsyslog,还是 systemd-journald。下面按常见场景给你一个完整指南。


一、确认你用的是哪种日志系统

1️⃣ 查看系统是否使用 systemd

ps -p 1 -o comm=
  • 输出 systemd → 使用 journald
  • 输出 init → 使用 sysvinit + rsyslog/syslog-ng

二、使用 systemd-journald(最常见,CentOS 7+/Ubuntu 16+)

1️⃣ 实时查看系统日志

journalctl -f

✅ 类似 tail -f /var/log/syslog

2️⃣ 查看指定服务的日志

journalctl -u sshd -f

3️⃣ 查看指定时间段的日志

journalctl --since "10 min ago"
journalctl --since "2025-01-01 09:00" --until "2025-01-01 10:00"

4️⃣ 查看内核日志

journalctl -k

5️⃣ 按优先级过滤(如只看错误)

journalctl -p err

三、使用 rsyslog(传统方式)

1️⃣ 查看 syslog 文件

ls -lh /var/log/

常见文件:

  • /var/log/syslog(Ubuntu)
  • /var/log/messages(CentOS/RHEL)

2️⃣ 实时监控 syslog

tail -f /var/log/syslog

3️⃣ 过滤关键字

tail -f /var/log/syslog | grep ssh

四、使用 syslog-ng(较少见)

tail -f /var/log/messages

配置文件一般在:

/etc/syslog-ng/syslog-ng.conf

五、远程 syslog 监控(服务器集中日志)

1️⃣ rsyslog 发送远程日志

*.* @@192.168.1.10:514

2️⃣ 接收端开启 TCP/UDP 514


六、工具和进阶监控

✅ 彩色实时查看

lnav /var/log/syslog

✅ 使用 auditd(安全审计)

ausearch -m USER_LOGIN

✅ Prometheus + node_exporter(指标)

不适合原始日志,但适合系统状态


七、常见排错场景

场景 命令
登录失败 journalctl -u sshd -p err
服务启动失败 journalctl -u 服务名
磁盘满 journalctl --disk-usage
删除旧日志 journalctl --vacuum-size=100M

八、建议的最佳实践 ✅

  • 现代系统:优先用 journalctl
  • 生产环境:集中日志(ELK / Loki / Graylog)
  • 监控脚本journalctl -f --no-tail + grep

如果你愿意,我可以:

  • 给你 ELK / Grafana Loki 监控方案
  • 写一个 自动报警脚本
  • 针对 Docker / Kubernetes 的 syslog 监控

你现在用的是 哪个 Linux 发行版?

0