温馨提示×

怎样分析linux系统日志

小樊
40
2026-09-02 14:03:09
栏目: 智能运维

分析 Linux 系统日志是排查故障、监控系统状态和安全审计的重要手段。下面从日志种类、查看工具、分析思路、常用命令和实战示例几个方面系统说明。


一、Linux 日志主要位置与类型

1. 传统日志目录(syslog 体系)

大多在 /var/log 下:

日志文件 说明
/var/log/messages 系统通用日志(RHEL/CentOS)
/var/log/syslog 系统通用日志(Debian/Ubuntu)
/var/log/dmesg 内核启动信息
/var/log/secure 认证和安全日志(SSH、sudo)
/var/log/auth.log 认证日志(Debian 系)
/var/log/boot.log 启动过程日志
/var/log/cron 定时任务日志
/var/log/kern.log 内核日志
/var/log/yum.log 软件安装记录

2. systemd 日志(journald)

现代 Linux 使用 systemd,日志由 journald 管理:

/run/log/journal/

二、日志查看与分析工具

1. 基础命令

cat /var/log/messages
less /var/log/syslog
tail -f /var/log/secure     # 实时查看
head -n 50 /var/log/cron

2. grep 过滤

grep "error" /var/log/syslog
grep "Failed password" /var/log/secure

3. journalctl(推荐)

journalctl                  # 全部日志
journalctl -xe             # 最近错误
journalctl -u nginx        # 某服务
journalctl --since "2024-01-01" --until "2024-01-02"
journalctl -p err          # 只显示错误

4. 日志分析工具

  • logwatch:日报形式汇总
  • rsyslog / syslog-ng:日志转发
  • ELK(Elasticsearch + Logstash + Kibana)
  • GraylogSplunk

三、常见分析思路

1. 系统异常 / 宕机

  • 查内核日志:
dmesg | tail
journalctl -k
  • 看是否 OOM、磁盘满、CPU 飙高

2. 登录安全问题

grep "Failed password" /var/log/secure
grep "Accepted password" /var/log/secure

关注:

  • 暴力破解
  • 异常 IP
  • 非工作时间登录

3. 服务启动失败

journalctl -u docker -xe
systemctl status nginx

4. 磁盘 / 文件错误

grep "No space left" /var/log/messages
df -h

四、实用分析技巧

1. 统计错误次数

grep "error" /var/log/syslog | wc -l

2. 按时间排序

ls -ltr /var/log/

3. 分析 SSH 攻击来源

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

4. 日志轮转

/etc/logrotate.conf
logrotate -d /etc/logrotate.conf

五、实战示例

示例:服务器突然无法 SSH

  1. 查看安全日志
tail -n 100 /var/log/secure
  1. 发现大量 Failed password
  2. 封禁 IP:
iptables -A INPUT -s 1.2.3.4 -j DROP

六、建议的日志分析流程

  1. 明确问题(宕机 / 慢 / 无法登录)
  2. 确定相关日志(系统 / 服务 / 安全)
  3. tail + grep 初筛
  4. journalctl 看上下文
  5. 必要时写脚本或接入日志平台

如果你有具体日志内容某种故障场景(如 CPU 高、服务挂掉、被攻击),可以把日志贴出来,我可以帮你逐行分析。

0