服务器日志分析实战:3个命令快速定位线上故障

0 阅读1分钟

前言

作为运维工程师,日志分析是故障排查的核心技能。本文分享3个高频使用的日志分析命令,帮助你快速定位线上问题。

1. tail - 实时监控日志

# 实时查看日志末尾
tail -f /var/log/syslog

# 查看最后100行
tail -n 100 /var/log/nginx/access.log

适用场景:故障发生时实时观察日志变化,捕捉异常瞬间。

2. grep - 关键词过滤

# 忽略大小写搜索错误
grep -i "error" /var/log/nginx/error.log

# 显示匹配行的前后3行上下文
grep -C 3 "timeout" /var/log/app.log

# 多关键词匹配
grep -E "error|fail|exception" /var/log/syslog

进阶技巧

  • -v 反向匹配,排除无关日志
  • -c 统计匹配行数
  • --color=auto 高亮显示匹配内容

3. journalctl - systemd日志管理

# 查看指定服务日志
journalctl -u nginx.service

# 查看最近50条
journalctl -n 50 --no-pager

# 查看昨天到今天的日志
journalctl --since yesterday

# 实时跟踪
journalctl -f

优势:统一管理系统服务日志,支持时间范围过滤,比传统日志文件更灵活。

实战案例

某次Nginx服务异常,通过以下命令快速定位:

journalctl -u nginx -n 100 | grep -i "error"

发现是配置文件语法错误导致服务启动失败。

总结

  • tail -f 适合实时监控
  • grep 适合关键词搜索
  • journalctl 适合systemd服务日志

掌握这3个命令,90%的日志分析场景都能覆盖。