Nginx 错误日志分析器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的指南,安装 @user_3c6cb52e/nginx-error-log-analyzer 技能到我的 AI 助手中。
技能介绍
它解决什么问题
线上 Nginx 的 error.log 与 access.log 不断堆积,排查时往往要靠 grep 手工捞关键词:上游超时、连接打满、证书即将过期……这些故障签名散落在不同日志行里,靠肉眼很难在告警响起时第一时间拼出全貌。更麻烦的是,静态日志看不到此刻上游是否健康——日志是过去时,而排障需要现在时。
核心能力与工作方式
这个技能把排障拆成两条并行的线:
- 日志侧:对
error.log和access.log做模式匹配,按已知错误签名(upstream timeout、SSL 握手失败等)归类命中,而不是把原始日志整段甩给你。 - 状态侧:通过 Nginx Plus 的 REST API(
/api/8/端点)读取实时数据,包括上游健康状态、连接指标和 SSL 证书到期时间。
典型的排查流程是:先用日志匹配定位「哪类错误在涨」,再用 REST API 确认「当前是否仍在恶化」——前者回答发生了什么,后者回答现在还是不是这样。
适用边界与注意点
- 实时能力依赖 Nginx Plus:上游健康、连接指标与证书监控走的是 Plus 的
/api/8/端点,社区版 Nginx 没有这组接口。日志分析部分不受影响,但状态侧会缺位。 - 共享内存是硬前提:Nginx 进程间的数据同步依赖共享内存,许多指令(例如限流)必须预先分配 shared memory zone,否则配置后的行为可能不符合预期。
- 以官方文档为准:从源码构建会在 NGINX 源码根目录生成
Makefile,环境准备建议参考 NGINX 官方文档与 Beginner's Guide,而不是只看发行版打包的社区版。
使用场景
- 线上 Nginx 频繁报 upstream timeout,需要快速解析 error.log 定位引发超时的具体错误签名。
- 大促期间连接数激增,需通过 Nginx Plus REST API 实时查看当前连接指标与上游健康状态。
- 证书即将到期告警触发,需要读取 Nginx Plus 接口确认所有监听端口的 SSL 证书确切过期时间。
- access.log 体积暴涨导致磁盘告警,需要分析日志中的高频错误签名以定位异常请求源头。
适合人员
- 负责线上服务的 SRE,需要在故障发生时结合日志与 Plus 实时指标快速缩小排障范围。
- 维护 Nginx 集群的后端工程师,希望自动化归类 error.log 和 access.log 中的已知错误签名。
- 管理证书与到期策略的运维人员,需要集中确认 Nginx Plus 监听端口的 SSL 证书剩余有效期。