如何使用pysnmp监控系统资源?

2 投票
1 回答
3981 浏览
提问于 2025-04-17 12:09

你好,我是Python和SNMP的新手,我想知道如何使用pysnmp来监控系统资源,比如CPU使用率、内存使用率、磁盘使用率和网络接口负载?

我正在尝试使用cmdgen.CommandGenerator().getCmd(),但很难找到能给我返回有用信息的OID。

这是我尝试过的一个例子(查询CPU使用率):

errorIndication, errorStatus, errorIndex, varBinds =
    cmdgen.CommandGenerator().getCmd(
    cmdgen.CommunityData('my-agent', 'public', 0),
    cmdgen.UdpTransportTarget(('localhost', 161)),
    '1.3.6.1.4.1.11.2.3.1.1.13'
    )
print(varBinds)

输出:

[(ObjectName(1.3.6.1.4.1.2021.10.1.3.1), Null(''))]

1 个回答

2

你可以试试一个免费的MIB浏览器,比如mbrowse,然后查看存储在/usr/share/snmp/mibs/里的MIB文件。

以下是一些具体的例子(摘自 http://www.debianhelp.co.uk/linuxoids.htm):

加载

           1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
           5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
           15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3

CPU

           percentage of user CPU time:    .1.3.6.1.4.1.2021.11.9.0
           raw user cpu time:                  .1.3.6.1.4.1.2021.11.50.0
           percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
           raw system cpu time:              .1.3.6.1.4.1.2021.11.52.0
           percentages of idle CPU time:   .1.3.6.1.4.1.2021.11.11.0
           raw idle cpu time:                   .1.3.6.1.4.1.2021.11.53.0
           raw nice cpu time:                  .1.3.6.1.4.1.2021.11.51.0

内存统计

           Total Swap Size:                .1.3.6.1.4.1.2021.4.3.0
           Available Swap Space:         .1.3.6.1.4.1.2021.4.4.0
           Total RAM in machine:          .1.3.6.1.4.1.2021.4.5.0
           Total RAM used:                  .1.3.6.1.4.1.2021.4.6.0
           Total RAM Free:                   .1.3.6.1.4.1.2021.4.11.0
           Total RAM Shared:                .1.3.6.1.4.1.2021.4.13.0
           Total RAM Buffered:              .1.3.6.1.4.1.2021.4.14.0
           Total Cached Memory:           .1.3.6.1.4.1.2021.4.15.0

撰写回答