Zabbix Snmptrap 告警配置
zabbix 配置SNMPTRAP告警触发器
1,接收到告警信息
2025-12-27 05:10:45 PM
2025-12-27T09:10:43+0000 UDP: [172.16.238.1]:40746->[172.16.238.4]:1162
DISMAN-EVENT-MIB::sysUpTimeInstance = 0
SNMPv2-MIB::snmpTrapOID.0 = PLATFORM-ALARM-MIB::cloudPlatformAlarm
PLATFORM-ALARM-MIB::alarmDescription = {"alarm_name":"平台与集群链接异常","az_name":"az1","description":"平台与集群(10.131.133.58)连接异常,0台虚拟机由于启用了加密功能将受到影 响,请检查集群网络是否正确。","refresh_time":"2025-06-19 08:15:30","resource":"res1","resource_type":"集群","suggestion":""}
PLATFORM-ALARM-MIB::alarmObject = 192.168.31.1
PLATFORM-ALARM-MIB::alarmLevel = 紧急
PLATFORM-ALARM-MIB::alarmAction = 12,配置
2.1 监控项预处理
注意生成的json数据顺序不能变,后面触发器要使用
try {
var data = value;
var result = {};
result.level = (data.match(/alarmLevel\s*=\s*([^\r\n]+)/) || [])[1] || '';
// 使用更兼容的正则表达式
var jsonRegex = /alarmDescription\s*=\s*(\{[\s\S]*?\})(?:\r?\n|$)/;
var jsonMatch = data.match(jsonRegex);
if (jsonMatch && jsonMatch[1]) {
try {
var jsonData = JSON.parse(jsonMatch[1]);
result.alarm_name = jsonData.alarm_name || '';
result.az_name = jsonData.az_name || '';
result.resource = jsonData.resource || '';
result.resource_type = jsonData.resource_type || '';
result.refresh_time = jsonData.refresh_time || '';
result.description = jsonData.description || '';
result.suggestion = jsonData.suggestion || '';
// 提取数值
var valueMatch = result.description.match(/当前值([\d.]+)%/);
if (valueMatch) result.current_value = valueMatch[1];
} catch(e) {
result.json_error = e.message;
}
}
result.object = (data.match(/alarmObject\s*=\s*([^\r\n]+)/) || [])[1] || '';
result.action = (data.match(/alarmAction\s*=\s*(\d+)/) || [])[1] || '';
return JSON.stringify(result);
} catch(e) {
return JSON.stringify({
error: "Line " + e.lineNumber + ": " + e.message,
input_preview: value.substring(0, 200)
});
}2.2触发器
主要是 匹配标签要是alarm_uuid否则恢复告警时恢复错误,其他的编译可以不用
SCP告警
{{ITEM.VALUE}.regsub(".*level\":\"([^\"]+)\".*alarm_name\":\"([^\"]+)\".*",【\1】\2)}
{{ITEM.VALUE}.regsub(".*alarm_name\":\"([^\"]+)\".*", \1)}
find(/172.16.238.1/snmptrap.fallback,,"regexp","\"action\":\"1\"")=1
find(/172.16.238.1/snmptrap.fallback,,"regexp","\"action\":\"2\"")=1
告警名称: {{ITEM.VALUE}.regsub(".*alarm_name\":\"([^\"]+)\".*", \1)}
资源池: {{ITEM.VALUE}.regsub(".*az_name\":\"([^\"]+)\".*", \1)}
告警对象: {{ITEM.VALUE}.regsub(".*resource\":\"([^\"]+)\".*", \1)}
对象IP: {{ITEM.VALUE}.regsub(".*object\":\"([^\"]+)\".*", \1)}
告警级别: {{ITEM.VALUE}.regsub(".*level\":\"([^\"]+)\".*", \1)}
当前状态: {{ITEM.VALUE}.regsub(".*action\":\"([^\"]+)\".*", \1)}
告警时间: {{ITEM.VALUE}.regsub(".*refresh_time\":\"([^\"]+)\".*", \1)}
问题描述: {{ITEM.VALUE}.regsub(".*description\":\"([^\"]+)\".*", \1)}
处理建议: {{ITEM.VALUE}.regsub(".*suggestion\":\"([^\"]+)\".*", \1)}
{{ITEM.VALUE}.regsub(".*alarm_name\":\"([^\"]+)\".*az_name\":\"([^\"]+)\".*resource\":\"([^\"]+)\".*", \1_\2_\3)}
{{ITEM.VALUE}.regsub(".*alarm_name\":\"([^\"]+)\".*", \1)}
{{ITEM.VALUE}.regsub(".*az_name\":\"([^\"]+)\".*", \1)}
{{ITEM.VALUE}.regsub(".*resource\":\"([^\"]+)\".*", \1)}



评论已关闭