ngxtop日志轮转脚本:自定义日志轮转脚本示例
【免费下载链接】ngxtop Real-time metrics for nginx server 项目地址: https://gitcode.com/gh_mirrors/ng/ngxtop
🚀 想要实时监控Nginx服务器性能,但日志文件不断增长导致分析困难?ngxtop作为一款强大的实时Nginx服务器监控工具,配合自定义日志轮转脚本,能帮你轻松解决这个问题!本文将为你展示如何创建实用的ngxtop日志轮转脚本,让你的服务器监控更加高效稳定。
为什么需要ngxtop日志轮转?
Nginx访问日志会随着时间不断增长,大文件不仅占用磁盘空间,还会影响ngxtop的实时分析效率。通过日志轮转,你可以:
- 📊 保持实时监控流畅性
- 💾 节省服务器存储空间
- 🔍 便于历史数据归档分析
ngxtop日志轮转脚本核心配置
基础日志轮转脚本示例
#!/bin/bash
# ngxtop_log_rotate.sh - 自定义Nginx日志轮转脚本
LOG_DIR="/var/log/nginx"
NGXTOP_CONFIG="/etc/ngxtop.conf"
DATE_SUFFIX=$(date +%Y%m%d)
# 轮转访问日志
mv $LOG_DIR/access.log $LOG_DIR/access.log.$DATE_SUFFIX
# 重新打开日志文件
nginx -s reopen
# 可选:压缩旧日志文件
gzip $LOG_DIR/access.log.$DATE_SUFFIX
集成ngxtop的智能轮转方案
#!/bin/bash
# smart_ngxtop_rotate.sh
LOG_FILE="/var/log/nginx/access.log"
MAX_SIZE="100M" # 最大文件大小
# 检查日志文件大小
if [ -f "$LOG_FILE" ] && [ "$(stat -f%z "$LOG_FILE" 2>/dev/null || stat -c%s "$LOG_FILE") -gt 104857600 ]; then
echo "$(date): 开始轮转Nginx日志文件"
# 暂停ngxtop监控
pkill -f "ngxtop"
# 执行轮转
mv "$LOG_FILE" "${LOG_FILE}.$(date +%Y%m%d_%H%M%S)"
# 重新加载Nginx配置
nginx -s reopen
# 重新启动ngxtop
ngxtop --access-log "$LOG_FILE" --interval 2 &
echo "$(date): 日志轮转完成"
fi
关键配置文件说明
在ngxtop项目中,有几个重要的配置文件需要了解:
- 主程序文件:ngxtop/ngxtop.py - 包含核心的日志解析和实时监控逻辑
- 配置解析器:ngxtop/config_parser.py - 负责解析Nginx配置文件
- 工具函数:ngxtop/utils.py - 提供辅助功能
高级轮转策略
基于时间的轮转
#!/bin/bash
# 每日轮转脚本
# 检查是否需要轮转(每天凌晨执行)
if [ "$(date +%H)" = "00" ]; then
/path/to/ngxtop_log_rotate.sh
fi
基于大小的轮转
#!/bin/bash
# 基于文件大小的轮转
LOG_FILE="/var/log/nginx/access.log"
SIZE_LIMIT=104857600 # 100MB
current_size=$(stat -f%z "$LOG_FILE" 2>/dev/null || stat -c%s "$LOG_FILE")
if [ "$current_size" -gt "$SIZE_LIMIT" ]; then
echo "日志文件超过限制,执行轮转"
# 执行轮转逻辑
fi
最佳实践建议
- 设置合理的轮转频率 - 根据业务量调整轮转周期
- 保留适当的历史日志 - 建议保留7-30天的日志文件
- 监控磁盘空间 - 确保有足够的空间存储轮转后的日志
自动化部署方案
将日志轮转脚本与ngxtop监控工具结合,创建完整的自动化监控解决方案:
# 启动ngxtop并设置自动轮转
ngxtop --access-log /var/log/nginx/access.log &
echo "ngxtop监控已启动"
# 设置定时任务
(crontab -l 2>/dev/null; echo "0 0 * * * /path/to/ngxtop_log_rotate.sh")
🎯 通过本文提供的ngxtop日志轮转脚本示例,你可以轻松构建适合自己业务需求的日志管理方案。记住,合理的日志轮转不仅能提升ngxtop的监控效率,还能为你的服务器运维工作带来极大的便利!
通过自定义ngxtop日志轮转脚本,你可以确保Nginx服务器始终处于最佳监控状态,及时发现并解决潜在的性能问题。🚀
【免费下载链接】ngxtop Real-time metrics for nginx server 项目地址: https://gitcode.com/gh_mirrors/ng/ngxtop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



