在需要监控的机器上安装基本软件包
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel gcc gcc-c++ make cmake lrzsz -y
下载python
官网Download Python | Python.org
选择对应的版本进行下载

解压Python包
tar zxvf Python-3.12.5.tgz
.把 python 移动到/usr/local/目录下
mv Python-3.12.5 /usr/local/
.进入到python目录,编译安装:
cd /usr/local/Python-3.12.5/
./configure
make && make install
持久化PATH配置:
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
更新当前会话的环境配置
source ~/.bashrc
设置软链
ln -s /usr/local/bin/python3.12 /usr/bin/python3
.验证python 版本
python3 -V
升级pip
pip3 install --upgrade pip
.安装模块
pip3 install psutil
编写 Python 脚本
vim /usr/local/bin/zabbix_disk_net.py
完整 Python 脚本
#!/usr/bin/env python3
import psutil
import time
def get_disk_usage():
"""获取根分区磁盘使用率"""
disk_usage = psutil.disk_usage('/')
return disk_usage.percent # 返回磁盘使用百分比
def get_network_bandwidth():
"""计算 1 秒内的网络流量"""
net1 = psutil.net_io_counters()
time.sleep(1) # 休眠 1 秒
net2 = psutil.net_io_counters() #1s 内的接收流量,# KB/s
rx_speed = (net2.bytes_recv - net1.bytes_recv) / 1024 # KB/s
return f"{rx_speed:.2f}"
if name == "main":
import sys
if len(sys.argv) > 1:
if sys.argv1 == "disk":
print(get_disk_usage()) # 输出磁盘使用率
elif sys.argv1 == "net":
print(get_network_bandwidth()) # 输出网络带宽
chmod +x /usr/local/bin/zabbix_disk_net.py
配置 Zabbix Agent
vim /etc/zabbix/zabbix_agentd.conf
添加自定义 UserParameter:
UserParameter=disk.usage,/usr/local/bin/zabbix_disk_net.py disk UserParameter=net.bandwidth,/usr/local/bin/zabbix_disk_net.py net
重启 Zabbix Agent 使其生效
systemctl restart zabbix-agent
在zabbix web前端配置监控项即可