第1章 审计日志概述

审计日志?说白了就是系统里那些“谁、在什么时候、对什么资源、做了什么事”的全量记录。很多团队一开始觉得这东西就是合规部门拿来背锅用的,直到出了安全事件翻不到日志,才发现……原来命根子在这儿。

我个人的习惯是:任何系统上线之前,先问清楚日志怎么落、落多久、谁看得懂。这章我们先聊聊审计日志到底是什么,为什么我们非要搞自动化巡检,以及哪些场景最离不开它。

什么是审计日志

审计日志,也叫 audit log,是所有用户操作和管理行为的原始凭证。它跟应用日志不一样——应用日志关心“程序出了什么错”,审计日志关心“谁做的、什么时候做的、结果对不对”。

一句话概括:审计日志是系统操作行为的不可篡改的流水账。

一个典型的审计日志条目至少包含这几个字段:

字段含义示例
时间戳操作发生的精确时间2025-03-18 14:23:07.123
用户/身份操作发起者admin@company.com
事件类型操作类别登录、文件删除、权限变更
目标资源被影响的对象/etc/passwd, 数据库表 user
源 IP/设备操作发起位置192.168.1.100
结果状态成功/失败/拒绝失败(权限不足)

我在项目中遇到过最典型的反面教材:某客户数据库被删了,查日志发现根本没有记录操作者,因为日志表每天凌晨被自动清空。嗯,从那时候起我就把日志保存策略锁死在24小时不可删改。

为什么需要自动化巡检

人工翻日志查问题?一天两天还行,量大了直接崩溃。我统计过一个中型公司的数据:每天产生约500万条审计日志,光登录事件就有80万条。人眼去扫?不现实。

自动化巡检的核心价值其实就三个:

  • 降低漏检风险:规则引擎24小时扫,不会犯困、不会偷懒
  • 缩短异常发现时间:人工可能要几小时甚至隔天,自动化做到秒级告警
  • 标准化合规检查:不再依赖某个老员工的“经验判断”

我的经验:刚开始做巡检时总想搞个“万能规则”,其实分场景写几个小规则比一个大而全的规则更靠谱。我曾经一个正则表达式写太长,结果把正常操作全误报了。

为什么必须自动化?你想想看,合规审计要求“每个管理员操作都要能追溯到人”,手动去翻日志根本满足不了SLA。再加上云原生环境下服务实例会频繁扩缩容,日志源动态变化,不自动化你连日志从哪来都找不齐。

典型应用场景

我接触过的项目中,用得最多的场景是下面几个:

  1. 权限异动监控:半夜有人给普通账号加管理员权限,立刻告警
  2. 敏感数据访问审计:谁读了客户个人信息表,导出次数是否超标
  3. 违规登录检测:同一个IP在5分钟内失败登录超过10次
  4. 配置变更追踪:防火墙规则被改了、数据库备份策略被禁了
  5. 合规日结报表:每天自动生成当天的审计摘要,发给合规负责人

注意:不要等出了事再开巡检。我曾经接手过一个项目,系统上线两年从来没看过审计日志,直到被监管机构罚款……那天晚上我和运维兄弟一起从几十TB冷存储里捞数据,差点没累死。

下面这张图直观展示了从原始日志到自动化巡检的完整链路。你看,日志先采集,然后进规则引擎做模式匹配,命中规则后触发告警,同时写入可视化仪表板。整个过程不需要人碰数据——这才是自动化。

审计日志自动化巡检核心流程 审计日志 人工巡检(慢、易漏) 日志采集 & 清洗 规则引擎匹配 告警 & 通知 可视化仪表板 效率低,推荐自动化 说明: 红色虚线代表人工流程(不推荐),实线为自动化巡检主干。 规则引擎可根据场景自定义条件,比如“5分钟内失败登录>10次”触发告警。

我个人建议,刚入门不要贪多,先挑一个场景做试点(比如权限异动监控),跑通以后再复制到其他场景。自动化巡检不是一蹴而就的事,但一旦跑起来,你可能会跟我一样——再也不想回到手动翻日志的日子。