gpt4 book ai didi

network-programming - 添加新的 mib 主代理

转载 作者:行者123 更新时间:2023-12-04 17:11:48 25 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

5 个月前关闭。




Improve this question




我在关注 instructions on the net-snmp website将我自己的 MIB 支持添加到主代理。

这是我所做的:

  • 我在 net-snmp/agent/mibgroup/文件夹中创建了我的支持 .c 和 .h 文件。
  • 我将 MIB 文件复制到/usr/local/share/snmp/mibs/文件夹。
  • 我跑了 "./configure --with-mib-modules="myMib""
  • 我运行了“make”和“make install”
  • 我用“snmpd -f -Le -d -c snmpd.conf &”
  • 启动了snmpd
  • 我可以通过运行 snmpdtranslte 命令来查看我的 MIB 结构。但是,当我尝试使用
    snmpget -v2c -c public "MY-MIB-FILE::myVariable", 我不断收到 "*** = No such object available
    在此 OID 的此代理上”。

  • 我完全按照教程说的做了,我可以运行 snmpgetsnmpsetNET-SNMP-TUTORIAL-MIB::nstAgentModuleObject例子。

    请帮助我理解我在这里错过了什么。

    最佳答案

    “在此 OID 处此代理上没有可用的此类对象”表明,就 netsnmpd 而言,其树中没有相应的 OID。

    不要被 snmptranslate 的成功所迷惑. Snmptranslate 仅对 MIB 文件本身进行操作,根本不需要访问 snmp 服务器。因此,snmptranslate 正确显示您的 MIB 详细信息这一事实仅表明您的 mib 已正确复制到 $MIBDIRS或您的 .snmp/snmp.conf 中列出的目录文件(等)。

    假设您按照教程进行操作,您实现的 mib 提供了单个标量变量。标量变量的索引(即后缀)为 .0 .尝试运行以下任一命令:


    snmpget -v2c -c public MY-MIB-FILE::myVariable.0

    或者:

    snmpwalk -v2c -c public MY-MIB-FILE::myVariable

    后者将为您提供该 OID 下所有 MIB 的列表,其中(在您的情况下)将包括 .0节点。

    如果失败,则值得确保您的代码正在编译并正确执行。
    首先,请查看 ./configure 末尾的详细信息。步骤以确保摘要包含您的 mib。例如。 (结果来自 ./configure --with-mib-modules="nstAgentModuleObject"):

    ---------------------------------------------------------
    Net-SNMP configuration summary:
    ---------------------------------------------------------

    SNMP Versions Supported: 1 2c 3
    Net-SNMP Version: 5.4.1
    Building for: linux
    snip
    Agent MIB code: nstAgentModuleObject default_modules => snmpv3mibs mibII ucd_snmp notification notification-log-mib target agent_mibs agentx disman/event disman/schedule utilities host
    snip
    ---------------------------------------------------------

    对于前者,您可以运行 nm通过 snmpd 可执行文件 agent/.libs/libnetsnmpmibs.so文件并确保 init_X()对应于您的 MIB 的功能存在。还值得确保 init_nstAgentModuleObject()功能存在。如果您正在运行 make install在测试之前,值得确保(使用 ldd )正在使用的 libnetsnmpmibs.so 库是您刚刚构建的库,并且您没有路径问题。

    您可以通过添加 DEBUGMSGTL() 来使用内置的调试消息系统。您的 init_X() 内的电话功能。要查看调试消息,请添加 -DALL snmpd 命令行上的选项。

    关于network-programming - 添加新的 mib 主代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9898780/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com