zabbix监控磁盘

环境准备:这里假设zabbix服务端和客户端都已安装,并且在被监控主机添加zabbix用户到信任用户

在被监控主机执行下面命令
echo "zabbix ALL=(root) NOPASSWD:ALL" >> /etc/sudoers

1、接下来安装磁盘工具

wget https://raw.githubusercontent.com/crazy-zhangcong/tools/master/MegaCli8.07.10.tar.gz
tar -zxf MegaCli8.07.10.tar.gz 
tree MegaCli8.07.10
cd MegaCli8.07.10/Linux/
rpm -ivh Lib_Utils-1.00-09.noarch.rpm
rpm -ivh MegaCli-8.02.21-1.noarch.rpm
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/local/bin/megaCli 
megaCli -v

2、编写python检测脚本,检测磁盘状态

#!/usr/bin/python
import os
def raid_check():
    #  megacli执行路径以安装的目录为准
    cmd = "/usr/local/bin/megacli -PDList -aAll -NoLog"
    res = os.popen(cmd)

    status = 0
    for i in res:
        # 过滤硬盘状态信息行
        if i.startswith('Media Error Count'):
       
            # 获取磁盘状态行的状态码,0表示正常,非0表示异常
            if int(i[-2]) != 0:
                status = 1
    print(status)
raid_check()

3、设置zabbix代理默认执行脚本的路径, cat /etc/zabbix/zabbix-agent.conf

UnsafeUserParameters=1
UserParameter=check_raid,sudo /etc/zabbix/Raid_Check.py

UnsafeUserParameters默认为0,修改为1,表示允许执行自定义脚本
check_raid表示zabbix server监控的键值,可以在zabbix-server执行 zabbix_get -s clientip -k check_raid获取磁盘状态信息,后面的选项表示执行脚本的位置

执行下面的命令获取的磁盘状态为0表示正常
 zabbix_get -s 192.168.1.1 -k 'check_raid'
0

4、在zabbix server添加监控项


zabbix监控磁盘_第1张图片
image.png

你可能感兴趣的:(zabbix监控磁盘)