Zabbix 正则结合JavaScript简化Trap告警信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix 正则结合JavaScript简化Trap告警信息相关的知识,希望对你有一定的参考价值。
场景:运维部小陈给公司的华为云计算节点配置了Trap告警,方便及时监控到存储的运行状况。但是领导看过觉得收到的Trap信息过于复杂,不便快速查看到告警信息,要小陈给处理成简单易懂的形式,于是乎,操作如下:
环境:
zabbix4.2.5,已安装snmptrap服务
1、从计算节点收到snmptrap如下图:
需要提取出来的信息如下:
SNMPv2-SMI::enterprises.2011.2.290.1.1.1.2 type=4 value=STRING: "15.1000102" //告警ID
SNMPv2-SMI::enterprises.2011.2.290.1.1.1.8 type=4 value=STRING: "2" //告警类型(0-原始告警,1-清除告警,2-更新告警)
SNMPv2-SMI::enterprises.2011.2.290.1.1.1.9 type=4 value=STRING: "3" //告警等级(1-紧急,2-主要,3-次要,4-提示)
SNMPv2-SMI::enterprises.2011.2.290.1.1.1.5 type=4 value=Hex-STRING: 42 49 4D 26 E8 AE BE E8 AE A1 E7 AE A1 E7 90 86
EF BC 88 E6 96 B0 EF BC 89 //告警对象
SNMPv2-SMI::enterprises.2011.2.290.1.1.1.3 type=4 value=STRING: "VM Memory Usage Exceeds the Threshold" //告警名称
SNMPv2-SMI::enterprises.2011.2.290.1.1.1.15 type=4 value=STRING: "Current threshold=80.0%,VM memory usage=83.02%" //告警附加信息
2、zabbix监控项上正则处理,如下图所示:
匹配:OID.0.::.(
).[
].[
].ING:(.)[
].[
].[
].ING:(.)[
].ING:(.)[
].[
].[
].[
].[
].[
].[
].[
].[
].[
].ING:(.W.)[
].ING:(.)[
].[
].ING:(.*)
输出:告警ID:21告警类型:31告警等级:41告警对象:51告警名称:61告警附加信息:71
再次发送Trap信息,得出结果:
告警ID: "15.1000102"
告警类型: "2"
告警等级: "3"
告警对象: 42 49 4D 26 E8 AE BE E8 AE A1 E7 AE A1 E7 90 86
EF BC 88 E6 96 B0 EF BC 89
告警名称: "VM Memory Usage Exceeds the Threshold"
告警附加信息: "Current threshold=80.0%,VM memory usage=83.02%"
3、告警对象的信息还需要用javascript处理,添加预处理步骤javascript
脚本如下:
var str1 = /告警ID:([sS])告警对象:/;
str1 = str1.exec(value)[0];
var str3 = /告警名称:([sS])/;
str3 = str3.exec(value)[0];
var str2 = /告警对象:([sS]*)告警名称/;
str2 = str2.exec(value);
str2 = str2[1]; //需要十六进制转换
str2 = str2.replace(/
/g,‘‘).replace(/./g,‘‘).replace(/ /g,‘‘); //删除
删除.字符 删除空格
var temp = ‘‘;
var m = str2.match(/../g);
for (var i=0;m!=null, i < m.length; i++)
{
temp += ‘%‘ + m;
}
str2 = decodeURI(temp);
return str1 + str2 +‘
‘+ str3;
把Trap信息重新发送,进行测试的结果如下:
技术交流欢迎加入Q群:177428068
以上是关于Zabbix 正则结合JavaScript简化Trap告警信息的主要内容,如果未能解决你的问题,请参考以下文章