Skip to main content

用于 Net-SNMP 的 SNMP passpersist 后端

项目描述

SNMP-PassPersist

此模块是 Net-SNMP 的 SNMP passpersist 后端。

该类snmp_passpersist.PassPersist提供了一种创建 MIB 子树并通过其 passpersist 协议将其公开给 snmp 的便捷方法。使用了两个线程,一个用于与 snmpd 通信,另一个以固定间隔触发更新过程。

出于测试目的,已将关键字“DUMP”添加到协议中。

安装

最简单的方法是使用 pip :

pip install snmp_passpersist

例子

用法示例:在文件 /path/to/your/script.py 中:

#!/usr/bin/python -u

import snmp_passpersist as snmp

def update():
        pp.add_int('0.1', 123, "This is a label for this integer")
        pp.add_str('0.2', "A string")
        pp.add_oct('0.3', '01 00 1f 0b 00 0b') # MAC address as an octet string

pp=snmp.PassPersist(".1.3.6.1.3.53.8")
pp.start(update,30) # Every 30s

在 Net-SNMP 的 snmpd.conf 中使用以下行:

pass_persist    .1.3.6.1.3.53.8.0     /path/to/your/script.py

此处提供了一个真实示例:https ://github.com/nagius/cxm/blob/master/misc/snmp_xen.py

支持的类型及其助手列表

类型 帮手
柜台32 add_cnt_32bit()
计数器64 add_cnt_64bit()
测量 add_gau()
整数 add_int()
IP地址 add_ip()
对象ID add_oid()
八位字节 add_oct()
细绳 add_str()
时刻表 add_tt()

特别帮手

标签

您可以为每个条目添加一个标签,作为所有 add_*() 助手的可选参数。Net-SNMP 不使用此标签,仅对使用 DUMP 关键字进行调试有用。

add_oid()

这个助手允许你添加一个简单的 OID 字符串并给它正确的类型。例如,使用

pp.add_oid('.1.3.6.1.2.1.47','1.1.1.1.3.1','0.0')

其中“0.0”代表SNMPv2-SMI::zeroDotZero

当我们遍历这个 OID 时,这会导致以下响应:

ENTITY-MIB::entPhysicalVendorType.1 = OID: SNMPv2-SMI::zeroDotZero

设置一个属性

您可以注册一个帮助程序以允许记录来自 Net-SNMP 的值。

def my_setter(oid, type, value):
        print("Received %s with value %s for oid %s." % (type, value, oid))
        return True

pp.register_setter('.1.3.6.1.3.53.8.0.4', my_setter)

调试示例:

$ /path/to/your/script.py
set
.1.3.6.1.3.53.8.0.4
INTEGER 987
Received INTEGER with value 987 for oid .1.3.6.1.3.53.8.0.4.
DONE
set
.1.3.6.1.3.53.8.0.1
STRING some-random-useless-string
not-writable

'example/' 目录中提供了另一个显示“set”功能用法的示例。

调试示例

在 shell 中运行前面的脚本并输入命令:

$ /path/to/your/script.py
PING
PONG
DUMP
{'0.1': {'type': 'INTEGER', 'value': '123'}}
get
.1.3.6.1.3.53.8
NONE
get
.1.3.6.1.3.53.8.0.1
.1.3.6.1.3.53.8.0.1
INTEGER
123
getnext
.1.3.6.1.3.53.8
.1.3.6.1.3.53.8.0.1
INTEGER
123

所有命令都输入两行:get<ENTER>.1.3.6.1.3.53.8.0.1<ENTER>,PING 和 DUMP 除外。

学分

非常感谢所有贡献者。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

snmp_passpersist-2.1.0.tar.gz (6.8 kB 查看哈希

已上传 source

内置分布

snmp_passpersist-2.1.0-py3-none-any.whl (19.5 kB 查看哈希

已上传 py3