【问题标题】:How to configure collectd-snmp to poll a router?如何配置 collectd-snmp 来轮询路由器?
【发布时间】:2015-01-24 23:19:45
【问题描述】:

我正在尝试使用 Raspberry Pi 轮询 TP-LINK 路由器的接口 MIB (IF:MIB),然后将指标发送到 Librato。 设置 collectd 并将其与 Librato 集成完全没有问题 - 我正在成功跟踪其他指标(cpu、内存等)。我面临的挑战是 collectd-snmp 插件配置。

我安装了 net-snmp 并且可以“看到”路由器:

pi@raspberrypi ~ $ snmpwalk -v 1 -c public 192.168.0.1 IF-MIB::ifInOctets
IF-MIB::ifInOctets.2 = Counter32: 1206812646
IF-MIB::ifInOctets.3 = Counter32: 1548296842
IF-MIB::ifInOctets.5 = Counter32: 19701783
IF-MIB::ifInOctets.10 = Counter32: 0
IF-MIB::ifInOctets.11 = Counter32: 0
IF-MIB::ifInOctets.15 = Counter32: 0
IF-MIB::ifInOctets.16 = Counter32: 0
IF-MIB::ifInOctets.22 = Counter32: 0
IF-MIB::ifInOctets.23 = Counter32: 0

Pi 位于 192.168.0.20,路由器位于 192.168.0.1。 我的collectd.conf如下:

<Plugin snmp>
  <Data "ifmib_if_octets32">
    Type "if_octets"
    Table true
    Instance "IF-MIB::ifDescr"
    Values "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets"
  </Data>
  <Host "localhost">
    Address "192.168.0.1"
    Version 1
    Community "public"
    Collect "ifmib_if_octets32"
    Interval 60
  </Host>
</Plugin>

当我重新启动 collectd 时,我收到以下错误:

pi@raspberrypi ~ $ sudo service collectd restart
[....] Restarting statistics collection and monitoring daemon: collectdNo log handling enabled - turning on stderr logging
MIB search path: $HOME/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (IF-MIB): At line 0 in (none)
[2015-01-24 23:01:31] snmp plugin: read_objid (IF-MIB::ifDescr) failed.
[2015-01-24 23:01:31] snmp plugin: No such data configured: `ifmib_if_octets32'
No log handling enabled - turning on stderr logging
MIB search path: $HOME/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (IF-MIB): At line 0 in (none)
[2015-01-24 23:01:33] snmp plugin: read_objid (IF-MIB::ifDescr) failed.
[2015-01-24 23:01:33] snmp plugin: No such data configured: `ifmib_if_octets32'
. ok

它显然找不到 MIB,甚至似乎都没有查看路由器的 IP。有关如何正确配置的任何建议?

【问题讨论】:

    标签: snmp net-snmp collectd librato


    【解决方案1】:

    我想通了:

    <Plugin snmp>
      <Data "if_Octets">
        Type "if_octets"
        Table true
        Values "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets"
      </Data>
      <Host "tp-link">
        Address "192.168.0.1"
        Version 1
        Community "public"
        Collect "if_Octets"
        Interval 60
      </Host>
    </Plugin>
    

    【讨论】:

    • @Bruno9779 需要详细说明吗?我不知道我在这里做什么 - 正确的方法是什么?
    • OID 数字不是人类可读的;这就是 SNMP MIB 文件的用途。这是一种解决方法,因为您没有解决 MIB 文件加载问题,而是完全避免使用 MIB。我认为 collectd 取决于 snmpd.conf 中包含的 mib。我会试一试并写一个答案
    • 解决方案其实很简单——我按照手册页的例子,使用所有值的OID前缀来查询,所以IF-MIB::ifInOctets和IF-MIB::ifOutOctets。
    • 这个和原版有什么区别?省得我上下滚动,上下滚动,试着解决它......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多