1.首先编写脚本,我的是模拟监控网卡开启状况,首先是读取制定目录下的所有文件,并将对每一个文件进行监控,监控其是否出现网卡关闭的情况,如果监控到网卡关闭,则将具体网卡信息输出。
具体代码如下:
#!/usr/bin/env python
# -*-coding:utf-8 -*-
import os
def getfilelist(dic,file_list):#读取文件夹下的所有文件,并将其保存到file_list中
f = open( file_list, 'w')
for file_name in os.listdir(dic):
#print( file_name )
string = dic + '/' + file_name + '\n' #获取文件的完整地址并写入文件中
#print( string )
f.write( string )
f.close()
return file_list
def clearBlankLine(file_name1,file_name2):#去除txt文件中的空行
file_name1 = file_name1.strip('\n')
file1 = open(file_name1, 'r') # 要去掉空行的文件
file2 = open(file_name2, 'w') # 生成没有空行的文件
try:
for line in file1.readlines():
if line == '\n':
line = line.strip("\n")
file2.write(line)
finally:
file1.close()
file2.close()
def detect(file_name1 , file_name):#提取出网卡错误的信息
file_name1 = file_name1.strip('\n')
bond_txt = file_name1.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 = '/home/ubuntu/test_for_bonding'
filelist = '/home/ubuntu/store_for_bonding/file_list.txt'
list_f = open(filelist,'r+')
list_f.truncate()
file_list = getfilelist(dic,filelist)
file = open(file_list,'r')
line = file.readline()
while( line ):
file_name1 = line
file_name2 = '/home/ubuntu/store_for_bonding/bonding_back.txt'
f2 = open(file_name2,'r+')
f2.truncate()
#print( file_name1 )
clearBlankLine( file_name1 , file_name2 )
detect( file_name1 , file_name2 )
line = file.readline()
if __name__ == '__main__':
main()
由于我们使用的是自定义脚本,所以我们需要在使用userparameter这个,其存在于/usr/local/etc/zabbix_agentd.conf中。
打开该文件对其进行设置:
设置如下图:
2.就是建立item
具体操作为:configuration—》host—》item
下面就是对item的具体配置信息:
3.关联告警器trigger
根据上面的item,我们可以得到一个字符串,其是关于监控结果的,这里我们使用findV模板,只要我们发现字符串中包含‘down’这个关键字,我们就可以发出警告了。
具体操作如下:
模板信息:
trigger信息:
这样一个简易的告警设置就完成了。