当前位置:首页>Linux>日志分析技巧:Linux系统日志、应用日志排查问题的实战

日志分析技巧:Linux系统日志、应用日志排查问题的实战

  • 2026-09-07 19:49:45
日志分析技巧:Linux系统日志、应用日志排查问题的实战

【引言】

在Linux运维日常工作中,服务器卡顿、服务宕机、网络异常、权限报错等问题,80%都能通过日志快速定位根源。但很多运维人员在面对密密麻麻的日志文件时,往往无从下手,要么找不到日志位置,要么找不到关键报错信息,白白浪费大量排查时间。

那么,本篇文章就从日志存放位置、排查故障思路、日志排查实战、高效日志分析工具四个维度,手把手教你Linux 日志分析的全套方法,高效解决Linux运维故障。

【日志存放位置】

排查Linux日志的第一步,是找对日志文件,系统、服务的日志路径有规律可循,记住这些核心路径,再也不用盲目搜索。

一、系统通用日志

①/var/log/messages:系统核心日志,记录内核消息、系统启动、服务运行、硬件驱动、网络配置等绝大多数系统级信息,是排查系统故障的首选日志

② /var/log/dmesg:内核环形缓冲区日志,专门记录硬件检测、驱动加载、内核启动相关信息,开机硬件故障必看

③ /var/log/secure:安全认证日志,记录用户登录、SSH 连接、sudo 授权、用户创建删除等安全操作,排查登录失败、暴力破解必备

④ /var/log/cron:定时任务 crontab 运行日志,查看定时任务是否执行、执行是否报错

⑤ /var/log/boot.log:系统启动过程日志,记录开机各项服务启动状态

⑥ /var/log/yum.log:YUM 包安装日志,排查软件安装失败、依赖冲突问题

Linux7版本以上或者Ubuntu 16.04以上采用 Systemd管理服务,部分日志不再写入文件,而是通过journalctl命令查看,支持实时查询、过滤筛选。

二、常见应用服务日志路径

Nginx:

/var/log/nginx/access.log(访问日志)

/var/log/nginx/error.log(错误日志)

MySQL:

/var/log/mysqld.log

/var/lib/mysql/主机名.err

Tomcat:

Tomcat安装目录/logs/catalina.out或localhost.log

Redis:

/var/log/redis/redis-server.log

Docker:

/var/log/docker.log

journalctl -u docker

SSH 服务:

/var/log/secure(CentOS)、

/var/log/auth.log(Ubuntu)

【日志排查核心思路】

拿到问题别盲目翻日志,遵循先定位→再查看→筛信息→析原因→验结果的流程,高效锁定问题根源。

一、明确故障现象,缩小排查范围

先确定3个问题,精准锁定日志方向:

①是系统级故障(无法启动、网络不通、磁盘满、卡顿),还是应用级故障(服务启动失败、访问50X/40X、业务报错)?

②故障发生在什么时间?精准定位时间点,避免翻海量无效日志

③有没有明显报错提示?比如端口占用、权限不足、配置错误等信息

二、使用高效日志查询命令

日志文件动辄几百 M,直接用vim命令查看内容太多,掌握这几个命令,快速查看关键信息:

①tail -f 日志文件:实时查看日志,排查正在发生的故障,运维最常用

② tail -n 200 日志文件:查看最后 200 行日志,快速定位近期故障

③ head -n 100 日志文件:查看前 100 行日志,适合排查启动类问题

④ cat 日志文件| grep "error/warn/fail/失败/报错":关键词过滤,精准抓错误信息

⑤ less 日志文件:分页查看大日志,支持上下翻页、搜索关键词(输入/关键词搜索)

三、筛选关键信息,忽略无效内容

日志中大部分是正常运行信息,重点关注这几类关键词:

①系统日志关键词:error、warn、failed、timeout、panic、oops、denied、disk full、cannot find

②应用日志关键词:500、502、403、404、connection refused、permission denied、timeout、exception

四、分析报错根源,对应解决方案

根据报错信息匹配问题:

权限类报错(permission denied):检查文件/目录权限、用户属主

连接类报错(connection refused):检查服务是否启动、端口是否监听、防火墙是否拦截

资源类报错(disk full/out of memory):清理磁盘、释放内存、优化服务配置

配置类报错(invalid config/cannot find file):检查配置文件语法、文件路径是否正确

【故障日志排查实操】

场景1:系统无法远程登录,排查 secure 日志

故障现象:SSH 远程连接服务器,提示密码正确但无法登录,或连接直接拒绝

排查步骤:

①查看安全日志:tail -f /var/log/secure

②常见报错及原因:

Failed password for root from xxx.xxx.xxx.xxx port 22 ssh2:密码错误,或 IP 被黑名单拦截

Permission denied, please try again:用户被限制登录,或 SSH 配置禁止root登录

Connection closed by xxx.xxx.xxx.xxx:SSH 服务配置异常,或防火墙拦截端口

场景 2:服务器卡顿,排查 messages 日志

故障现象:服务器响应慢,CPU / 内存占用高,业务运行卡顿

排查步骤:

①查看系统核心日志:grep “error\|warn\|out of memory" /var/log/messages

②常见报错及原因:

Out of memory: Killed process xxx:内存溢出,系统杀死占用内存过高的进程

kernel: nfs: server xxx not responding:网络存储挂载异常,导致系统卡顿

disk full:磁盘空间占满,系统无法写入数据,运行缓慢

场景 3:Nginx 服务无法访问,排查应用日志

故障现象:访问网站提示 502 Bad Gateway,Nginx 服务启动失败

排查步骤:

①先看 Nginx 错误日志:tail -n 200 /var/log/nginx/error.log

②常见报错及原因:

bind() to 0.0.0.0:80 failed (98: Address already in use):80 端口被其他进程占用

permission denied:Nginx用户无网站目录访问权限

upstream timed out:后端 Tomcat/PHP 服务未启动,或连接超时

场景 4:定时任务不执行,排查cron日志

故障现象:配置的 crontab 定时任务,到时间未运行

排查步骤:

①查看定时任务日志:tail -f /var/log/cron

②常见报错及原因:

CMD (xxx) ERROR:脚本执行权限不足,或脚本路径错误

无执行记录:crontab 服务未启动,或定时任务配置语法错误

【高效日志分析工具】

除了基础命令,用好这些工具,日志分析速度翻倍,告别手动翻日志:

#journalctl:Systemd 系统日志管理工具,支持多维度过滤#实时查看:journalctl -f#查看指定服务:journalctl -u nginx#按时间筛选:journalctl --since "10分钟前"#grep + 正则:高级过滤,精准提取信息#过滤指定时间段日志:grep "2024-04-03 14:00" /var/log/messages#awk:日志数据统计,分析访问量、错误率#统计 Nginx 访问日志 IP 访问量:awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr#tail+grep 组合:实时监控错误日志tail -f /var/log/messages | grep error#ELK/ Grafana Loki:大型集群日志集中管理,适合多服务器运维,可视化查看日志

【总结】

Linux日志排查没有捷径,核心就是找对日志、抓准关键词、理清故障逻辑。

下次遇到服务器或服务故障,别再慌手慌脚,按照本文的思路,先定位日志位置,再过滤关键报错,一步步分析根源,90% 的运维问题都能快速解决。

评论区有文章总结,欢迎大家讨论!觉得好可以关注、点赞、推荐、转发,谢谢!

最新文章

随机文章