Linux 日志分析需“定位快、判断准、验证稳”:先明确异常现象,再聚焦对应日志源(如 kern.log/messages、服务专属日志、auth.log/secure、应用自定义日志),最后用 sed/grep/awk 等命令按时间、关键词、PID 快速筛选并结合上下文与系统指标交叉验证。

Linux 日志分析不是翻文件,而是带着问题找线索。核心是“定位快、判断准、验证稳”——先明确异常现象(比如服务突然不可用、CPU 飙升、登录失败增多),再聚焦对应日志源,用基础命令快速过滤关键信息,最后结合上下文交叉验证。
盯紧这几类关键日志源
不同问题对应不同日志位置,别一上来就翻 /var/log/messages:
- 系统级异常(启动失败、硬件告警、内核 OOM):优先看 /var/log/kern.log(Debian/Ubuntu)或 /var/log/messages(RHEL/CentOS),配合 dmesg -T 查实时内核环缓冲
- 服务启停与运行报错(Nginx 挂了、MySQL 连不上):直接查服务专属日志,如 /var/log/nginx/error.log、/var/log/mariadb/mariadb.log;用 systemctl status 服务名 -l 看最近输出
- 用户行为与安全事件(暴力破解、提权操作):重点扫 /var/log/auth.log(Debian 系)或 /var/log/secure(RHEL 系),关注 Failed password、sudo:、session opened/closed
- 应用自定义日志(Java、Python 程序输出):通常在 /opt/app/logs/ 或 /var/log/appname/ 下,注意日志级别(ERROR > WARN > INFO),先 grep ERROR 行
三步快速筛出有效信息
不用从头读,用组合命令直击要害:
- 按时间切片:用 sed -n ‘/2024-04-15 14:20/,/2024-04-15 14:25/p’ /var/log/syslog 提取故障窗口期日志
- 精准关键词过滤:比如查 SSH 爆破,执行 grep “Failed password” /var/log/auth.log | awk ‘{print $9}’ | sort | uniq -c | sort -nr | head -10 统计攻击 IP
- 关联进程与 PID:发现某错误含 PID 12345,立刻用 ps -p 12345 -o pid,ppid,cmd,user 看谁在跑、属哪个用户、父进程是谁
别跳过日志背后的上下文
单行报错往往只是表象,得拉长视线看前因后果:
- 看到 Connection refused,往前翻 30 秒,常会发现上游服务已退出或 端口 未监听
- 出现 Permission denied,检查对应文件 / 目录的属主、SELinux 状态(ls -Z)、以及是否在容器中运行(挂载权限限制)
- 大量 timeout 日志,同步查 sar -n DEV 1 5 看网卡丢包、iostat -x 1 5 看磁盘 IO 等待,排除基础设施瓶颈
基本上就这些。日志本身不会说谎,但需要你问对问题、选对位置、看得够宽。多练几次,你会发现自己越来越快地从满屏滚动里一眼抓住那几行真正关键的字符。






























