当前位置: 首页 > 知识库问答 >
问题:

如何正确更新SNMP4j代理MIB值

慕容恩
2023-03-14

我正在尝试创建一个SNMP4j代理,但发现很难正确理解该过程。我已经成功创建了一个可以使用snmpwalk从命令行查询的代理。我遇到的困难是理解如何更新存储在我实现的MIB中的值。

下面显示了我用于创建MIB的相关代码(我实现了主机资源MIB)

        agent = new Agent("0.0.0.0/" + port);
        agent.start();
        agent.unregisterManagedObject(agent.getSnmpv2MIB());
        modules = new Modules(DefaultMOFactory.getInstance());
        HrSWRunEntryRow thisRow = modules.getHostResourcesMib().getHrSWRunEntry()
                .createRow(oidHrSWRunEntry);

        final OID ashEnterpriseMIB = new OID(".1.3.6.1.4.1.49266.0"); 

        thisRow.setHrSWRunIndex(new Integer32(1));
        thisRow.setHrSWRunName(new OctetString("RunnableAgent"));
        thisRow.setHrSWRunID(ashEnterpriseMIB);
        thisRow.setHrSWRunPath(new OctetString("All is good in the world")); // Max 128 characters
        thisRow.setHrSWRunParameters(new OctetString("Everything is working")); // Max 128 characters
        thisRow.setHrSWRunType(new Integer32(HrSWRunTypeEnum.application));
        thisRow.setHrSWRunStatus(new Integer32(HrSWRunStatusEnum.running));

        modules.getHostResourcesMib().getHrSWRunEntry().addRow(thisRow);

        agent.registerManagedObject(modules.getHostResourcesMib());

这似乎足以创建可运行的代理。我不明白的是,我应该如何更改MIB中存储的值(例如,如何更改HrSWRunStatus的值)。似乎有一些乱七八糟的方法,但它们似乎与库的编写方式不符。

我曾多次提到使用/重写这些方法

  • 准备
  • 提交
  • 撤消
  • 清理

但找不到任何这样做的例子。任何帮助都将受到感激。

共有1个答案

彭胡媚
2023-03-14

在受保护的void registerManagedObjects()中,需要执行类似于new MOMutableColumn(columnId,smicontents.SYNTAX\u INTEGER,MOAccessImpl.ACCESS\u READ\u WRITE,null)的操作 用于您的HrSWRunStatus。查看TestAgent。SNMP4J代理源代码的java示例。

 类似资料:
  • 我已使用snmp4j api在SNMP代理上创建,但SNMP表注册存在问题 一旦我注册了表和表中的行。然后,如果我在表中设置值,所有行都会设置相同的值。我已经从JSON创建了snmp表 如果我设置了值,请在下表中 .1.3.6.1.4.1.1.201.6.2。它为下表中注册的所有行设置值。是否有人知道如何使用snmmpj代理正确注册和设置值。

  • 问题内容: 这可能看起来很奇怪。 我已经用Java(在Eclipse中)编写了代码。然后,我对代码进行了一些修改。现在,我正在尝试运行新代码(已修改),但是它仍然为我提供了先前代码的输出。 我在代码中放置了很少的调试点,但是它跳过了一些调试点(尽管它应该在它们处停止)并在某个调试点处停止,但是即使在这里,它也调用了先前代码中存在的方法。位置(尽管我已经对此发表了评论)。从某个地方看来,它仍然在调试

  • 在我的REST API中,我有一个过滤器,该过滤器检查每个请求,以查看令牌是否是原样。下面是代码。 当用户登录到应用程序时,将调用上述代码。但是,令牌将在60分钟内过期。我知道,在令牌过期后,要么我必须带用户返回登录屏幕,要么刷新令牌。我把这里和这里的建议都看了一遍 但我不明白以下几点。 如何分配并将此令牌发送回用户?当前,当用户登录时,他将获得令牌并将其保存在一个变量中。为了使刷新的令牌工作,我

  • 我正在努力理解snmp;我可以在http://www.shivasoft.in/blog/java/snmp/create-snmp-client-in-java-using-snmp4j/遍历SNMP树并获得以下结果 格式为1.3.6.1的数字。x、 x将是hashmap的键;我想让这些数字更方便用户使用。我该怎么做?也许我可以将MIB文件传递给我的java代码(?)。我希望输出的所有数字都是1

  • 我正在使用SNMP4J框架,它实现并实现了标准集、GET、GET-NEXT等消息。 例如,使用集合,我可以更新MIB OID“1.3.6.1.2.50.0”的值。这对我来说非常有效。我可以使用org来实现这一点。snmp4j。Snmp。设置(PDU PDU,目标目标) 我现在要做的是从客户端创建一个自定义MIB OID(如“1.3.6.1.2.100.0”),并为其赋值,而不是简单地更新现有的MI

  • 问题内容: 我试图: 根据搜索条件查找文档, 如果找到,请更新一些属性 如果没有插入带有某些属性的文档。 我正在使用,因为我也在执行单个插入操作。我想在一次操作中完成所有操作。 但是,它什么都不会导致为更新/向上插入操作插入任何内容。 这是插入文档: 这是最新资料: 这就是我试图更新/更新的方式: 为什么不更新/更新呢? 注意 那是使用水线ORM的JS代码,它也使用mongodb本机驱动程序。 问