斗篷系统上线后,日常巡检制度是保障长期稳定运行的核心环节。日志轮转与容量监控作为巡检的基础项,直接关系到磁盘占用的可控性和故障定位的效率。本文围绕日志轮转策略、容量监控指标与告警基线落地展开,给出具体可执行的配置方案,帮助运维团队建立标准化的日常巡检流程。
日志轮转:控制磁盘占用与保留关键线索
斗篷系统涉及的日志主要包括Nginx访问日志、PHP-FPM慢日志与错误日志,以及应用自身的分流决策日志。日志轮转的目标是在保留足够诊断信息的同时,避免磁盘被持续写入的日志占满。
日志轮转策略配置
推荐使用系统自带的logrotate工具进行统一管理。以Nginx日志为例,在/etc/logrotate.d/nginx中配置:
BLOCK0
关键参数解释:
daily:每日切割一次,适合访问量稳定的场景;若日志增长极快可改为hourly。rotate 14:保留14份历史日志,即两周的归档量。compress:对旧日志进行gzip压缩,通常能减少70%以上空间占用。delaycompress:延迟一天压缩,方便当日日志被工具读取。postrotate:发送USR1信号让Nginx重新打开日志文件,避免写入中断。
PHP-FPM日志轮转类似,但postrotate需重启php-fpm服务或发送USR2信号。应用日志建议按天切割并保留30天,因为分流决策日志往往需要回溯更长时间来排查指纹误判问题。
日志级别与采样控制
除了轮转,还应控制日志写入量。Nginx访问日志中,健康检查请求和静态资源请求通常占比较高,可在location块中单独关闭访问日志:
BLOCK1
PHP-FPM的慢日志阈值建议设为5秒,仅记录超过该阈值的请求。应用日志则区分debug/info/error级别,生产环境只开启info及以上,避免debug日志的冗余写入。日志切割后,建议用cron脚本统计各目录大小,当单日增长超过预设阈值(如1GB)时自动告警,防止异常写入。
容量监控:磁盘、内存与inode的联动检查
日志轮转只能延缓磁盘占用的增长,不能替代监控。日常巡检需关注磁盘使用率、inode数量以及关键目录的写入速率。
监控指标与阈值设定
常见的告警基线如下:
- 磁盘使用率:达到75%触发警告,85%触发严重告警。
- inode使用率:达到80%触发警告,90%触发严重告警。小文件过多时inode会先耗尽,导致无法创建新文件。
- 日志目录增长率:超过1GB/天时需检查是否出现异常写入或日志级别配置错误。
监控工具可使用node_exporter + Prometheus + Alertmanager组合,或轻量级的Telegraf + InfluxDB。若不想引入额外组件,也可用cron脚本定期执行df -h和df -i,将结果写入文件并判断是否超过阈值。
日志目录容量预警脚本示例
BLOCK2
实际部署中,建议将日志目录单独挂载到独立分区,避免日志写满后影响系统盘。例如将/var/log分配独立逻辑卷,并设置配额。
告警基线:从静态阈值到动态调整
告警基线并非设置一次就固定不变,需要根据业务流量和日志增长趋势动态调整。初始可参考上述经验值,运行两周后根据实际数据修正。
告警分级与通知渠道
将告警分为三级:
- WARNING:磁盘使用率75%或inode 80%,仅记录并发送邮件通知。
- CRITICAL:磁盘使用率85%或inode 90%,立即发送短信/企业微信/钉钉,并自动执行一次logrotate手动触发。
- EMERGENCY:磁盘使用率95%时,除了通知,自动执行
find /var/log -name '*.log' -mtime +30 -delete清理旧日志,并停止非核心日志写入。
告警去重与升级
为避免夜间被重复告警轰炸,应设置告警去重窗口(如15分钟内相同告警只通知一次)。若告警持续超过1小时未恢复,自动升级给第二负责人。
与现有监控体系的融合
若已部署Prometheus,可直接使用node_filesystem_avail_bytes指标和predict_linear预测未来4小时的磁盘占用,实现提前告警。例如:
BLOCK3
这样可以在磁盘真正写满之前提前处理,避免服务中断。
巡检执行与记录
日常巡检不应只依靠告警,还应安排每日定时检查。建议在业务低峰期(如凌晨3点)执行脚本,汇总以下信息并生成报告:
- 各日志目录大小与增长趋势
- 磁盘与inode使用率
- PHP-FPM慢日志数量与耗时分布
- Nginx错误日志中的异常条目(如连接超时、上游无响应)
巡检报告可输出为纯文本或JSON,便于后续统计。同时,每次巡检后应更新基线值,并记录调整原因,形成可追溯的运维知识库。
小结
日志轮转、容量监控与告警基线是斗篷系统日常巡检的三项核心内容。通过合理配置logrotate、设定分级告警阈值并动态调整基线,可以有效避免磁盘写满带来的服务中断,同时保留足够日志用于问题定位。巡检制度需持续迭代,根据实际流量和日志增长情况优化参数。建议结合故障排查路径中的方法,将巡检结果与故障复盘关联,进一步提升系统稳定性。
常见问题
日志轮转会占用大量CPU资源吗?
日志轮转通常在凌晨低峰期执行,且只对新产生的日志进行压缩,CPU占用通常低于5%。若日志量巨大,可调整compress为nocompress,或将daily改为weekly,但需注意磁盘空间变化。
磁盘使用率达到多少必须立即处理?
一般建议磁盘使用率超过85%时应立即清理或扩容,因为日志写入是持续性的,可能数小时内即写满。若使用率已达95%,应马上停止非核心日志写入并清理旧日志,避免服务中断。
告警阈值如何设置才合理?
初始可参考行业常见值:磁盘75%警告、85%严重、95%紧急。运行两周后根据实际增长速率调整,若日志增长极快,可将警告阈值提前到60%。关键目录应单独监控,避免被其他数据干扰。
延伸阅读
关于页面跳转技术更详细的原理与配置,可参考页面跳转技术指南,该文补充了跳转机制与日志分析的关联,有助于理解巡检中日志异常的含义。