- 首页 >
- 问答 >
-
智能运维 >
- Swagger在Linux平台上如何进行监控和报警
Swagger在Linux平台上如何进行监控和报警
小樊
44
2025-11-30 05:50:40
监控目标与总体思路
- 明确监控对象:一是承载文档的Swagger UI / Swagger Editor(本质是静态站点或 Node 服务),二是被文档描述的后端 API 本身(Swagger 只是规范与展示层,监控重点在后端接口可用性、时延、错误率等)。
- 组合方案:用进程/服务存活监控保证文档站点可达,用HTTP 探针校验文档与后端健康,用日志与指标平台做可视化与告警,用访问控制与审计降低风险。
快速落地步骤
- 存活与健康检查
- 进程守护:若以服务运行,使用 systemd 配置自动拉起与看门狗,示例要点:
- 创建服务单元(如 /etc/systemd/system/swagger.service),设置 ExecStart、Restart=always、RestartSec=5,按需启用 WatchdogSec=30s;执行 systemctl daemon-reload && systemctl enable --now swagger.service。
- HTTP 探针:对文档页与后端健康检查端点设置定时 curl 探测(状态码、响应时间阈值),失败即触发告警;可将脚本加入 cron 或接入告警平台。
- 日志与审计
- 若经由 Nginx/Apache 托管,记录访问与错误日志(常见路径:/var/log/nginx/error.log、/var/log/apache2/error.log),用于定位文档站点不可用与后端 5xx/4xx 异常。
- 使用 journalctl -u 查看托管进程日志;用 logrotate 做按日轮转、压缩与保留,避免磁盘被占满。
- 指标与可视化
- 部署 Prometheus + Grafana:Prometheus 抓取后端或网关暴露的 /metrics,Grafana 构建仪表盘展示请求速率、错误率、P95/P99 时延等;若 Swagger 文档由后端服务托管,可直接在同一实例上暴露指标端点统一采集。
告警规则与通知示例
- Prometheus 规则示例(告警规则文件,如 swagger-api-alerts.yml)
- 文档站点不可达
- 规则:up{job=“swagger-ui”} == 0
- 含义:连续抓取失败,判定文档站点宕机或网络异常
- 建议严重度:Critical
- 后端 API 5xx 比例过高
- 规则:sum(rate(http_requests_total{job=“backend”,status=~“5…”}[5m])) / sum(rate(http_requests_total{job=“backend”}[5m])) > 0.05
- 含义:近 5 分钟 5xx 比例超过 5%
- 建议严重度:Critical
- 后端 API 时延过高
- 规则:histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job=“backend”}[5m])) by (le)) > 1
- 含义:P95 时延超过 1 秒
- 建议严重度:Warning
- 通知:在 Alertmanager 配置 Webhook/钉钉/企业微信/邮件 等接收器,分组、抑制与静默策略按团队流程设置。
安全与合规要点
- 访问控制:对 Swagger UI / Editor 配置 ACL、鉴权与授权,仅内网或受控人员可访问;对外仅暴露必要的只读文档与健康检查端点。
- 日志安全与保留:限制日志文件权限,制定保留周期与归档/备份策略,满足审计与合规要求。
常见排障清单
- 文档站点访问异常:先查 Nginx/Apache 错误日志 与 systemd 状态(如 systemctl status swagger.service),确认进程存活、端口监听与反向代理配置正确。
- 探针失败或时延抖动:用 curl -v 复现,检查网络连通、TLS 证书、上游超时与限流策略;必要时在 Grafana 对比同时间段指标与日志定位根因。