夜莺-Nightingale
夜莺V6
项目介绍 架构介绍
快速开始
黄埔营
安装部署
升级
采集器
使用手册
API
数据库表结构
FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵
第2章:探索PromQL
第3章:Prometheus告警处理
第4章:Exporter详解
第5章:数据与可视化
第6章:集群与高可用
第7章:Prometheus服务发现
第8章:监控Kubernetes
第9章:Prometheus Operator
参考资料

网络设备采集模板

编写网络设备采集模板

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

nt01

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

nt02

基础参数说明

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

nt03

agent_host_tag :上报设备 ip 的 LabelName 。

nt04

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

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

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

# 获取 Scalar 数据
# cpu系统态使用率
[[instances.field]]
oid = "1.3.6.1.4.1.2021.11.9.0"
name = "cpu_usage_sys"
# cpu用户态使用率
[[instances.field]]
oid = "1.3.6.1.4.1.2021.11.10.0"
name = "cpu_usage_user"
# 设备空闲内存
[[instances.field]]
oid = "1.3.6.1.4.1.2021.4.6.0"
name = "mem_free"

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

# 获取 Table 类数据
[[instances.table]]
oid = "IF-MIB::ifTable"
name = "interface"

[[instances.table.field]]
oid = "IF-MIB::ifDescr"
name = "ifDescr"
# 有些列可能不是数值,比如 ifDescr 就是字符串,这个列无需作为指标上报,应该作为标签上报更合适,所以有个 is_tag=true 的配置。
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:具体实例

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

nt05

排错分析:

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

正常网络设备返回值:

nt06

网络设备无返回值:

nt07

排错方向:

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