温馨提示×

怎么读懂linux syslog

小樊
37
2026-10-19 09:18:36
栏目: 智能运维

读懂 Linux 的 syslog 其实就是搞懂三件事:日志在哪、格式是什么意思、怎么过滤和分析。下面按实用角度讲。


一、syslog 在哪里

1. 传统路径(较老系统)

  • /var/log/messages:通用系统消息
  • /var/log/syslog:Debian/Ubuntu 常见
  • /var/log/auth.log:登录、sudo、SSH
  • /var/log/kern.log:内核日志
  • /var/log/cron:定时任务

2. systemd 系统(现在主流)

很多系统用 systemd-journald,不直接看文件:

journalctl
journalctl -xe

二、syslog 一行日志怎么读

典型格式(rsyslog):

Jun 10 14:23:01 server sshd[1234]: Failed password for root from 1.2.3.4 port 22 ssh2

拆解:

  1. 时间:Jun 10 14:23:01
  2. 主机名:server
  3. 服务/进程:sshd[1234]
    • sshd:进程名
    • 1234:PID
  4. 日志内容:剩余部分

三、日志级别(很重要)

syslog 有 8 个级别(从严重到普通):

emerg > alert > crit > err > warning > notice > info > debug

常见含义:

  • err:错误(值得看)
  • warning:潜在问题
  • info:普通信息
  • debug:调试用

四、怎么快速读懂 & 排查

1. 看最近错误

grep -i err /var/log/syslog

2. 看 SSH 登录情况

grep sshd /var/log/auth.log

3. 实时看日志

tail -f /var/log/syslog

4. systemd 系统

journalctl -p err
journalctl -u sshd
journalctl --since "2024-06-10 14:00"

五、配置文件在哪(懂原理)

  • /etc/rsyslog.conf
  • /etc/rsyslog.d/*.conf
  • systemd:/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
    

如果你愿意,可以:

  • 发一段具体 syslog 内容,我帮你逐行解释
  • 或告诉我你用的是 CentOS / Ubuntu / 容器 / 服务器场景,我给你更针对性的读法

0 踩