You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telegraf无法从Arista MIB获取完整路由表统计信息问题咨询

问题根因

Telegraf inputs.snmp 插件默认不会自动解析SNMP表的索引字段作为标签,也不会自动加载MIB中的枚举值做文本映射。如果直接以单OID形式采集aristaFIBStatsTotalRoutesForRouteType,插件无法识别该指标属于多索引表项,会把所有不同维度的数值全部识别为同名指标,丢失IP版本、路由协议类型两个关键上下文维度。

配置步骤
  • 前置准备:将ARISTA-FIB-STATS-MIB和其依赖的IANA-RTPROTO-MIB两个MIB文件放到Telegraf的MIB加载路径下,默认路径为/usr/share/snmp/mibs,也可以在插件配置中通过path参数指定自定义MIB目录,确保Telegraf进程对MIB文件有读权限。
  • 修改SNMP插件配置,以表采集模式替代单OID采集,显式将索引字段标记为标签,配置示例如下:
[[inputs.snmp]]
  # 替换为实际的Arista设备IP列表
  agents = ["10.45.100.20"]
  version = 2
  # 替换为实际的SNMP读团体字
  community = "pub"
  # 若使用自定义MIB目录,取消注释并填写对应路径
  # path = ["/etc/telegraf/snmp/mibs"]
  # Telegraf 1.20+版本开启后可自动解析MIB枚举值,无需手动写映射
  translate = true

  [[inputs.snmp.table]]
    name = "arista_fib_stats"
    oid = "ARISTA-FIB-STATS-MIB::aristaFIBStatsEntry"

    # 将IP版本索引标记为标签
    [[inputs.snmp.table.field]]
      oid = "ARISTA-FIB-STATS-MIB::aristaFIBStatsIPVersion"
      is_tag = true
      # 若不开启translate,可手动配置枚举映射
      # [inputs.snmp.table.field.conversion]
      #   1 = "ipv4"
      #   2 = "ipv6"

    # 将路由协议类型索引标记为标签
    [[inputs.snmp.table.field]]
      oid = "ARISTA-FIB-STATS-MIB::aristaFIBStatsRouteType"
      is_tag = true
      # 若不开启translate,可手动配置所需的协议枚举映射
      # [inputs.snmp.table.field.conversion]
      #   1 = "other"
      #   2 = "local"
      #   3 = "connected"
      #   4 = "static"
      #   11 = "ospf"
      #   14 = "bgp"
      #   50 = "attached"

    # 采集路由计数指标
    [[inputs.snmp.table.field]]
      oid = "ARISTA-FIB-STATS-MIB::aristaFIBStatsTotalRoutesForRouteType"
  • 删除原有配置中单独采集aristaFIBStatsTotalRoutesForRouteType单OID的规则,避免生成无维度的脏指标。
配置校验

执行以下命令单次运行SNMP插件,直接查看采集结果:

telegraf --test --config /etc/telegraf/telegraf.conf --input-filter snmp

配置生效后返回的指标会自动携带aristaFIBStatsIPVersion、aristaFIBStatsRouteType两个标签,示例如下:

arista_fib_stats,agent_host=10.45.100.20,aristaFIBStatsIPVersion=ipv4,aristaFIBStatsRouteType=bgp,host=nw01.ny5 aristaFIBStatsTotalRoutesForRouteType=1623i 1654976575000000000
arista_fib_stats,agent_host=10.45.100.20,aristaFIBStatsIPVersion=ipv4,aristaFIBStatsRouteType=connected,host=nw01.ny5 aristaFIBStatsTotalRoutesForRouteType=8i 1654976575000000000
注意事项
  • 若开启translate = true后枚举值未正常转换,优先检查MIB文件是否完整、依赖是否缺失,可通过snmpwalk -M +/your/mib/path命令手动验证MIB是否能正常加载解析。
  • 所有属于SNMP表的多维度指标,都必须通过[[inputs.snmp.table]]块配置采集,直接用单OID采集必然会丢失索引维度。
  • 枚举映射只需要配置自己实际用到的协议类型即可,不需要把IANA定义的全量协议类型都写上。

内容的提问来源于stack exchange,提问作者flyerhawk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 18:25:25