Linux日志分析标准动作链为:定位关键日志→提取时间线与异常信号→关联上下文确认根因;需明确日志位置、用时间/关键词快速筛选、解析日志结构、横向验证。

Linux日志分析没有万能模板,但有一套可复用的标准动作链:定位关键日志 → 快速提取时间线与异常信号 → 关联上下文确认根因。核心不在于命令多炫酷,而在于每一步都指向明确目标。
一、先搞清“日志在哪、谁在记、记了什么”
系统日志集中在 /var/log/ 目录,不同发行版命名略有差异:
-
Ubuntu/Debian 系统:主日志是
/var/log/syslog,安全认证日志是/var/log/auth.log -
CentOS/RHEL/UOS 系统:主日志是
/var/log/messages,安全日志是/var/log/secure -
内核启动信息:看
/var/log/dmesg或运行dmesg -T -
systemd 服务日志:统一走
journalctl,比如查 SSH:journalctl -u ssh.service -
应用日志位置不固定:UOS 应用多在
~/.cache/deepin/,服务类(如 Nginx、MySQL)通常在/ /var/log//
二、三步锁定问题时间窗口和异常线索
别从头翻日志。先用时间+关键词缩小范围:
- 查某天某时段:比如 12 月 10 日上午的登录失败记录
grep "Dec 10" /var/log/auth.log | grep -i "failed password" - 查最近实时动态(适合正在发生的故障):
tail -f /var/log/syslog或journalctl -f -n 50 - 查错误高频词(忽略大小写):
grep -i "error\|fail\|denied\|oom\|segfault" /var/log/messages | head -n 20 - 查某进程的完整行为链(含前后 3 行上下文):
grep -C 3 "sshd\[12345\]" /var/log/secure(注意 PID 要加反斜杠转义)
三、看懂日志行结构,避免误读关键信息
典型日志条目格式:
Dec 10 14:22:03 myhost sshd[8921]: Failed password for root from 192.168.1.22 port 57322 ssh2- 时间戳:Dec 10 14:22:03 —— 注意系统时区是否正确,时间不准会导致排查方向错误
- 主机名:myhost —— 多机环境必须确认日志来源节点
-
进程名与 PID:sshd[8921] —— PID 可用于进一步查该进程状态:
ps -p 8921 -o pid,ppid,cmd,etime - 事件详情:“Failed password for root…” —— 区分是“for root”(尝试登录 root)还是“for invalid user”(爆破用户名),安全响应策略完全不同
四、简单但有效的关联验证技巧
单条日志只是快照,要还原现场就得横向比对:
- 看到 “Out of memory” 错误?立刻查内存压力:
free -h和cat /proc/meminfo | grep -i "oom\|commit" - 发现大量 “Connection refused”?同步检查对应服务状态:
systemctl status nginx或ss -tlnp | grep :80 - 怀疑磁盘满导致服务异常?先看空间:
df -h,再看哪些日志最大:du -sh /var/log/* | sort -hr | head -5 - 想确认某 IP 是否反复攻击?统计 auth.log 中来源 IP 出现次数:
awk '/Failed password/ {print $11}' /var/log/auth.log | sort | uniq -c | sort -nr | head -5
基本上就这些。流程不复杂,但容易忽略时间校准、主机识别和上下文交叉验证这三个点。坚持按这四步走,90% 的日常问题都能在 10 分钟内定性。










