网络设备采集模板

编写网络设备采集模板

在采集模版点击右上角新增即可新增自定义采集模版。

nt01

下面给出一个 snmp 设备的自定义采集配置和基本参数说明。

nt02

基础参数说明

agents:配置采集信息地址、端口和协议;

格式:agents = ["<scheme://><hostname>:<port>"]

scheme:协议类型,默认是 udp 协议。目前支持 udp udp4 udp6 tcp tcp4 tcp6 。

hostname:采集的地址。

port:采集地址的端口号。

示例:

agents = ["udp://127.0.0.1:161"] 表示使用 UDP 协议,连接到本地 127.0.0.1 地址的端口 161。

agents = ["tcp://127.0.0.1:161"] 表示使用 TCP 协议,连接到本地 127.0.0.1 地址的端口 161。

如果使用网络设备进行采集

配置文件可以这样写自动调用网络设备采集中的相应字段。

  1. [[instances]]
  2. agents = ["{{.Schema}}://{{.IP}}:{{.Port}}"]
  3. interval_times = 1
  4. timeout = "{{.Timeout}}s"
  5. version = {{.Version}}
  6. #retries = 3
  7. max_repetitions=15
  8. disable_up = true
  9. {{.Auth}}

如下图所示,可以将填入配置中的字段进行映射,在采集的时候自动调取变量对应的值。

{{.IP}} == IP

{{.Schema}} == SNMP 协议

{{.Port}} == SNMP 端口

{{.Timeout}} == 超时时间(s)

{{.Version}} == SNMP 版本

{{.Auth}} == Community

ne09

community:设备配置文件或者管理界面获取的参数,一般是 public 。

nt03

agent_host_tag :上报设备 ip 的 LabelName 。

nt04

retries : SNMP 请求失败时,系统会重试的次数。

max_repetitions :SNMP 一次请求中最多请求对象的数量。注意:这个值越高,可能会减少请求次数,但也可能增加网络负载。

获取 Scalar 数据类型:这些数据点在 MIB 中是以单个 OID 标识的。

  1. # 获取 Scalar 数据
  2. # cpu系统态使用率
  3. [[instances.field]]
  4. oid = "1.3.6.1.4.1.2021.11.9.0"
  5. name = "cpu_usage_sys"
  6. # cpu用户态使用率
  7. [[instances.field]]
  8. oid = "1.3.6.1.4.1.2021.11.10.0"
  9. name = "cpu_usage_user"
  10. # 设备空闲内存
  11. [[instances.field]]
  12. oid = "1.3.6.1.4.1.2021.4.6.0"
  13. name = "mem_free"

获取 Table 类数据:有多列数据,也有多个索引,Categraf会自动获取Table中的所有索引字段做成时序数据的标签,会自动获取所有的数据列,作为指标上报。

  1. # 获取 Table 类数据
  2. [[instances.table]]
  3. oid = "IF-MIB::ifTable"
  4. name = "interface"
  5. [[instances.table.field]]
  6. oid = "IF-MIB::ifDescr"
  7. name = "ifDescr"
  8. # 有些列可能不是数值,比如 ifDescr 就是字符串,这个列无需作为指标上报,应该作为标签上报更合适,所以有个 is_tag=true 的配置。
  9. is_tag = true

OID :用于唯一标识网络管理协议(例如 SNMP)中的每个管理对象的标识符。它是一种标准化的编号系统,用于标识管理信息库(MIB)中的对象及其层次结构。

  • 树状结构:OID 表示一个分层的命名系统,每个节点都是一个数字,代表树的一个层次。
  • 从根节点开始:所有的 OID 都从根节点(0)开始,然后逐级向下。 例如,OID 1.3.6.1.2.1.1.3.0 可以分解为:
  • 1:ISO 标识符
  • 3:组织编号
  • 6:企业编号
  • 1:管理编号
  • 2:标准编号
  • 1:MIB-II
  • 1:系统组
  • 3:系统运行时间
  • 0:具体实例

如何解析OID

我们使用标准的 MIB 库RFC1213-MIB 举例(根据实际需求更换 MIB 库)。RFC1213-MIB 是默认的 MIB 库之一,它包括了各种设备状态、网络接口信息、系统资源等的管理和监控项。

使用snmpwalk -v2c -c public 127.0.0.1命令可以查看设备所有 OID ,大家可以根据自己的需求将 OID 填入配置文件中。

nt08

保存好模板后就可以在即时查询中查看指标了。

nt05

排错分析:

如果配置完成后没有查看到相关指标可以在网络设备上执行以下相关命令确认是否有返回值。

正常网络设备返回值:

nt06

网络设备无返回值:

nt07

排错方向:

  • OID 路径是否正确,不同设备和厂商可能会有不同的 OID 来表示;
  • SNMP 是否正常加载了相关的 MIB 模块;
  • 网络设备是否是私有 OID,这些 OID 需要配置特定的 MIB 模块,或者需要特定的硬件或软件支持;
  • SNMPD 配置文件中字符串( public )权限和优先级顺序问题;