|
这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在服务器运维、系统管理以及应用运维过程中,日志是我们排查问题最重要的依据。日志不仅能帮我们了解系统和服务运行状态,还能准确定位故障原因,加快修复效率。
本篇文章将系统讲解:通过日志排查问题的思路、方法和常用命令。
一、为什么要查看日志?
日志是系统和应用自动生成的重要记录,它包含了:
- 系统、服务、应用的重要事件
- 运行时的异常、错误和警告
- 用户操作记录、登录信息
- 资源使用情况变化
一句话:没有日志,不动手。先看日志,再动脑,最后再动手。
学会高效地查看和分析日志,是每一个运维、开发必备的基本功。
二、常见日志分类和路径
日志类型 | 常见位置 | 描述 | 系统日志 | /var/log/messages、/var/log/syslog | 操作系统层面的事件、警告、错误 | 认证日志 | /var/log/auth.log、/var/log/secure | SSH登录、sudo授权、认证失败等记录 | 服务日志 | /var/log/nginx/、/var/log/httpd/、/var/log/mysql/ | 各类服务运行日志 | 内核日志 | /var/log/dmesg | 内核启动、硬件相关事件 | 应用日志 | 程序自定义目录,如 /opt/xxx/logs/ | 应用内部输出 | 三、查看日志的常用方法
1. 快速查看(小日志适用)
直接用 cat:
但如果日志很大,不推荐 cat,会直接刷屏。
2. 分页查看(大日志推荐)
使用 less(更灵活)或 more:
3. 查看最后几行(最新内容)
用 tail 查看最后部分:
- tail -n 100 /var/log/syslog
复制代码 动态实时刷新的方式:
适合监控服务崩溃、重启时的日志变化。
4. 搜索特定关键字
只想找出错误类信息,可以用 grep:
- grep -i "error" /var/log/syslog
复制代码- -i 忽略大小写
- 也可以组合使用,例如找出过去5分钟内所有 warning 和 error
5. 查看 systemd 管理的服务日志
如果系统是基于 systemd 的(如 CentOS 7+,Ubuntu 20+),用 journalctl:
查看最新严重错误
实时跟踪某个服务:
四、日志排查问题的标准流程
第一步:确定问题发生的时间点
- 参考用户反馈时间
- 查看监控告警的时间戳
- 结合 uptime/who/last 命令了解系统状态
第二步:锁定相关日志文件
- 网站问题 → Nginx/Apache 日志
- 登录失败 → 认证日志
- 服务挂掉 → 系统日志 + 具体服务日志
第三步:根据关键词筛查
常用关键词有:
- error、fail、warning、timeout、refused、denied、panic、crash
复制代码 利用 grep 快速定位异常。
第四步:多日志交叉验证
- 一个故障可能同时引发系统、服务、应用多个地方报警
- 通过多份日志交叉分析,更准确找到根因
五、常见故障排查示例
1. 网站502错误排查
排查流程:
查看 Nginx 错误日志 /var/log/nginx/error.log
- grep -i "error" /var/log/nginx/error.log
复制代码- 查看后端服务(如 PHP-FPM、Node.js)是否宕机
- 检查系统负载是否过高 top 或 htop
2. SSH登录失败排查
排查流程:
查看认证日志
- tail -f /var/log/auth.log
复制代码 或
- grep "Failed password" /var/log/secure
复制代码- 确认是否被防火墙封禁或端口异常
- 查看 iptables 或 firewalld 配置
3. MySQL连接异常排查
排查流程:
- 查看 MySQL 错误日志 /var/log/mysql/error.log
- 搜索关键词 like "Out of memory" 或 "Too many connections"
- 检查系统内存 free -m、磁盘空间 df -h
六、总结
- 日志排查的本质是:
- 找到正确的日志
- 用合适的方法查看
- 快速锁定异常关键字
- 交叉验证分析
- 掌握了日志排查,就等于掌握了服务器的一双慧眼。遇到任何问题,都能从容应对,不慌不乱。
运维的第一原则:日志在手,天下我有。
|
|