Linux 系统拥有非常完善的日志机制,这些日志通常保存在 /var/log/ 目录下。它们是系统管理员排查故障、分析安全事件和监控系统运行状态的"第一手资料"。
以下是 Linux 系统中常见且具体的日志文件及其作用,分为系统运行日志、安全认证日志、服务与应用日志以及硬件与内核日志四大类。
一、核心系统与内核日志
这些日志记录了操作系统底层的运行状态。
1. /var/log/messages (CentOS/RHEL) 或 /var/log/syslog (Debian/Ubuntu)
2. /var/log/dmesg
3. /var/log/kern.log
二、安全与认证日志
这类日志对于排查登录失败、权限问题和黑客攻击至关重要。
1. /var/log/secure (CentOS/RHEL) 或 /var/log/auth.log (Debian/Ubuntu)
作用:非常重要的安全日志。记录了所有涉及到用户认证和授权的事件。
具体内容:包括 ssh 远程登录(成功/失败)、sudo 命令的使用、su 切换用户、本地登录(如通过终端或图形界面)、以及 PAM(可插拔认证模块)的认证信息。
查看时机:当发现服务器被暴力破解、怀疑用户权限被盗用、或者查看谁执行过 sudo 提权操作时。
2. /var/log/btmp
3. /var/log/wtmp
作用:记录所有用户的登录和注销历史。
命令:使用 last 命令查看。
4. /var/log/lastlog
作用:记录每个用户最近一次登录的时间。
命令:使用 lastlog 命令查看。
三、服务与应用日志
随着 Linux 系统的演进(特别是使用 systemd 的发行版),现在很多服务的日志不仅写在传统文件里,也通过 journald 管理,但传统路径下依然保留着关键的记录。
1. /var/log/cron
作用:记录计划任务(cron job)的执行情况。
具体内容:可以看到任务是否按时触发、脚本执行的输出结果、以及执行过程中遇到的错误。
查看时机:当你编写的定时备份脚本没有生效时,首先应该检查这个文件。
2. /var/log/maillog 或 /var/log/mail.log
3. /var/log/httpd/ (Apache) 或 /var/log/nginx/ (Nginx)
作用:Web 服务器的专属日志目录。
两个关键文件:
4. /var/log/mysql/ 或 /var/log/mariadb/
四、启动与系统初始化日志
1. /var/log/boot.log
2. /var/log/Xorg.0.log
五、总结:如何高效查看?
如果你正在使用较新版本的 Linux(如 CentOS 7+, Ubuntu 15.04+),系统主要使用 systemd,日志查询的最强大工具是 journalctl。
| 命令 | 作用 |
|---|
journalctl | 查看所有系统日志 |
journalctl -b | 查看本次启动后的日志 |
journalctl -f | 实时追踪最新日志(类似 tail -f) |
journalctl -u nginx.service | 查看某个特定服务(如 nginx)的日志 |
而在传统的排查场景中,查看 /var/log/messages (或 syslog) 和 /var/log/secure (或 auth.log) 依然是解决大部分问题的基础步骤。