我有一个非常简单的配置来收集Cisco交换机的接口统计信息 . 一开始,我只有这个:

[[inputs.snmp]]
  agents = [ "172.19.254.20:161" ]
  version = 2
  #interface
  community = "lalala"
  [[inputs.snmp.field]]
    name = "hostname"
    oid = "SNMPv2-MIB::sysName.0"
    is_tag = true

  [[inputs.snmp.table]]
    name = "interface"
    inherit_tags = [ "hostname" ]
    oid = "IF-MIB::ifTable"
    # Interface tag - used to identify interface in metrics database
    [[inputs.snmp.table.field]]
      name = "ifDescr"
      oid = "IF-MIB::ifDescr"
      is_tag = true

然后我注意到“HC”OID被遗漏了所以我添加了这个并在最后添加它 .

[[inputs.snmp.table]]
    name = "interface"
    inherit_tags = [ "hostname" ]
    oid = "IF-MIB::ifXTable"
    # Interface tag - used to identify interface in metrics database
    [[inputs.snmp.table.field]]
      name = "ifDescr"
      oid = "IF-MIB::ifDescr"
      is_tag = true

我测试了配置,它似乎很好 . 我也在使用wireshark验证我是否在HC OID上看到了查询 .

172.19.254.20.snmp > 172.19.1.170.41072:  { SNMPv2c C="pasonserver" { GetResponse(232) R=-1829944824  .1.3.6.1.2.1.31.1.1.1.6.222=0 .1.3.6.1.2.1.31.1.1.1.6.223=40124583293 .1.3.6.1.2.1.31.1.1.1.6.224=107009193941 .1.3.6.1.2.1.31.1.1.1.6.225=0 .1.3.6.1.2.1.31.1.1.1.6.226=2805121180775 .1.3.6.1.2.1.31.1.1.1.6.227=0 .1.3.6.1.2.1.31.1.1.1.6.228=23542578101 .1.3.6.1.2.1.31.1.1.1.6.240=268285249798 .1.3.6.1.2.1.31.1.1.1.6.241=162859292476670 .1.3.6.1.2.1.31.1.1.1.6.242=0 } }

我还继续看到旧的计数器/ OID已经填充了Influxdb中的新数据 .

> select ifInOctets from interface where ifIndex = '241' order by time desc limit 1;
name: interface
time                ifInOctets
----                ----------
1526337294000000000 3341483601

但是,如果我使用“ifHCInOctets”运行上面的查询,则没有返回值 . 我还验证了我在模式中有ifHCInOctets和其他“HC”计数器

> show field keys from interface
name: interface
fieldKey                   fieldType
--------                   ---------
ifAdminStatus              integer
ifAlias                    string
ifConnectorPresent         integer
ifCounterDiscontinuityTime integer
ifDescr                    string
ifHCInBroadcastPkts        integer
ifHCInMulticastPkts        integer
ifHCInOctets               integer
ifHCInUcastPkts            integer
ifHCOutBroadcastPkts       integer
ifHCOutMulticastPkts       integer
ifHCOutOctets              integer
ifHCOutUcastPkts           integer
ifHighSpeed                integer
ifInBroadcastPkts          integer
ifInDiscards               integer
ifInErrors                 integer
ifInMulticastPkts          integer
ifInOctets                 integer
ifInUcastPkts              integer
ifInUnknownProtos          integer
ifLastChange               integer
ifLinkUpDownTrapEnable     integer
ifMtu                      integer
ifName                     string
ifOperStatus               integer
ifOutBroadcastPkts         integer
ifOutDiscards              integer
ifOutErrors                integer
ifOutMulticastPkts         integer
ifOutOctets                integer
ifOutUcastPkts             integer
ifPhysAddress              string
ifPromiscuousMode          integer
ifSpeed                    integer
ifType                     integer

我还重新启动了Influxdb和telegraf服务 . 我哪里做错了?谢谢!

忘了提到我运行的版本Telegraf v1.6.2(git:release-1.6 1fb4283f)InfluxDB shell版本:1.5.2