CentOS下Swagger监控与日志管理指南
Swagger本身不直接处理日志,需通过底层应用框架(如Spring Boot)或系统服务记录。日志通常存储在以下位置:
/var/log/messages
(含系统级Swagger服务日志);logs/
目录(需在应用配置中指定路径);swagger-editor
),可通过journalctl
查看。通过应用日志框架控制日志详细程度(以Logback为例):
logback.xml
(位于src/main/resources/
),设置日志级别(DEBUG
/INFO
/WARN
/ERROR
)和输出目标(控制台/文件)。例如:<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
application.properties
快速配置:logging.level.root=INFO
logging.file.name=logs/swagger.log
使用logrotate
工具防止日志文件过大,节省磁盘空间:
sudo yum install logrotate -y
/etc/logrotate.d/swagger-editor
):/var/log/swagger-editor/*.log {
daily # 每日轮转
missingok # 忽略缺失文件
rotate 7 # 保留7天日志
compress # 压缩旧日志(.gz格式)
delaycompress # 延迟压缩(避免当天日志被压缩)
notifempty # 空日志不轮转
create 0644 root root # 新日志文件权限
}
sudo logrotate -d /etc/logrotate.d/swagger-editor # 干运行(无实际操作)
sudo logrotate -f /etc/logrotate.d/swagger-editor # 强制立即轮转
journalctl
过滤日志:journalctl -u swagger-editor -f # 实时跟踪swagger-editor服务日志
journalctl -u swagger-editor --since "2025-09-18" # 查看指定日期后的日志
grep
、awk
提取关键信息(如错误日志):grep "ERROR" /var/log/swagger-editor/*.log # 查找所有错误日志
awk '/500/ {print $0}' /var/log/swagger-editor/*.log # 提取HTTP 500错误
通过基础命令监控系统资源占用,快速定位瓶颈:
top
(动态显示CPU/内存占用)、htop
(增强版,支持鼠标操作);vmstat 1
(每秒刷新虚拟内存、CPU、进程状态)、iostat -x 1
(磁盘I/O详情)、sar -u 1
(CPU历史数据);Nmon
(图形化展示CPU、内存、磁盘、网络等指标,适合长期监控)。针对Swagger服务本身,使用专业工具监控关键指标(如请求延迟、吞吐量、错误率):
/actuator/prometheus
端点),收集Swagger服务指标;logwatch
(自动化日志分析,发送每日安全报告)、fail2ban
(防止暴力破解,自动封禁恶意IP)、ossec
(入侵检测系统,监控异常行为);auditd
工具记录系统调用(如文件访问、进程执行),配置/etc/audit/auditd.conf
开启审计,例如监控Swagger配置目录的修改:sudo auditctl -w /path/to/swagger/config -p wa -k swagger_config_changes
日志将存储在/var/log/audit/audit.log
中,可通过ausearch
命令查询。