bash - 我应该查看什么 snmp OID 以查看我的打印机和交换机是否正在运行

标签 bash networking snmp

我是 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/

相关文章:

linux - 从外部文件为多个 linux 脚本设置变量

Java GUI 锁定 - boolean 值未按预期工作?

sockets - 是否可以设置套接字的SO_ORIGINAL_DST值?

sockets - 从 'struct sock'导出套接字fd

networking - 什么叫MIB-Module?

django - 如何从 snmp 响应中获取请求 ID

bash - 使用 systemctl 作为服务运行时优雅退出 bash 脚本

bash - Zsh : "shift count must be <= $#" 中的 Shift 失败

linux - 使用 wget 检查响应控制是否只是 "connected"

C# Snmp 陷阱发送器