4. 常见审计日志类型:系统日志、应用日志、安全日志、数据库日志
日志这东西,说白了就是系统的「黑匣子」。每一行背后都记录着系统的历史轨迹。我入行时,第一个被分配的任务就是排查一台服务器为什么半夜重启。翻了几百 MB 的日志,才找到真相——原来是电源模块挂了。从那以后,我就养成了一个习惯:不管什么系统,先搞清楚它会产生哪些日志。
先来看一张图,帮你快速建立整体认知。
4.1 系统日志:操作系统的底牌
系统日志,是操作系统本身产生的记录。无论你是用 Linux 还是 Windows,这部分日志都是最早被建立起来的。
我个人习惯把所有系统日志分为三类:
- 内核日志:硬件故障、驱动报错、内存溢出都在这里。
- 用户态服务日志:比如 SSH 的登录记录、cron 任务的执行情况。
- 启动日志:系统从开机到运行的全过程,排查启动故障时最有用。
我遇到过一家客户,生产环境突然大面积断连。运维排查了半天没头绪。我让他们先查一下所有机器上的 /var/log/messages。果然,在同一时间戳下,所有节点都报了物理网卡 down/up 重置。最后发现是交换机的 STP 配置不当。你看,系统日志往往能一针见血地指出问题根源。
4.2 应用日志:业务痛点的放大镜
应用日志,是开发人员最熟悉的。你写的代码里每一条 console.log、logger.info,最终都会汇聚到这里。
相比系统日志,应用日志有两个很明显的特征:
- 格式高度自定义——没有统一标准,全看开发团队怎么定义。有的用 JSON,有的直接用纯文本拼一行。
- 跟业务直接挂钩——比如订单处理日志、用户登录日志、支付回调日志,这些对排查业务故障至关重要。
举个例子,一个简单的 Web 应用日志配置:
// 一个建议的日志格式
{
"timestamp": "2025-03-27T10:15:30.123Z",
"level": "ERROR",
"trace_id": "abc123xyz",
"service": "order-svc",
"message": "支付超时,用户ID: 9527",
"stack": "..."
}
4.3 安全日志:防守的第一道防线
安全日志,说白了就是「谁、在什么时间、用什么权限、做了什么操作」的完整记录。
为什么单独把它列为一类?因为安全日志有明确的审计目的,不像系统日志那么泛。常见的安全日志来源包括:
| 日志来源 | 典型内容 | 审计价值 |
|---|---|---|
| 认证系统 | 登录成功/失败记录、暴力破解尝试 | 发现异常登录行为 |
| 防火墙/IDS | 被拦截的端口扫描、SQL 注入攻击 | 检测网络层攻击 |
| sudo/su 操作 | 谁在什么时候提升了权限 | 追踪特权滥用 |
| 文件完整性 | /etc/shadow 被修改 | 发现后门植入 |
我记得有一次,客户觉得内网很安全,完全没做安全日志采集。直到某天一个离职员工的账号被用来登录生产环境,删掉了整个配置文件目录。虽然通过数据库备份恢复了数据,但那次事件之后,他们把所有安全日志都集中到了单独的 SIEM 系统里。
4.4 数据库日志:数据变更的铁证
数据库日志是一个特殊的存在。它是审计中最高频接触的日志类型之一,因为数据是企业的核心资产。
常见的数据库日志包括:
- 事务日志(Redo Log/Transaction Log):记录所有数据变更操作,用于崩溃恢复。
- 错误日志:记录数据库启动、停止、死锁、连接异常等。
- 慢查询日志:记录执行时间超过阈值的 SQL 语句。
- 审计日志:记录谁在什么时间连接了数据库、执行了什么 DDL/DML 操作。
在 MySQL 中开启审计功能的示例:
-- 安装审计插件
INSTALL PLUGIN audit_log SONAME 'audit_log.so';
-- 查看审计日志文件路径
SHOW VARIABLES LIKE 'audit_log_file';
为什么我强调数据库日志是「铁证」?因为事务日志记录的每一条变更,都包含精确的时间和操作前后的状态。把它和备份结合起来,你能还原出任何一个时间点的数据。
4.5 实践建议:如何下手
如果你刚开始搭建日志体系,我建议不要做得太复杂。先按下面这个顺序来做:
- 先把系统日志收进来——这是基础,覆盖机器层面。
- 再把关键业务应用的日志加进来——覆盖业务层面。
- 接着接入安全日志——覆盖风险层面。
- 最后考虑数据库日志——覆盖数据层面。
这个顺序也是成本递增的顺序。我第一次独立搭建日志平台时,就是按这个节奏来的。三个月后,当第一起线上故障被我们通过日志快速定位时,那种成就感还是很踏实的。
注意一点:不是所有日志都需要无脑全量留存。一般建议按合规要求来制定保留周期,比如安全日志保留 180 天,业务日志保留 90 天,调试日志保留 7 天。时间长的放冷存储,时间短的放热存储。这笔账,迟早要算。