CentOS下监控Swagger运行的方法
要监控Swagger UI或Swagger Editor是否正常运行,可通过访问服务端口和查看Web服务器日志实现:
http://服务器IP:8080;Swagger Editor访问http://服务器IP:8081。若页面能正常加载且无报错,说明服务运行正常。/var/log/apache2/error.log;若使用Nginx,日志路径为/var/log/nginx/error.log。通过tail -f /var/log/nginx/error.log实时查看日志,若有“Connection refused”“File not found”等错误信息,需及时排查。若需监控Swagger服务的CPU使用率、内存占用、响应时间等性能指标,可使用以下工具组合:
top(实时查看进程CPU/内存占用)、htop(增强版top,支持可视化操作)、vmstat(监控虚拟内存、进程及CPU活动)、iostat(监测磁盘I/O性能)、sar(收集/查看系统性能数据,适合长期分析)。这些命令可快速定位系统级性能瓶颈。通过日志记录和交互测试,可监控API的调用情况及可用性:
logrotate管理Swagger日志(如/var/log/swagger-editor/*.log),配置日志分割(每天1个文件)、压缩(保留7天)、删除旧日志,避免日志文件过大。示例配置:/var/log/swagger-editor/*.log { daily missingok rotate 7 compress delaycompress notifempty create 0644 root root }。swagger-editor.service),可使用journalctl -u swagger-editor查看实时日志,过滤错误信息(如journalctl -u swagger-editor | grep error)。swagger.yaml/swagger.json),发送请求测试API性能(如响应时间、吞吐量);SoapUI支持RESTful API测试,可模拟多用户并发请求,检测性能瓶颈;Zapier可将Swagger与其他监控工具(如Slack、Email)集成,实现异常自动告警。通过编写Shell脚本,定期发送请求到Swagger API,检查响应时间和状态码,并将结果写入日志或发送告警。示例脚本:
#!/bin/bash API_URL="http://localhost:8080/api/health" # Swagger API的健康检查接口 LOG_FILE="/var/log/swagger_monitor.log" TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S") # 发送请求并获取响应 RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -m 5 "$API_URL") # 超时设置为5秒 ELAPSED_TIME=$(curl -s -o /dev/null -w "%{time_total}" "$API_URL") # 记录结果 echo "$TIMESTAMP - Status: $RESPONSE, Response Time: ${ELAPSED_TIME}s" >> "$LOG_FILE" # 判断状态码,若非200则发送告警(示例:邮件告警) if [ "$RESPONSE" -ne 200 ]; then echo "Swagger API异常:状态码$RESPONSE,响应时间${ELAPSED_TIME}s" | mail -s "Swagger监控告警" admin@example.com fi 将脚本保存为/usr/local/bin/swagger_monitor.sh,添加执行权限(chmod +x /usr/local/bin/swagger_monitor.sh),并通过crontab -e设置定时任务(如每5分钟执行一次):
*/5 * * * * /usr/local/bin/swagger_monitor.sh docker stats);swagger.yaml)和日志,避免数据丢失。