人人都会AI编程

/var/log/messages、/var/log/secure、/var/log/nginx 等

更新时间:2026-07-12

日志文件是 Linux 系统运行状态的“黑匣子”,几乎所有系统事件、服务运行情况和安全相关活动都会被详细记录下来。了解这些关键日志的位置和用途,是日常运维和故障排查的基本功。

1. /var/log/messages —— 系统级通用日志
这是最核心的系统日志之一,记录内核消息、系统服务启动信息、硬件错误、守护进程的运行状态等广泛内容。在基于 Red Hat 的发行版(如 CentOS、RHEL、Fedora)中,/var/log/messages 是默认的消息汇总地;而在 Debian/Ubuntu 系统中,类似的角色由 /var/log/syslog 承担。当系统出现不明原因的异常(如突然重启、驱动报错、服务崩溃)时,首先应该用 lessgrep 查看此文件。

sudo less /var/log/messages
sudo grep -i error /var/log/messages

2. /var/log/secure —— 认证与安全日志
此文件专门记录与用户认证、授权相关的所有事件,包括 SSH 登录(成功和失败)、sudo 提权操作、用户账户增减、密码修改等。它由 rsyslogsystemd-journald 写入,权限通常设置为仅 root 可读,以保护敏感信息。如果你需要检查服务器是否被暴力破解,或者想知道谁在什么时间使用 sudo 执行过命令,/var/log/secure 就是直接答案。

sudo cat /var/log/secure | grep "Failed password"
sudo tail -f /var/log/secure    # 实时监控登录尝试

3. /var/log/nginx —— 应用层日志示例
/var/log/nginx 是一个典型的应用服务日志目录(其他常见的有 /var/log/apache2/var/log/mysql 等)。它通常包含两个主要文件:

  • access.log:记录每一个 HTTP 请求的详细信息(客户端 IP、请求时间、URL、状态码、User-Agent 等),是分析网站流量和排查错误请求的基础。
  • error.log:记录 Nginx 服务器运行时的错误、警告和诊断信息,如 404 找不到文件、502 后端网关错误、配置错误等。

这些日志的位置和格式可以在 Nginx 配置文件中自由定义,并非硬编码,因此实际路径需以当前配置为准。通过组合 grepawkcut 等工具,可以快速统计访问量、定位异常请求。例如,找出返回 500 错误的请求:

sudo awk '$9==500' /var/log/nginx/access.log

日志的轮替与管理
这些文件不会无限增长。Linux 使用 logrotate 工具(配置在 /etc/logrotate.d/ 下)定期对日志进行轮替:将当前日志重命名为带日期的备份(如 messages-20250401),并创建新的空日志文件继续写入,旧的备份可被压缩或按照保留策略自动删除。这确保了磁盘空间不会被日志占满,也方便按时间段归档检索。

结合 journalctl 使用
在使用 systemd 的现代发行版中,很多日志优先记录到 systemd journal(二进制日志)中,/var/log/messages/var/log/secure 等也可能由 journal 转存生成。你可以用 journalctl -xe 查看内核与系统日志,用 journalctl -u ssh 查看特定服务日志,但传统的文本文件仍被广泛保留,因为它们支持 grep 直接搜索和脚本处理,更为灵活。

掌握这些关键日志的位置和分析技巧,就等于有了一双能透视系统内部运行的眼睛,面对大部分故障都能找到初步的线索和方向。