创建监控项
存储为NAS服务器时,才有showfpg命令,基本存储无法使用。
默认情况下使用zabbix自带的ssh客户端方式来实现,如遇到zabbix自带ssh无法登陆的情况,需要使用python或其他第三方来模拟ssh登录 获取信息
-
创建监控项,获取初始信息
-
在进程中,使用js脚本 处理获取到的信息
js脚本内容为:
data = value.trim().split('\n'); data = data.slice(2, -2); var data_dict = []; for (i=0;i<data.length;i++) { line = data[i].trim().replace(/\s+/g, ' ').split(' '); item = {}; item['FPG'] = line[0]; item['Mountpath'] = line[1]; sizes = Number(line[2]); free = Number(line[3]); used = sizes - free; item['size'] = sizes; item['used'] = used; item['Utilization'] = Math.round(((used * 100) / (sizes * 100)) * 10000) / 100.0 + '%'; item['ActiveStates'] = line[4]; item['State'] = line[7]; data_dict.push(item); } return JSON.stringify(data_dict)
添加并保存,至此监控项创建完成。
创建自动发现规则
监控项创建完成后,可以初步获取到showfpg命令的所有信息,但还需要将信息按 每一个挂载区分开来,这里就需要用到自动发现。
在进程中,将"FPG"字段替换为一个宏变量,方便后续获取单独名称
var reg = /"FPG"/g;
new_str = value.replace(reg, '"{#FPGNAME}"')
return new_str
更新保存,开始添加监控项原型。
在进程中,处理获取到的值。
通过 JSONPath语法,获取 json 中对应的键值,键名为创建监控项时,js中定义的 item 名称
其他值的自动发现与该项相同,只需要修改对应的名称为 item中对应的键名即可。(主要修改监控原型名称,键值,以及进程中 JSONPath 语法对应的key,即上图中划线部分)
触发器的创建
其他触发器同理。