温馨提示×

怎样过滤Linux关键日志

小樊
45
2026-07-18 10:55:44
栏目: 智能运维

Linux 下过滤关键日志,通常结合 日志文件位置 + 过滤工具 + 关键词/时间/级别 来实现。下面按「常用场景 → 具体命令」给你一个实用速查指南。


一、常见日志文件位置

/var/log/messages      # 通用系统日志(部分系统)
/var/log/syslog        # Debian/Ubuntu 系统日志
/var/log/secure        # 登录、SSH、安全相关(RHEL/CentOS)
/var/log/dmesg         # 内核日志
/var/log/nginx/        # Nginx 日志
/var/log/application/  # 业务自定义日志
/var/log/journal/      # systemd 日志存储

二、最常用:grep 过滤关键日志

1️⃣ 按关键词过滤

grep "error" /var/log/syslog
grep -i "failed" /var/log/secure

常用参数:

-i   忽略大小写
-n   显示行号
-C 3 显示上下 3 行
--color 高亮

示例:

grep -i -C 3 "error" /var/log/messages

2️⃣ 过滤多个关键词

grep -E "error|fail|exception" /var/log/syslog

3️⃣ 排除某些日志

grep "error" /var/log/syslog | grep -v "timeout"

三、按时间过滤日志(非常关键)

1️⃣ 过滤某一天的日志

grep "2025-01-21" /var/log/syslog

2️⃣ 过滤某个时间段

grep "2025-01-21 10:" /var/log/syslog

四、实时查看关键日志(强烈推荐)

1️⃣ tail + grep

tail -f /var/log/syslog | grep "error"

2️⃣ 多关键词实时过滤

tail -f /var/log/syslog | grep -E "error|fail|warn"

五、使用 journalctl(systemd 系统)

1️⃣ 查看系统日志

journalctl

2️⃣ 按服务过滤

journalctl -u nginx
journalctl -u sshd

3️⃣ 按时间过滤

journalctl --since "2025-01-21 10:00" --until "2025-01-21 11:00"

4️⃣ 按优先级(关键)

journalctl -p err        # 错误
journalctl -p warning    # 警告

优先级:

0 emerg
1 alert
2 crit
3 err
4 warning

六、过滤 SSH / 登录关键日志(安全常用)

1️⃣ 登录失败

grep "Failed password" /var/log/secure

2️⃣ 成功登录

grep "Accepted password" /var/log/secure

3️⃣ 暴力破解分析

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

七、结构化日志(进阶)

1️⃣ awk 精确提取

awk '/error/ {print $1,$2,$3,$NF}' /var/log/syslog

2️⃣ 统计错误数量

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

八、推荐组合(实战)

排查线上问题

journalctl -u your_service -p err --since "10 min ago"

实时看错误

tail -f /var/log/syslog | grep -i error

安全审计

grep "Failed" /var/log/secure | tail -n 50

九、如果你愿意,我可以进一步帮你:

  • ✅ 写 日志过滤脚本
  • ✅ 针对 Nginx / Docker / K8s 日志
  • ✅ 建立 关键日志告警规则
  • ✅ 教你 ELK / Loki 日志过滤

你可以直接说:

“我想过滤 Nginx 5xx 日志”
“我想监控 SSH 登录失败”
“我想实时看 Java 异常”

0