温馨提示×

linux syslog怎样分析

小樊
39
2026-09-23 00:29:07
栏目: 智能运维

在 Linux 里,“syslog”通常指系统日志机制(rsyslog / syslog-ng / journald)以及日志内容本身。分析 syslog,一般分三步:找日志 → 看内容 → 定位问题。下面按实战角度讲。


一、Linux 日志在哪里

1. 传统 syslog 文件(rsyslog)

常见路径:

/var/log/messages      # CentOS/RHEL 通用系统日志
/var/log/syslog        # Ubuntu/Debian 系统日志
/var/log/auth.log      # 登录、SSH、sudo
/var/log/kern.log      # 内核日志
/var/log/cron          # 定时任务

2. systemd 系统(journald)

journalctl
journalctl -xe

很多新系统 syslog 文件可能为空,日志在 journal 里。


二、基础查看命令(最常用)

1. 实时看日志

tail -f /var/log/syslog
journalctl -f

2. 按时间看

journalctl --since "2024-01-01 09:00" --until "09:30"

3. 看某服务

journalctl -u nginx
journalctl -u sshd

4. 看错误

grep -i error /var/log/syslog
journalctl -p err

三、syslog 日志格式怎么看

示例(rsyslog):

Jan 10 10:22:31 server1 sshd[1234]: Failed password for root from 1.2.3.4 port 22

含义:

  • 时间
  • 主机名
  • 服务名[PID]
  • 日志内容

重点看:

  • 服务名(sshd / kernel / cron)
  • 错误关键词(error / fail / denied / timeout)
  • IP / 用户 / 资源

四、常见分析场景

1. 登录失败 / 被爆破

grep "Failed password" /var/log/auth.log

或:

journalctl _SYSTEMD_UNIT=ssh.service | grep fail

2. 内核 / 硬件问题

dmesg | tail
cat /var/log/kern.log

看:

  • Out of memory
  • segfault
  • device error

3. 服务起不来

journalctl -u xxx -b

-b 表示本次启动

4. 磁盘 / IO

grep -i "error" /var/log/messages
iostat -x 1

五、进阶分析技巧

1. 统计 Top IP

grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

2. 日志时间线

journalctl --since today

3. 日志集中分析(服务器多)

  • rsyslog → 远端日志服务器
  • ELK / Grafana Loki
  • Splunk

六、排错思路(很重要)

  1. 先确认日志来源
    • 文件?还是 journal?
  2. 缩小范围
    • 时间
    • 服务
    • 错误级别
  3. 看上下文
    • 不要只看一行
  4. 复现 + 对照
    • 正常时 vs 异常时

如果你愿意,可以:

  • 发一段 具体 syslog 内容
  • 或说你遇到什么问题(比如 SSH 登不上 / 服务崩溃 / 磁盘满)

我可以直接帮你逐行分析日志。

0 踩