
你打开/var/log目录,看到一堆文件:syslog、auth.log、kern.log、dmesg、dpkg.log……十几二十个名字,你不确定哪个有用,排查问题时不知道该看哪个。它们每天在写东西,但你从来没仔细看过。
今天把这些日志文件逐个拆开,告诉你哪个是干什么的、什么时候看它。
先看一个数据
日志文件是系统运行的记录本。在排查问题时,正确的日志能帮你快速定位原因;看错的日志会浪费时间。
系统核心日志
/var/log/syslog(Ubuntu/Debian)或 /var/log/messages(CentOS/RHEL)
这是系统最核心的日志文件,记录几乎所有系统级事件:内核消息、服务启动停止、网络变化、硬件信息。
什么时候看:系统出问题不知道从哪开始查的时候,先看这个。通常能找到最直接的线索。
bash
tail -50 /var/log/syslog # 或 tail -50 /var/log/messages
/var/log/kern.log
专门记录内核相关的日志:硬件驱动加载、USB设备插拔、内核报错、内存管理信息。syslog里也包含内核消息,但kern.log更集中。
什么时候看:怀疑是硬件问题,或者内核报错导致系统不稳定时。
/var/log/dmesg
记录系统启动时的内核环形缓冲区消息。存放的是从开机到现在的内核日志,重启后会重新开始记录,不保留旧启动日志。你可以用dmesg命令直接查看:
bash
dmesg | tail -50
什么时候看:系统启动过程中出问题,或者想查看硬件初始化状态。
认证与安全日志
/var/log/auth.log(Ubuntu/Debian)或 /var/log/secure(CentOS/RHEL)
记录所有与认证相关的事件:SSH登录成功/失败、sudo使用记录、用户密码修改。
什么时候看:
- 怀疑服务器被暴力破解
- 想查谁登录过服务器
- 排查权限问题
bash
# 查看最近的失败登录 grep "Failed password" /var/log/auth.log | tail -20 # 查看成功登录 grep "Accepted" /var/log/auth.log | tail -20
应用与服务日志
/var/log/nginx/
Nginx的日志目录,包含access.log(访问日志)和error.log(错误日志)。
/var/log/apache2/ 或 /var/log/httpd/
Apache的日志目录,同样有访问日志和错误日志。
/var/log/mysql/ 或 /var/log/mariadb/
MySQL/MariaDB的日志目录,主要文件是error.log。
什么时候看:网站报错500、502,或者想分析访问情况时。
包管理日志
/var/log/dpkg.log(Ubuntu/Debian)
记录所有通过apt或dpkg安装、升级、卸载软件包的操作。包括安装时间、版本变化。
/var/log/yum.log(CentOS/RHEL)
记录通过yum或dnf安装、更新软件包的操作。
什么时候看:
- 不确定某个软件是什么时候装的
- 系统更新后出现兼容性问题,想回顾更新记录
- 想知道某个软件包版本变化
其他重要日志
/var/log/faillog
记录用户登录失败的历史。格式紧凑,用faillog命令查看:
bash
faillog -a
/var/log/lastlog
记录每个用户最后一次登录的时间、IP和终端。用lastlog命令查看:
bash
lastlog
/var/log/wtmp 和 /var/log/btmp
wtmp记录所有用户登录和登出的历史(成功),用last命令查看。btmp记录失败的登录尝试(包括暴力破解),用lastb命令查看。
日志排查场景举例
场景:网站502,怀疑是PHP问题
先看Nginx错误日志:tail -50 /var/log/nginx/error.log。如果发现connect() failed (111: Connection refused),再查PHP-FPM日志:tail -50 /var/log/php-fpm/error.log。
场景:怀疑服务器被暴力破解
先看/var/log/auth.log,统计失败登录:grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | head -10,找出尝试次数最多的IP。
场景:系统启动变慢
dmesg显示启动过程中的硬件检测和服务加载时间,可能暴露某个服务卡住的位置。
日志管理小技巧
按需精简:长期运行的服务会积累大量日志。用logrotate配置轮转策略,定期删除或压缩旧日志。
优先监控:重点监控auth.log(安全)、syslog(系统状态)和Web服务的error.log。
快速过滤:排查问题时,先看最近100行,用grep过滤关键词。
最后一句
/var/log里的每个文件都有自己的用途。syslog是系统核心,auth.log管安全,kern.log管硬件,各类应用日志各自记录。
排查问题时选对日志比看所有日志更高效。把这些文件的作用记在脑子里,下次出问题时你就能迅速定位该查哪个文件。




