Debian上Swagger的监控与日志分析
小樊
38
2025-12-10 19:03:08
Debian上Swagger的监控与日志分析
一 监控目标与总体架构
- 明确对象:Swagger UI 通常是嵌入在后端应用中的页面,监控应覆盖三层:
- 系统层:进程存活、端口监听、CPU/内存/磁盘/网络。
- 应用层:应用健康与业务指标(如 Spring Boot Actuator 的 /actuator/health、/actuator/metrics)。
- 访问层:Swagger UI 与后端 API 的访问可用性、延迟与错误率。
- 建议架构:以 systemd 保证进程自愈,配合 Prometheus + Grafana 做指标可视化与告警,使用 Nginx/Apache 反向代理与 HTTPS,日志统一接入 ELK(Elasticsearch + Logstash + Kibana) 或等效方案进行分析与检索。
二 快速落地步骤
- 进程与端口存活
- 查看与拉起服务:sudo systemctl status yourapp;sudo systemctl start yourapp
- 监听端口:ss -ltnp | grep :<端口> 或 netstat -tulpen | grep <端口>
- 应用健康与指标
- Spring Boot 项目引入 Actuator,访问:http://:/actuator/health、http://:/actuator/metrics
- 可用性探测脚本
- curl -f -I --max-time 5 http://:/swagger-ui.html 或 /api-doc;配合 cron 与阈值判断做告警
- 系统资源
- 资源监控:top/htop、dstat、glances;内核与系统日志:journalctl -xe、tail -f /var/log/syslog
- 日志接入与分析
- 应用日志路径通常在 /var/log/ 或应用配置路径;集中到 ELK 后可按路径、状态码、接口、耗时等维度检索与可视化。
三 关键配置与命令清单
- systemd 自愈示例(/etc/systemd/system/yourapp.service)
- [Service]
- ExecStart=/usr/bin/java -jar /opt/yourapp.jar
- Restart=always
- RestartSec=5
- WatchdogSec=30s
- [Install]
- WantedBy=multi-user.target
- 生效:sudo systemctl daemon-reload && sudo systemctl enable --now yourapp
- Nginx 反向代理与 HTTPS
- 将 /swagger 或 /api-doc 反向代理到本地服务,开启 TLS,设置安全头与限流;仅在内网开放时可用防火墙限制来源 IP(如 ufw)
- Spring Boot Actuator 最小可用配置
- management.endpoints.web.exposure.include=health,metrics
- management.endpoint.health.show-details=always
- Prometheus 抓取示例(/etc/prometheus/prometheus.yml)
- scrape_configs:
- job_name: ‘yourapp’
static_configs:
- 日志快速筛选
- 实时查看:tail -f /var/log/yourapp.log
- 关键字:grep -i “swagger|/api-doc” /var/log/yourapp.log
- 错误趋势:grep “ERROR” /var/log/yourapp.log | awk ‘{print $1,$2}’ | sort | uniq -c
四 可视化与告警建议
- Grafana 仪表盘
- 系统层:CPU、内存、磁盘 IO、网络(node_exporter)
- 应用层:JVM/HTTP 请求率、响应时延、错误率(Micrometer/Prometheus)
- 访问层:Swagger UI 与后端 API 的可用性与延迟(Blackbox Exporter 或业务埋点)
- 告警规则示例
- 服务宕机:up{job=“yourapp”} == 0
- 高错误率:rate(http_server_requests_total{status=~“5…”}[1m]) / rate(http_server_requests_total[1m]) > 0.05
- 高延迟:histogram_quantile(0.95, sum(rate(http_server_requests_duration_seconds_bucket[1m])) by (le)) > 1
- 日志分析视图
- Kibana 建立索引模式,按 path、status、method、handler、response_time 建立可视化与探索面板,结合告警规则实现异常发现。
五 常见问题排查路径
- 页面打不开
- 检查进程与端口:systemctl status、ss -ltnp;查看应用与系统日志:journalctl -xe、tail -f /var/log/syslog
- 校验反向代理与证书:Nginx/Apache 配置、TLS 证书路径与权限
- 健康检查失败
- 访问 /actuator/health;确认数据库、缓存、下游依赖可达;检查安全策略与网络策略
- 访问很慢或偶发超时
- 资源瓶颈:top/htop、dstat、glances;慢查询或 GC 日志;网络抖动与丢包
- Swagger 配置异常
- 核对 swagger.yaml/swagger.json 路径、分组与路由前缀;查看应用启动日志中的解析错误。