导读:网站被爬、接口报错、半夜访问异常,往往要到用户投诉才发现。访问日志就是网站的"黑匣子",会看会配告警,问题能提前几小时暴露。这篇文章给出一套可落地的日志方案:日志打什么、怎么看关键指标、告警怎么配不误报,每步带配置示例。
访问日志至少要覆盖三件事:谁访问(IP、UA)、访问了什么(路径、参数)、结果如何(状态码、耗时)。别贪多,字段固定,后面才好统计。推荐标准格式:
$remote_addr - $request_time $status $request_method $request_uri $http_referer $http_user_agent字段固定之后,所有统计脚本和告警规则都能基于同一套格式,换人维护也接得上。
日志拿到手,先看四类指标:
# 统计 5xx 占比(awk 一行搞定)
awk '$9 ~ /^5/ {c++} END {print c+0}' access.log告警最怕狼来了——配太灵敏天天响,配太松出事了不知道。三个原则:
另外告警消息要自带上下文:时间范围、指标数值、对比基线都要写进去,值班人不用翻系统就知道发生了什么。
# 示例:每 5 分钟统计一次 5xx 数量,超过 50 告警
*/5 * * * * awk '$9 ~ /^5/ {c++} END {if (c+0 > 50) print "5xx too many: " c+0}' access.log >> /tmp/alert.log日志不能无限增长,轮转是基本功:
# nginx 按天切分 + 保留 30 天
log_format main '$remote_addr - $request_time $status $request_uri $http_user_agent';
access_log /var/log/nginx/access.log main;采集侧建议:Nginx 日志按天切分,同步到日志平台(如自建 ELK 或云日志服务),保留 30 天供回溯;磁盘紧张时压缩归档,别直接删。采集用轻量 Agent(如 Filebeat 类)即可,别在业务代码里自己打采集点;格式解析放采集端做一次,应用只负责吐结构化字段。
日志方案按"采集-存储-告警"三段做:Nginx/应用侧统一格式采集,日志入日志平台保留 30 天,告警按环比+持续时长分级触发。先跑一周积累基线,再配阈值,避免一上来就误报刷屏。落地时建议把日志链路拆成"采集-存储-告警"三段,同类分层在乔拓云企业网站的日志统计模块中有对应实现,告警准确率用月度复盘持续校准。
结语:会看日志、会配告警,网站的问题能提前几小时被发现。核心是"字段固定、指标看全、告警分级",本文与《在线考试防作弊怎么做:切屏检测、题库乱序与倒计时交卷》同属企业数字化落地避坑系列,可对照阅读。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。