zabbix-agent自定义item监控远程服务器

1.首先是自己的脚本
我的脚本就是简单的正则表达式的脚本,只是为了模拟检测bond中网卡关闭的信息。检测到网卡关闭就报警。
具体代码如下:

#!/usr/bin/env python
# -*-coding:utf-8 -*-
import os 

def detect(file_name):#提取出网卡错误的信息

    bond_txt = file_name.split('\\')

    file = open( file_name , 'r')
    line = file.readline()
    detect_str = 'Slave Interface:'

    while( line ):
        #print ( line )
        if detect_str in line:
            second_line = file.readline() 
            detect_down = 'down'
            if detect_down in second_line :
                list_first = line.split()
                #print ( len(list_first) )
                print ( 'in the ' + bond_txt[len(bond_txt)-1] + ', network ' + list_first[ len( list_first ) -1] + ' is down')

            #print(  '++++++++++++++++++++++++++++++++++' )    
            line = file.readline()



def main():
    dic = 'C:\\Users\\daicy\\Desktop\\test_for_bonding\\bond0.txt'
    detect( dic )

if __name__ == '__main__':
    main()

2.创建host并将模板template添加上
创建如下图:
这里写图片描述

3.创建item
这里写图片描述

4.创建triggers
这里写图片描述

这里写图片描述

5.在远程服务器上,进行zabbix-agent的配置
首先将/usr/local/etc/zabbix_agentd.conf中的服务器地址添加上
这里写图片描述
这里写图片描述
然后就是添加userparameter,我的是在/usr/local/etc/zabbix_agentd.conf.d/这个文件夹下添加
这里写图片描述
这样一个简易的报警触发装置就弄好了。

自己遇到的一个错误信息:
提示:unsupported item key

自己的错误是端口10050被防火墙关闭了,导致消息传达不到,大家遇到此类问题,可以参考一下:
首先使用iptables -nL查看端口是否没有开启
这里写图片描述
经过上图我们可以发现确实没有开启,我们将该端口开启就好了
开启代码如下:

iptables -I INPUT -p tcp -s 10.10.30.232 -m tcp --dport 10050 -m comment --comment "zabbix_agentd listen 10050" -j ACCEPT

最后,我们再查看其是否开启了:
这里写图片描述
这样就是开启了,问题就得到了解决。

猜你喜欢

转载自blog.csdn.net/qq_34355232/article/details/81735327