Я использую python 2.7 и pysnmp 4.1.12. Следующий код имеет некоторые проблемы с функцией resolWithMib. Он работает с внутренними MIB, такими как SNMPv2-MIB, но не с моим частным MIB.
На самом деле я получаю "Ошибка типа: resolWithMib () принимает ровно 2 аргумента (дано 3)". на pysnmp 4.4.12. Он отлично работал на 4.4.4
Я передаю json объекты, подобные этому
, передавая json object {'vmUserName': 'admin', 'partitionCpuUsage': 3.0}
def sendTrap_gen(self, event, eventvals):
mibViewController = view.MibViewController(self.snmpEngine.getMibBuilder())
# Create Notification Originator App instance.
ntfOrg = ntforg.NotificationOriginator()
ntfOrg.snmpContext = self.snmpContext
trapName = rfc1902.ObjectIdentity('PARTITION-MIB', event)
ntfOrg.sendVarBinds(
self.snmpEngine,
'my-notification', # notification targets
None, '', # contextEngineId, contextName
rfc1902.NotificationType(
trapName,
objects={('PARTITION-MIB', k): v for k, v in eventvals.items()}
).resolveWithMib(mibViewController)
)
Запись MIB выглядит следующим образом
partitionCpuUsage OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..100))
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"partition CPU Usage"
::= { partitionNotfsParams 7 }
partitionCpuUsageReachedTheThreshold NOTIFICATION-TYPE
OBJECTS { vmUserName, partitionCpuUsage }
STATUS current
DESCRIPTION
"This notfication for System cpu usage reached the threshold"
::= { partitionNotfs 1 }
partitionCpuUsage OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..100))
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"partition CPU Usage"
::= { partitionNotfsParams 7 }