日志几百兆怎么看?运维老鸟常用的高效排查套路
在日常运维和开发工作中,日志日志就是百兆系统的“黑匣子”。无论是看运排查故障、监控运行状态,维老还是鸟常追踪安全事件,日志往往能给我们提供最关键的高效线索。
然而,排查很多新人常常“看得见,套路却看不懂”,日志要么面对动辄上百兆的百兆日志文件束手无策,要么在调试问题时找不到重点信息。看运今天,维老我们就来系统梳理一下 Linux 日志查看的鸟常常用方法与实战技巧,帮你从入门到进阶,高效玩转日志排查!排查

日志文件大多集中在 /var/log/ 目录下,不同服务有对应的日志:
(1) 系统级日志
/var/log/messages:系统核心日志,涵盖内核消息、进程运行情况等。香港云服务器/var/log/syslog:在 Ubuntu/Debian 系统中取代 messages 的角色。(2) 安全与认证日志
/var/log/auth.log(Debian/Ubuntu)/var/log/secure(CentOS/RHEL)记录登录、sudo 使用、SSH 认证等安全事件。(3) 服务相关日志
/var/log/nginx/:Nginx 的访问日志 (access.log) 和错误日志 (error.log)/var/log/apache2/:Apache日志/var/log/mysql/:MySQL 启动、查询、错误日志(4) 定时任务日志
/var/log/cron:所有定时任务的执行情况。
小技巧:当你不知道某个服务的日志在哪,可以直接去 /var/log/ 下按服务名搜索。
日志查看的常用命令(1) cat 直接输出日志
适合小文件、快速浏览。
复制# 查看系统日志 cat /var/log/messages # 只看最后 10 行 cat /var/log/messages | tail -n 101.2.3.4.5.(2) tail 实时追踪日志(最常用)
复制# 实时输出新增日志 tail -f /var/log/nginx/access.log # 显示最后 20 行并持续跟踪 tail -n 20 -f /var/log/mysql/error.log # 同时跟踪多个文件 tail -f /var/log/nginx/access.log /var/log/nginx/error.log1.2.3.4.5.6.7.8.(3) head 查看日志开头部分
复制# 默认 10 行 head /var/log/auth.log # 查看前 50 行 head -n 50 /var/log/boot.log1.2.3.4.5.(4) more/less 分页查看大日志
当日志文件几百 MB 时,分页浏览才不会“卡屏”。
复制# 按空格翻页 more /var/log/messages # 更强大的 less,支持上下键和搜索 less /var/log/nginx/access.log1.2.3.4.5. 日志分析进阶:筛选与提取(1) grep 关键词搜索
复制# 查找 SSH 登录失败记录 grep "Failed password" /var/log/auth.log # 查找 Nginx 500 错误(忽略大小写) grep -i "500" /var/log/nginx/access.log # 显示匹配行上下文 grep -C 5 "error" /var/log/mysql/error.log # 统计关键词出现次数 grep -c "timeout" /var/log/nginx/error.log1.2.3.4.5.6.7.8.9.10.11.(2) awk 按列提取
复制# 提取 Nginx 日志中的 IP 和路径 awk {print $1, $7} /var/log/nginx/access.log # 统计访问量前 10 的 IP awk {print $1} /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 101.2.3.4.5.(3) sed 按条件取日志片段
复制# 查看第 100-200 行 sed -n 100,200p /var/log/messages # 删除 debug 相关行 sed /debug/d /var/log/app.log1.2.3.4.5.(4) 按时间筛选
复制# 查找 2023-10-01 08:00 ~ 09:00 的访问记录 grep "2023/10/01 08:" /var/log/nginx/access.log # 更精准的时间过滤(按字段对比) awk $4 >= "[01/Oct/2023:08:00:00" && $4 <= "[01/Oct/2023:09:00:00" /var/log/nginx/access.log1.2.3.4.5. 日志轮转与归档Linux使用 logrotate 定期压缩和归档日志:
messages-20231001.gzsecure.1查看归档日志:
复制# 直接查看压缩文件 zcat /var/log/messages-20231001.gz | grep "error" # 解压后分析 gunzip /var/log/messages-20231001.gz cat messages-202310011.2.3.4.5.6. 实战案例(1) 场景 1:排查 SSH 登录失败
复制grep "Failed" /var/log/auth.log | tail -n 201.快速定位可疑 IP,防止暴力破解。云服务器提供商
(2) 场景 2:分析 Nginx 访问突增
复制tail -n 10000 /var/log/nginx/access.log | awk {print $1} | sort | uniq -c | sort -nr | head -n 51.一眼看出“流量大户”,帮助甄别是否遭遇爬虫或攻击。
(3) 场景 3:跟踪服务启动报错
复制journalctl -b | grep -i "failed"1.在systemd系统上,journalctl 是必备神器,比传统日志更全面。
总结日志排查的核心思路可以概括为:
找到 → 过滤 → 提取 → 分析
找到:熟悉 /var/log/ 目录和服务日志位置过滤:用 grep、awk、sed 精准提取提取:结合字段,按 IP、时间、状态码等统计分析:形成自己的“故障排查手册”掌握这些方法,能让你在面对故障时不再“瞎子摸象”,而是有章可循、快速定位问题。
日志是系统留给我们的“线索”,学会读懂它,你就能更快找到真相!
本文地址:http://www.bzuk.cn/html/06a8599908.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。