Linux日志怎么分析_从基础到进阶全流程讲透【教学】

3次阅读

linux日志分析是理解结构、定位线索、结合上下文快速判断根源的过程,核心在于知道看什么、在哪看、怎么看、怎么关联,并通过分类日志路径、三板斧筛选、解读信号及跨服务串联实现高效排障。

Linux 日志怎么分析_从基础到进阶全流程讲透【教学】

Linux 日志分析不是“翻文件”,而是通过理解日志结构、定位关键线索、结合上下文快速判断问题根源的过程。核心在于:知道看什么、在哪看、怎么看、怎么关联。

一、搞清日志在哪、分哪几类

Linux 日志分散在多个位置,不同服务写入不同路径,不能只盯/var/log/messages

  • 系统级日志:/var/log/syslog(debian/ubuntu)、/var/log/messages(RHEL/centos),记录内核、systemd、基础服务启动 / 错误
  • 服务专属日志:/var/log/nginx/access.log、/var/log/mysql/Error.log、/var/log/secure(认证相关),必须查对应服务的配置确认实际路径
  • journald 日志 :systemd 系统默认启用,用journalctl 查,比文本日志更结构化(含 PRIORITY、UNIT、SYSLOG_IDENTIFIER 等字段)
  • 应用自定义日志 :比如java 应用常写到 /opt/app/logs/app.log,得看部署文档或 ps -ef | grep java找参数

二、快速定位问题的三板斧

别从头滚日志。先用时间、级别、关键词锚定异常段落:

  • 按时间筛选:journalctl –since “2024-04-10 14:30:00” –until “2024-04-10 14:45:00”
  • 按服务 / 单元过滤:journalctl -u nginx.service -p err(只看 nginx 的 error 及以上级别)
  • 文本日志中精准搜:grep -i “connection refused|timeout|segfault|oom” /var/log/messages | tail -20;用 awk ‘{print $1,$2,$3,$NF}’ 快速看时间 + 末尾状态

三、读懂日志里的“人话”信号

日志不是乱码,每行都有模式。重点关注这几类信息:

  • 时间戳格式 :syslog 是“Apr 10 14:22:01”,journald 是“2024-04-10 14:22:01”,时区不一致会导致误判,先用date 和 timedatectl check
  • 严重级别缩写 :debug/info/notice/warn/err/crit/alert/emerg(数字 7~0),但很多程序不规范——比如mysql 把慢查询记为 Warning,实际要关注
  • 进程标识:[1234] 或 [nginx: worker process],可配合 ps aux | grep 1234 查进程状态
  • 典型错误模式 :Permission denied(SELinux 或权限)、No route to host(网络不通)、Connection refused( 端口 没监听)、Out of memory(OOM killer 已杀进程,查 dmesg)

四、进阶:串联 + 聚合 +自动化

单点日志只能看表象。真问题往往跨服务、跨时间、跨主机:

  • 时间对齐查因果:比如 Web 返回 502,先查 nginx error.log 里 upstream timed out 时间,再查同一秒前后 backend 服务日志是否有 GC 停顿或 DB 锁等待
  • 用 awk/sed 做轻量聚合 :统计http 状态码分布:awk ‘{print $9}’ /var/log/nginx/access.log | sort | uniq -c | sort -nr
  • 用 rsyslog+elk或 Loki 做集中分析:小团队可用 rsyslog 转发到一台中心日志机;中大型建议用 Loki+grafana,成本低、查起来快,支持正则提取标签
  • 写简单巡检脚本 :每天凌晨用 shell 检查 /var/log 下各日志大小增长是否异常(突增可能意味着 循环 报错)、最近 1 小时 ERROR 行数是否超阈值,邮件告警

基本上就这些。日志分析能力不靠背命令,而靠建立“服务行为—日志输出—系统状态”的映射习惯。多看几次真实故障现场,比读十篇教程管用。

站长
版权声明:本站原创文章,由 站长 2025-12-19发表,共计1675字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources