温馨提示×

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:
        • targets: [‘:’]
  • 日志快速筛选
    • 实时查看: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 路径、分组与路由前缀;查看应用启动日志中的解析错误。

0