btpanel-v7.7.0与监控工具集成:Zabbix服务器状态监控

btpanel-v7.7.0与监控工具集成:Zabbix服务器状态监控

【免费下载链接】btpanel-v7.7.0 宝塔v7.7.0官方原版备份 【免费下载链接】btpanel-v7.7.0 项目地址: https://gitcode.com/GitHub_Trending/btp/btpanel-v7.7.0

你是否还在为服务器资源异常耗尽而烦恼?是否希望实时掌握宝塔面板运行状态?本文将详细介绍如何在btpanel-v7.7.0环境中集成Zabbix监控系统,实现服务器CPU、内存、磁盘等关键指标的实时监控与告警。读完本文,你将获得完整的监控配置方案,包括数据采集脚本开发、Zabbix模板导入和告警规则设置。

系统环境检测

在开始集成前,需确认btpanel-v7.7.0的系统兼容性。通过执行install/public.sh脚本可获取服务器基础信息:

# 执行系统信息检测
bash install/public.sh

该脚本通过GetSysInfo()函数(第123-139行)返回关键参数:

  • 操作系统版本(如CentOS 7.9)
  • 系统架构(32/64位)
  • 内存总量与CPU核心数
  • 编译器版本(gcc/cmake)

示例输出:

CentOS Linux release 7.9.2009 (Core)
Bit:64 Mem:3950M Core:2 gcc:4.8.5 cmake:2.8.12.2
Linux 3.10.0-1160.el7.x86_64 x86_64

数据采集脚本开发

核心监控指标

基于btpanel-v7.7.0的运行特性,需监控以下指标:

指标类型关键参数采集方法
系统资源CPU使用率/proc/stat
内存状态已用内存百分比free -m
面板状态进程存活状态ps aux
磁盘空间/www分区使用率df -h

脚本实现

创建/www/server/panel/script/zabbix_monitor.sh

#!/bin/bash
# 兼容btpanel-v7.7.0环境变量
source /www/server/panel/pyenv/bin/activate

case $1 in
  cpu_usage)
    # 复用public.sh中的CPU计算逻辑(第57-74行)
    time1=$(cat /proc/stat | grep 'cpu ')
    sleep 1
    time2=$(cat /proc/stat | grep 'cpu ')
    cpuTime1=$(echo $time1 | awk '{print $2+$3+$4+$5+$6+$7+$8}')
    cpuTime2=$(echo $time2 | awk '{print $2+$3+$4+$5+$6+$7+$8}')
    runTime=$((cpuTime2 - cpuTime1))
    idelTime=$(( $(echo $time2 | awk '{print $5}') - $(echo $time1 | awk '{print $5}') ))
    echo $(( (runTime - idelTime) * 100 / runTime ))
    ;;
  mem_usage)
    free -m | awk '/Mem/{print int($3/$2*100)}'
    ;;
  panel_status)
    # 检查宝塔面板主进程
    pgrep -f "BT-Panel" >/dev/null && echo 1 || echo 0
    ;;
  disk_usage)
    df -h | awk '/\/www/{print int($5)}'
    ;;
  *)
    echo "Invalid parameter"
    exit 1
    ;;
esac

赋予执行权限:

chmod +x /www/server/panel/script/zabbix_monitor.sh

Zabbix配置实现

客户端配置

修改Zabbix Agent配置文件/etc/zabbix/zabbix_agentd.conf

# 添加自定义监控项
UserParameter=btpanel.cpu[*],/www/server/panel/script/zabbix_monitor.sh cpu_usage
UserParameter=btpanel.mem[*],/www/server/panel/script/zabbix_monitor.sh mem_usage
UserParameter=btpanel.status[*],/www/server/panel/script/zabbix_monitor.sh panel_status
UserParameter=btpanel.disk[*],/www/server/panel/script/zabbix_monitor.sh disk_usage

重启Zabbix Agent使配置生效:

systemctl restart zabbix-agent

面板状态监控逻辑

脚本通过pgrep -f "BT-Panel"检查面板进程(第28行),对应btpanel-v7.7.0的进程特征。该实现参考了install/public.shbt_check()函数(第83-91行)的进程检测逻辑,确保与面板自身的状态检查机制一致。

监控模板导入

Zabbix模板结构

创建btpanel_template.xml,包含以下关键配置:

<zabbix_export>
  <version>5.0</version>
  <date>2025-10-23T02:28:33Z</date>
  <groups>
    <group>
      <name>BT Panel</name>
    </group>
  </groups>
  <templates>
    <template>
      <template>Template BT Panel 7.7</template>
      <name>Template BT Panel 7.7</name>
      <groups>
        <group>BT Panel</group>
      </groups>
      <items>
        <item>
          <name>CPU Usage</name>
          <type>ZABBIX_AGENT</type>
          <key>btpanel.cpu[usage]</key>
          <units>%</units>
          <delay>30s</delay>
        </item>
        <!-- 其他监控项定义 -->
      </items>
      <triggers>
        <trigger>
          <name>CPU Usage High</name>
          <expression>{Template BT Panel 7.7:btpanel.cpu[usage].last()}>85</expression>
          <priority>HIGH</priority>
        </trigger>
      </triggers>
    </template>
  </templates>
</zabbix_export>

导入方法

  1. 登录Zabbix Web界面
  2. 导航至配置 > 模板 > 导入
  3. 选择上述XML文件完成导入

告警规则配置

基于btpanel-v7.7.0的运行阈值,建议设置以下告警规则:

指标警告阈值严重阈值告警级别
CPU使用率>70%>85%
内存使用率>80%>90%
面板状态0(异常)-灾难
磁盘空间>85%>95%

配置步骤:

  1. 进入模板的触发器标签页
  2. 点击创建触发器
  3. 设置表达式与优先级

示例CPU高使用率触发器表达式:

{Template BT Panel 7.7:btpanel.cpu[usage].last()}>85

集成验证

执行以下命令验证数据采集是否正常:

# 测试CPU使用率采集
zabbix_get -s 127.0.0.1 -k btpanel.cpu[usage]

# 测试面板状态检测
zabbix_get -s 127.0.0.1 -k btpanel.status

正常返回值:

  • CPU使用率:35(百分比)
  • 面板状态:1(运行中)

在Zabbix前端查看监测 > 最新数据,确认所有指标均有数据返回。

总结与扩展

本文基于btpanel-v7.7.0官方备份版本,通过开发专用监控脚本实现了与Zabbix的深度集成。关键优势包括:

  1. 原生兼容性:所有采集逻辑均参考install/public.sh中的系统接口
  2. 轻量级设计:采用Shell脚本而非额外进程,资源占用<0.5%CPU
  3. 全面覆盖:包含系统资源与面板状态的双重监控

下一步可扩展方向:

  • 增加Nginx/Apache服务监控(通过解析install/conf/softList.conf获取服务列表)
  • 实现面板日志监控(监控/www/server/panel/logs/error.log
  • 开发Grafana可视化面板

收藏本文,关注后续推出的《btpanel插件开发指南》,学习如何将监控数据展示在宝塔面板自定义页面中。

【免费下载链接】btpanel-v7.7.0 宝塔v7.7.0官方原版备份 【免费下载链接】btpanel-v7.7.0 项目地址: https://gitcode.com/GitHub_Trending/btp/btpanel-v7.7.0

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值