Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pySNMP收集SNMP陷阱_Python_Cisco_Pysnmp - Fatal编程技术网

Python 使用pySNMP收集SNMP陷阱

Python 使用pySNMP收集SNMP陷阱,python,cisco,pysnmp,Python,Cisco,Pysnmp,通过python从Cisco路由器收集SNMP陷阱时,哪种方法对资源更为友好: 我可以在运行服务器的PC机上使用一个管理器,万一发生错误,Cisco SNMP陷阱会被发送到该服务器 我可以使用代理每x个时间段发送一个GET/GETBULK请求,以检查是否发生了任何新的陷阱 我正在寻找一种运行脚本的方法,以便尽可能少地使用资源。不会出现太多陷阱,因此通信量通常较低,但一旦出现陷阱,PC应立即知道。从大多数角度来看,方法1更好 由于运行陷阱收集守护进程,它在PC上使用了少量内存,但是占用空间应该相

通过python从Cisco路由器收集SNMP陷阱时,哪种方法对资源更为友好:

  • 我可以在运行服务器的PC机上使用一个管理器,万一发生错误,Cisco SNMP陷阱会被发送到该服务器
  • 我可以使用代理每x个时间段发送一个GET/GETBULK请求,以检查是否发生了任何新的陷阱

  • 我正在寻找一种运行脚本的方法,以便尽可能少地使用资源。不会出现太多陷阱,因此通信量通常较低,但一旦出现陷阱,PC应立即知道。从大多数角度来看,方法1更好

    • 由于运行陷阱收集守护进程,它在PC上使用了少量内存,但是占用空间应该相当小,因为它只需要侦听陷阱并解码它们,而不需要执行任何复杂的任务
    • 用于接收陷阱的现有工具包括
      netsnmp
      套件,它允许您只配置守护进程(即,如果您想节省一些时间,不必进行任何编程)
    方法2有几个问题:

  • 无论您选择哪种轮询间隔,您都有丢失仅在路由器上短时间处于活动状态的警报的风险
  • 即使没有发生故障,也会消耗CPU和网络资源
  • 根据路由器的MIB,某些类型的事件可能不会存储在任何表中以供以后检索。对于Cisco,我不希望出现这个问题,但您确实需要研究MIB并确保这一点

  • 如果您希望最小化信息传播延迟和消息处理开销,那么#1在我看来更合适。您可以通过运行一个通知接收器示例(来自pysnmp网站)来进行实验。我已经设置了一个通知接收器,并且似乎不需要太多资源来说明真相,只是想可能有人已经为这种比较做了一些测试