我是 snmp 的新手,并且我正在尝试弄清楚我应该获取/捕获什么 OID 以查看我的打印机、交换机(和服务器)是否正在运行?我不需要知道细节——只是一个简单的测试。我已经从 bash 和 iReasoning MIB browser 成功地处理了来自设备的 get、getbulk(和 walk)请求。 .
编辑:
也许是
.1.3.6.1.2.1.1.3.0
Name/OID: sysUpTime.0; Value (TimeTicks): 194 hours 43 seconds (69844352)
就是用来干这个的!?当出现问题时会发生什么? - 这会立即重置吗? - 还是会停止计数?还是只是自上次开机以来的时间?
最佳答案
打印机
你应该使用 Printer MIBv2监控打印机卡纸错误状态...
-
hrPrinterDetectedErrorState
报告打印机错误,例如碳粉不足、卡纸等...RFC 包含有关特定代码含义的详细信息 -
hrDeviceStatus
将揭示打印机处理任务的全局能力。有关详细信息,请参阅 Printer MIBv2, Section 2.2.13.2
sysUpTime.0
是一个 OID,它报告系统的 SNMP 堆栈已启动的时间(引用 RFC 1213: MIB-II)。如果此值返回并递增,则 99% 可以确定打印机已启动。大多数人使用 sysUpTime
检测设备是否由于某种原因重新启动;如果发生这种情况,您会看到 sysUpTime.0
突然减少,除非你的最后一个值是 248 天左右(32 位计数器会滚动)。
以太网交换机
检查以太网交换机的基本健康状况通常通过检查 sysDescr.0
来完成。或 sysUpTime.0
;如果您关心特定链接的上/下状态,则此启发式方法会出现问题……此时,您需要检查 ifOperStatus
中的值,由 ifIndex
索引并使用来自 ifName
的接口(interface)名称.请参阅以下示例...
[mpenning@Hotcoffee ~]$ ## Walk ifName correlated to ifIndex
[mpenning@Hotcoffee ~]$ snmpwalk -v 2c -c Public 172.25.116.6 .1.3.6.1.2.1.31.1.1.1.1
iso.3.6.1.2.1.31.1.1.1.1.1 = STRING: "Fa0/0"
iso.3.6.1.2.1.31.1.1.1.1.2 = STRING: "Nu0"
[mpenning@Hotcoffee ~]$ ## Walk ifOperStatus (up==1)
[mpenning@Hotcoffee ~]$ snmpwalk -v 2c -c Public 172.25.116.6 .1.3.6.1.2.1.2.2.1.8
iso.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.8.2 = INTEGER: 1
[mpenning@Hotcoffee ~]$
因此我们从示例中知道接口(interface)“Fa0/0”(索引:1)和“Nu0”(索引:2)都有一个 ifOperStatus 为“up”;索引值是结果的 OID 中返回的最后一个整数。
脚本
我假设您将使用 bash
用于您的监控脚本;如果是这样,请查看 Net-SNMP为您的 SNMP 管理器
关于bash - 我应该查看什么 snmp OID 以查看我的打印机和交换机是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10295480/