美文网首页
zabbix监控磁盘

zabbix监控磁盘

作者: 星际探索者 | 来源:发表于2020-09-10 16:53 被阅读0次

    环境准备:这里假设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添加监控项


    image.png

    相关文章

      网友评论

          本文标题:zabbix监控磁盘

          本文链接:https://www.haomeiwen.com/subject/sfvpektx.html