一个客户要求我们不再向他们发送电子邮件警报,而是改为向他们的Nagios服务器发送SNMP Traps。在昨天之前,我唯一知道关于SNMP的事情就是它听起来像一个首字母缩略词,因此请原谅(并纠正)我可能有的任何误解。
在trap中需要发送的唯一信息与我们向客户发出警报的事件相关的数据有关,这只是从我们的数据库中获取的几个值。不用说这些不在任何MIB中,也没有任何OID,这就是我在寻找答案时遇到困难的地方。
我无法想象出如何在不使用MIB OID的情况下将我们的特定数据添加到trap中。
我正在使用PySNMP生成请求,目前只有不完整的代码,因为我不确定如何将我们的数据合并到数据包中。
在trap中需要发送的唯一信息与我们向客户发出警报的事件相关的数据有关,这只是从我们的数据库中获取的几个值。不用说这些不在任何MIB中,也没有任何OID,这就是我在寻找答案时遇到困难的地方。
我无法想象出如何在不使用MIB OID的情况下将我们的特定数据添加到trap中。
我正在使用PySNMP生成请求,目前只有不完整的代码,因为我不确定如何将我们的数据合并到数据包中。
from pysnmp.hlapi import *
def sendSNMP(destination, community_string, data):
community = CommunityData(community_string, mpModel = 0)
target = UdpTransportTarget((destination, 162))
notification_type = None
req = sendNotification(SnmpEngine(), community, target, ContextData(), 'trap', notification_type)
errorIndication, errorStatus, errorIndex, varBinds = next(req)
感谢任何协助!谢谢。