当前位置:

首页 > 编程开发 > 宝塔面板脚本实现流量饱和降级方法

宝塔面板脚本实现流量饱和降级方法

宝塔面板服务器流量饱和时可通过四种方法自动降级:一、解析/proc/net/dev实时监控并停非核心服务;二、调用宝塔API动态关停高流量站点;三、用tc+iptables实施端口限速;四、集成Prometheus告警触发Webhook执行降级。

宝塔面板服务器流量饱和时可通过四种方法自动降级:一、解析/proc/net/dev实时监控并停非核心服务;二、调用宝塔API动态关停高流量站点;三、用tc+iptables实施端口限速;四、集成Prometheus告警触发Webhook执行降级。

宝塔面板下如何通过脚本实现服务器流量饱和时自动降级?

当宝塔面板托管的服务器网络流量达到饱和状态时,可能引发响应延迟、服务不可用等问题。为保障核心服务持续可用,可通过脚本实时监控流量并触发自动降级策略。以下是实现该目标的多种可行方法:

一、基于/proc/net/dev的实时流量检测+服务停启脚本

该方法通过解析系统网络接口统计文件获取当前入/出流量速率,当连续多次采样超过阈值时,自动停止非核心服务(如PHP-FPM、Redis、或特定站点)。

1、创建监控脚本 /www/server/monitor/traffic_degrade.sh,并赋予执行权限:
chmod +x /www/server/monitor/traffic_degrade.sh

2、在脚本中定义网卡名(如eth0)、流量阈值(单位:KB/s)、采样间隔(秒)及待降级服务名(如 php-fpm):

3、使用awk读取/proc/net/dev中对应网卡的RX和TX字节数,计算每秒增量,取两者最大值作为当前流量速率。

4、若连续3次检测值均 ≥ 阈值,则执行 systemctl stop php74-fpm(以PHP 7.4为例)或 bt stop php(调用宝塔命令停用指定PHP版本)。

5、添加定时任务,每30秒运行一次:
*/30 * * * * /bin/bash /www/server/monitor/traffic_degrade.sh > /dev/null 2>&1

二、利用宝塔API配合自定义Shell脚本实现站点级降级

该方法不中断系统服务,而是通过宝塔开放的API动态关闭高带宽消耗站点,保留基础Web服务与管理后台可用。

1、在宝塔面板【安全】→【API接口】中启用API,并记录Key与端口(默认8888)。

2、编写脚本调用宝塔API查询所有站点状态与绑定域名,再结合netstat或ss命令统计各站点关联进程的连接数与流量估算值。

3、识别出近5分钟平均出口流量最高的前2个站点,构造JSON请求体,调用 /site/stop 接口关停对应站点ID。

4、关停后向宝塔日志目录写入记录:
echo "$(date): 自动降级站点 [站点名],瞬时出口流量 128.4 MB/s" >> /www/wwwlogs/autodegrade.log

5、将脚本加入crontab,每2分钟执行一次,避免频繁抖动。

三、使用tc+iptables构建流量整形+自动限速脚本

该方法不关闭服务,而是对指定端口或IP实施实时限速,使高负载下仍维持基本响应能力,属于软性降级。

1、确认内核已加载sch_fq_codel模块:
modprobe sch_fq_codel

2、创建限速规则:对80/443端口出方向限制为5MB/s,使用tc命令配置HTB队列并绑定iptables标记:

3、编写判断脚本,使用iftop -P -t -L 1 输出前10行,提取“Total send rate”数值,若 ≥ 8388608 字节/秒(即8MB/s),则激活限速规则。

4、限速激活后,通过iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 1 标记流量包。

5、使用 tc class add dev eth0 parent 1: classid 1:1 htb rate 5mbit 实施带宽控制。

四、集成Prometheus+Alertmanager+Webhook触发宝塔操作

该方法适用于已有监控体系的生产环境,通过指标告警驱动降级动作,具备高可靠性和可追溯性。

1、部署node_exporter采集node_network_receive_bytes_total与node_network_transmit_bytes_total指标。

2、在Prometheus中配置Recording Rule,计算5分钟平均出口带宽:rate(node_network_transmit_bytes_total{device=~"eth.*"}[5m]) * 8

3、设置Alert规则,当该值持续2分钟 > 62914560(即60Mbps)时,触发Alertmanager Webhook。

4、Webhook接收端为轻量Python服务,收到告警后调用宝塔本地命令 bt stop sites 或执行curl -X POST "http://127.0.0.1:8888/site/stop" -H "Content-Type: application/json" -d '{"siteName":"demo.com"}' -d "key=xxx"

5、降级动作执行完毕后,向企业微信机器人推送通知,包含触发时间、当前带宽值及受影响站点。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发
相关文章 更多
会声会影提升视频清晰度与提取音频全攻略
会声会影提升视频清晰度与提取音频全攻略

面向使用会声会影进行视频剪辑的用户,解决素材模糊不清及背景音乐获取难题。本文详解锐化滤镜、NewBlue锐化与清晰度参数的区别及适用场景,指导如何根据画面明暗选择最佳增强方案;同时演示通过分离音频或画外音录制功能提取视频音乐及系统声音的操作步骤;最后分享利用色调曲线和叠加混合模式在视觉上提升普通分辨率素材清晰度的技巧,帮助用户高效优化视听效果。

会声会影安装报错Error 1402的注册表权限修复与清理方案
会声会影安装报错Error 1402的注册表权限修复与清理方案

面向在Windows系统安装会声会影时遭遇Error 1402错误的用户,该错误通常由注册表权限混乱、旧版本残留或配置失败引起。本文提供四种解决路径:首先通过注册表编辑器修改HKEY_LOCAL_MACHINE下UserData项的所有者及权限为Administrators;其次使用专用工具或手动清理未卸载干净的注册表残留;针对特定插件配置失败,建议单独下载安装对应组件;若因系统底层问题导致无法写入注册表,则需考虑重装系统。

Nero Motion Tracker文件导出
Nero Motion Tracker文件导出

学习如何在Nero Motion Tracker中导出处理后的视频。本文逐步讲解如何确认追踪效果、选择导出片段、执行Export操作以及将项目移交Nero Video,帮助新手快速生成带隐私保护的视频文件。

blender更新到哪个版本了最新版本号查询教程
blender更新到哪个版本了最新版本号查询教程

想知道Blender更新到哪个版本了?本教程教你通过软件内部“关于”窗口查看准确版本号,并访问官方下载页核对最新稳定版与LTS版本。提供版本对照方法与更新前的兼容性检查建议,确保项目安全。

charles配置手机教程及连接设置方法
charles配置手机教程及连接设置方法

手把手教你配置 Charles 手机代理。包含电脑IP获取、iPhone HTTP代理设置、CA证书安装信任及SSL代理开启步骤,解决手机无法联网或HTTPS加密问题,适用于iOS与安卓基础调试。

winrar如何设置成中文界面的详细操作步骤
winrar如何设置成中文界面的详细操作步骤

WinRAR安装后显示英文怎么办?本文详解通过Options菜单切换简体中文界面的操作流程,包含重启验证方法及语言包缺失时的处理建议,帮助用户快速恢复熟悉的中文操作环境。

blender隐藏快捷键大全及显示恢复操作教程
blender隐藏快捷键大全及显示恢复操作教程

Blender中按H键隐藏对象后如何恢复?本文详解对象模式与编辑模式的隐藏区别,介绍Shift+H隔离显示、小键盘/局部视图及Outliner手动恢复方法,解决模型突然消失的困扰。

Windows11优化后系统不稳定如何恢复默认设置
Windows11优化后系统不稳定如何恢复默认设置

Windows 11优化后出现卡顿或报错?不要急于重装。本文详解如何先手动还原电源与视觉设置,再利用系统还原点撤销注册表改动,最后通过安全模式排查干扰,必要时才考虑重置此电脑。

goldwave怎么录音电脑声音设置及操作教程
goldwave怎么录音电脑声音设置及操作教程

想在GoldWave中直接录制电脑播放的声音?关键在于正确配置Windows的“立体声混音”或回录设备。本文分步讲解如何查找并启用系统回录源,在GoldWave中切换输入设备,以及通过测试录音避免录入麦克风杂音,确保内录清晰准确。

如何 安装 office 365完整安装步骤教程
如何 安装 office 365完整安装步骤教程

详解 Office 365 在 Windows 上的安装步骤:包括从微软账户下载官方安装包、运行安装向导、首次登录激活授权、检查更新及设置默认打开方式。涵盖个人与企业账户差异及常见安装问题处理。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
IntelliJ IDEA macOS版
IntelliJ IDEA macOS版
Mac

IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。

PyCharm macOS版
PyCharm macOS版
Mac

JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。

WebStorm macOS版
WebStorm macOS版
Mac

JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

WINDOWS 更多
IntelliJ IDEA Windows版
IntelliJ IDEA Windows版
Windows

JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,

PhpStorm Windows版
PhpStorm Windows版
Windows

PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,

PyCharm Windows版
PyCharm Windows版
Windows

PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,