AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 974141
Accepted
confoundr
confoundr
Asked: 2019-07-06 11:09:35 +0800 CST2019-07-06 11:09:35 +0800 CST 2019-07-06 11:09:35 +0800 CST

如何确定用于监控的正确 OID

  • 772

是否有正确/更好的方法来确定用于 SNMP 监控的正确 OID?

我能够直接从设备下载 MIB,但在从数百个 OID 列表中找到正确的 OID 时我迷失了方向。我遇到的所有论坛都有不同的模型 OID,或者只是说“使用 OID,你会很好”,没有细节......

采取的步骤

  • 从设备下载 MIB
  • 已验证我可以 ping 设备
  • 已验证我可以在设备上运行 snmpwalk(注意我不熟悉 snmpwalk 的所有功能和用法)
snmp
  • 2 2 个回答
  • 1411 Views

2 个回答

  • Voted
  1. Best Answer
    yagmoth555
    2019-07-06T19:22:03+08:002019-07-06T19:22:03+08:00

    根据我的经验,很遗憾没有,我必须获取 MIB 并尝试在其中找到我需要查询的正确内容。(我使用了一个简单的 mib 浏览器)

    对于您找到的 OID,温度太高,请确保它不是在触发时将其设置为 on/1 的布尔值,这可以解释为什么设备在正常温度下运行时您什么也没有读取。

    遗憾的是,OID 的使用和文档在网上被低估并且不受欢迎。我曾经在一个监控工具中为未知设备创建监控模板,我被视为一个黑魔法用户。

    我能说的唯一提示是注意返回值,有些是字符串,即使它们写成数字,还有一些只是整数。

    • 2
  2. NSD
    2020-07-28T12:34:30+08:002020-07-28T12:34:30+08:00

    snmptranslate虽然 MIB 浏览器确实可以提供帮助,但您可以使用 NET-SNMP命令进行大量解析。有很多选项,因此请参阅其手册页,但这里有几个示例。

    假设我已为 Synology 设备下载 MIB 并想要对其进行监控。与仅读取原始 MIB 文件相比,我可以使用 snmptranslate 以更用户友好的方式查看 MIB。

    首先,我将查看我下载的 SYNOLOGY-SYSTEM-MIB.txt。

    • 让我们找出 MIB 的实际名称。有时它与 MIB 文件的名称相同,但并非总是如此。语句DEFINITIONS用于定义 MIB 的名称。

       $ grep DEFINITIONS SYNOLOGY-SYSTEM-MIB.txt
       SYNOLOGY-SYSTEM-MIB DEFINITIONS ::= BEGIN
      

      所以现在我知道 MIB 被称为SYNOLOGY-SYSTEM-MIB.

    • 接下来,我将在里面查找其中定义的顶部 OID:

      $ grep MODULE-IDENTITY SYNOLOGY-SYSTEM-MIB.txt
      enterprises, MODULE-IDENTITY, OBJECT-TYPE, Integer32
      synoSystem MODULE-IDENTITY
      

      最后一行是有趣的,特别是synoSystem. 这是我现在可以用来获取 MIB 结构的顶级 OID。

    • 以文本形式轮询 OID 时,MIB::OID应使用符号。这让 snmp 命令知道使用哪个 MIB 将 OID 转换为代理可以理解的数字形式(非常类似于 DNS 转换的原理):

      $ snmptranslate -Tp SYNOLOGY-SYSTEM-MIB::synoSystem
      

      输出是:

      +--synoSystem(1)
         +-- -R-- Integer32 systemStatus(1)
         |        Range: 1..2
         +-- -R-- Integer32 temperature(2)
         +-- -R-- Integer32 powerStatus(3)
         |        Range: 1..2
         |
         +--fan(4)
         |  |
         |  +-- -R-- Integer32 systemFanStatus(1)
         |  |        Range: 1..2
         |  +-- -R-- Integer32 cpuFanStatus(2)
         |           Range: 1..2
         |
         +--dsmInfo(5)
         |  |
         |  +-- -R-- String    modelName(1)
         |  +-- -R-- String    serialNumber(2)
         |  +-- -R-- String    version(3)
         |  +-- -R-- Integer32 upgradeAvailable(4)
         |           Range: 1..5
         |
         +--systemConformance(6)
            |
            +--systemCompliances(1)
            |  |
            |  +--systemCompliance(1)
            |
            +--systemGroups(2)
               |
               +--systemGroup(1)
      
    • 现在,假设我对 OID 感兴趣,upgradeAvailable这样我就可以知道什么时候可以升级这个盒子上的 DSM。我可以通过运行找到有关它的更多详细信息:

        $ snmptranslate -Td SYNOLOGY-SYSTEM-MIB::upgradeAvailable
      

      输出是:

        SYNOLOGY-SYSTEM-MIB::upgradeAvailable
        upgradeAvailable OBJECT-TYPE
          -- FROM       SYNOLOGY-SYSTEM-MIB
          SYNTAX        Integer32 (1..5)
          MAX-ACCESS    read-only
          STATUS        current
          DESCRIPTION   "This oid is for checking whether there is a latest DSM can be upgraded.
                 Available(1): There is version ready for download.
                 Unavailable(2): The DSM is latest version.
                 Connecting(3): Checking for the latest DSM.
                 Disconnected(4): Failed to connect to server.
                 Others(5): If DSM is upgrading or downloading, the status will show others."
        ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) synology(6574) synoSystem(1) dsmInfo(5) 4 }
      

      所以现在当我实际轮询设备时,我知道我正在运行最新的 DSM:

        $ snmpwalk <snmp parameters> <device> SYNOLOGY-SYSTEM-MIB::upgradeAvailable
        SYNOLOGY-SYSTEM-MIB::upgradeAvailable.0 = INTEGER: 2
      

    希望这可以帮助某人。

    • 1

相关问题

  • VMWare 服务器 VM 网络利用率

  • show ip route 的 SNMP 等效项?

  • 通过 SNMP 导出性能计数器

  • 用于网络监控的路由/代理 SNMP 陷阱(或 Netflow、通用 UDP 等)的解决方案?

  • SNMP HOSTMIB.MIB 未加载?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve