AI行为分析配置入门:从日志采集到告警规则落地
AI行为分析配置的核心目标是把访问日志、请求参数和响应状态变成可判断的行为规则,而不是先买一套大平台。
本文用 Nginx 访问日志加 Python 脚本做最小可用配置:采集日志、解析字段、按阈值判断异常行为、输出告警结果。
适合有 Linux 基础命令经验、想先跑通流程再扩展的零基础用户。
先确认日志和运行环境
这套配置依赖三样东西:可读的 Web 访问日志、Python 3 运行环境、一个能写文件的目录。
以常见宝塔面板环境为例,Nginx 站点日志一般在 /www/wwwlogs/ 下,文件名类似 example.com.log。
先确认日志有内容:
ls -lh /www/wwwlogs/
tail -n 5 /www/wwwlogs/example.com.log
如果日志为空,先检查站点是否正常访问、Nginx 是否运行。
Python 版本用 python3 --version 确认。
脚本目录建议放在 /opt/ai-behavior/,避免和网站根目录混在一起。
解析访问日志并提取行为字段
Nginx 默认日志格式包含 IP、时间、请求方法、URL、状态码和 User-Agent。
新建脚本 /opt/ai-behavior/analyze.py,按空格拆分日志行,提取关键字段:
import re
LOG = "/www/wwwlogs/example.com.log"
pattern = re.compile(r'(\S+) - - \[([^\]]+)\] "(\S+) (\S+) [^"]*" (\d{3})')
for line in open(LOG, encoding="utf-8", errors="ignore"):
m = pattern.search(line)
if not m:
continue
ip, time_str, method, path, status = m.groups()
print(ip, method, path, status)
先运行 python3 /opt/ai-behavior/analyze.py,确认能输出 IP 和路径。
如果输出为空,用 head -n 1 日志文件 对照实际格式,调整正则表达式。
不同面板或自定义日志格式字段顺序可能不同,不能直接套用。
配置行为规则和阈值
行为分析不是把所有请求都当异常,而是按条件判断。
建议先做三条低误报规则:同一 IP 在 60 秒内请求超过 100 次、连续出现 10 次 404、请求路径中包含明显的扫描关键词。
在脚本中增加计数逻辑:
from collections import defaultdict
import time
ip_count = defaultdict(int)
ip_404 = defaultdict(int)
now = time.time()
# 在循环中按时间窗口统计
if status == "404":
ip_404[ip] += 1
ip_count[ip] += 1
for ip, count in ip_count.items():
if count > 100:
print(f"高频访问 {ip} 次数 {count}")
for ip, count in ip_404.items():
if count >= 10:
print(f"连续404 {ip} 次数 {count}")
实际使用时要把时间窗口写进判断,不能只统计整个文件。
阈值没有统一标准,先按业务正常峰值调高,观察一周再收紧。不要一开始就把阈值设得很低,否则告警会被正常爬虫和监控请求淹没。
常见坑和验证方式
第一个坑是日志轮转。
Nginx 日志按天切割后,脚本如果一直读旧文件会漏数据。
建议用 cron 定时执行,并在脚本中读取最新日志文件。
第二个坑是编码问题,日志含中文 User-Agent 时要用 errors="ignore" 避免脚本中断。
第三个坑是权限,脚本运行用户必须对日志目录有读权限,可以用 sudo -u www python3 /opt/ai-behavior/analyze.py 测试。
验证时不要只看脚本有没有报错。
手动用 curl 连续请求几次目标地址,观察脚本是否输出对应 IP 和次数;
再检查告警输出是否写入指定文件,例如追加到 /opt/ai-behavior/alerts.log。
如果规则没有触发,先打印统计中间值,确认字段解析正确。
关于 AI行为分析配置 的常见疑问
必须用机器学习模型吗? 不一定。
日志规则加阈值就能覆盖高频访问、异常状态码等基础场景,先把数据链路跑通再考虑模型。
脚本多久跑一次合适? 按日志量和业务敏感度决定。
小站可以每 5 分钟跑一次,流量大的站点缩短间隔,但要避免重复统计同一批日志。
告警发到哪里? 先写本地文件或标准输出验证规则准确性,再接入邮件或 webhook。
接入前确认告警内容包含 IP、时间、触发规则和请求路径,方便复查。
整套 AI行为分析配置 的重点是规则可解释、阈值可调整、结果可复查。
跑通最小流程后,再根据实际日志补充字段和规则,比一次性堆复杂配置更稳妥。