1、日志分析与问题处理思路
1、 重视报错提示信息:每个错误的出现,都是给出错误提示信息,一般情况下这个提示基本定位了问题的所在,因此一定要重视这个报错信息,如果对这些错误信息视而不见,问题永远得不到解决。
2、 查阅日志文件:有时候报错信息只是给出了问题的表面现象,要想更深入的了解问题,必须查看相应的日志文件,而日志文件又分为系统日志文件(/var/log)和应用的日志文件,结合这两个日志文件,一般就能定位问题所在。
3、 分析、定位问题:这个过程是比较复杂的,根据报错信息,结合日志文件,同时还要考虑其它相关情况,最终找到引起问题的原因。
4、 解决问题:找到了问题出现的原因,解决问题就是很简单的事情了。
解决问题的过程就是分析、查找问题的过程,一旦确定问题产生的原因,故障也就随之解决了。
2、需要分析哪些日志文件
系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。
用户日志:用与记录Linux系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
应用日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给rsyslog服务管理),用于记录本程序运行过程中的各种事件消息。
二、 系统日志文件解读
在 Linux 系统中,系统日志文件是排查问题、监控系统状态和审计安全性的核心工具。日志通常存放在 /var/log 目录下。
Linux 主要日志文件详解
| 日志文件路径 | 主要作用 | 包含内容 | 适用系统 | 查看命令示例 |
|---|---|---|---|---|
/var/log/messages | 通用系统日志 | 系统启动信息、系统运行状态、非认证相关的服务日志(内核、应用等) | CentOS/RHEL | tail -f /var/log/messages |
/var/log/syslog | 通用系统日志 | 同 messages,记录系统整体运行情况 | Ubuntu/Debian | tail -f /var/log/syslog |
/var/log/auth.log | 认证与安全日志 | 用户登录、sudo操作、ssh登录尝试、认证失败记录 | Ubuntu/Debian | grep "Failed password" /var/log/auth.log |
/var/log/secure | 安全认证日志 | sshd登录、PAM认证、sudo使用情况、用户切换(su) | CentOS/RHEL | grep "sudo" /var/log/secure |
/var/log/audit/audit.log | 内核审计日志 | 文件访问监控、系统调用记录、权限拒绝事件、敏感文件修改(如/etc/passwd) | 所有(需安装auditd) | ausearch -m USER_LOGINaureport --login |
/var/log/boot.log | 系统启动日志 | 开机启动服务的状态(成功/失败)、内核引导信息 | 所有 | cat /var/log/boot.log |
/var/log/cron | 定时任务日志 | crontab任务执行记录、任务输出、执行时间 | 所有 | tail -f /var/log/cron |
/var/log/maillog | 邮件服务器日志 | 邮件发送/接收记录、postfix/sendmail运行状态 | CentOS/RHEL | grep "status=sent" /var/log/maillog |
/var/log/mail.log | 邮件服务器日志 | 同maillog,邮件服务相关日志 | Ubuntu/Debian | tail -f /var/log/mail.log |
/var/log/kern.log | 内核日志 | 内核产生的消息、硬件错误、驱动问题 | Ubuntu/Debian | grep "error" /var/log/kern.log |
/var/log/dmesg | 内核环缓冲区日志 | 硬件识别信息、驱动加载状态、启动时的内核消息 | 所有 | dmesg 或 tail -f /var/log/dmesg |
/var/log/httpd/ | Apache日志目录 | access_log(访问日志)、error_log(错误日志) | Web服务器 | tail -f /var/log/httpd/access_log |
/var/log/nginx/ | Nginx日志目录 | access.log(访问日志)、error.log(错误日志) | Web服务器 | tail -f /var/log/nginx/access.log |
/var/log/mysql/ | MySQL日志目录 | error.log(错误日志)、slow.log(慢查询日志) | 数据库服务器 | tail -f /var/log/mysql/error.log |
/var/log/lastlog | 最后登录日志 | 所有用户最后一次登录时间 | 所有 | lastlog |
/var/log/wtmp | 登录历史日志 | 所有用户的登录/注销历史记录(二进制) | 所有 | last |
/var/log/btmp | 失败登录日志 | 所有失败的登录尝试记录(二进制) | 所有 | lastb |
/var/log/faillog | 登录失败日志 | 用户登录失败的详细记录 | 所有 | faillog |
快速定位
想看什么?
1. 系统问题 → /var/log/messages 或 /var/log/syslog
2. 登录问题 → /var/log/secure 或 /var/log/auth.log
3. 内核问题 → /var/log/kern.log 或 dmesg
4. 服务问题 → 对应服务的日志目录
5. 安全问题 → /var/log/audit/audit.log
6. 谁登录过 → last 或 lastlog
发表回复