如何使用 Telegraf 监控您的 SNMP 设备

导航至

网络监控的核心目标很简单:您试图收集网络上设备的所有相关信息,以便检测和解决设备和连接中的故障,从而维护合规性和网络安全。

许多人直到为时已晚才意识到,有故障的网络设备不仅仅是一种负担——它们对任何地方的网络都构成非常严重的威胁。这些设备如果不加以检查,很容易被黑客入侵,如果他们能够访问该设备,存储在网络上的每一千字节数据都可能处于危险之中。

除了安全之外,网络监控至关重要,因为它使您能够准确了解您的网络在任何给定时间的使用情况和性能。这不仅可以节省大量时间,因为它有助于您尽可能减少停机时间,而且还有助于在小问题变成大问题之前阻止它们——从而为您节省大量资金。

为此,您可以使用许多工具来监控网络性能,通过指标使您最容易理解您想要完成的任务。其中之一是 SNMP – 一种已经存在多年的解决方案,并且将在任何环境中以多种方式证明其有用性。

最近,我们在 Telegraf 1.13 中发布了一个新的 SNMP Trap 输入插件。我想告诉您更多关于该插件以及如何使用它的信息。

什么是 SNMP?

简单网络管理协议 (Simple Network Management Protocol) 的缩写 SNMP 是一种应用层协议,通常用于管理和监控网络中共存的设备。其核心是为路由器、接入点、打印机等多种设备提供一种通用的方式来相互共享监控指标,以便使用这些设备的人员可以访问最可操作和准确的信息,以便随时工作。

SNMP 还在使用吗?

是的!尽管 SNMP 是在 1988 年定义的——按照技术标准来看已经是很久以前了——但它仍然被广泛用于监控和管理。SNMP 主要有三个版本——版本 1、2 和 3。如果您有选择,请使用 SNMP v3,因为它具有增强的安全功能:用户帐户、身份验证和数据加密。

SNMP 用于什么?

简单网络管理协议 (SNMP) 是一种应用层协议,用于管理和监控网络设备。SNMP 为您网络上的设备(例如路由器、WiFi 接入点和打印机)提供了一种通用的方式来共享监控指标。SNMP 的优点在于它已经存在很长时间了,因此许多不同的供应商都支持它,并且它可以在局域网 (LAN) 和广域网 (WAN) 上工作。SNMP 也用于某些物联网 (IoT) 设备。

换句话说,SNMP 是一种非常有效的网络管理工具。如果您需要能够获得网络上所有设备状态的历史和实时视图,无论它多么复杂,SNMP 都是最直接的方法之一。通过设计,SNMP 是一种简单而灵活的方式来组织整个网络中的所有设备,使其以最符合您想要完成的目标的方式进行。

SNMP 在尽可能快地收集大量信息方面也具有不可估量的价值,同时又不会使相关网络因流量而拥塞。由于有关设备状态的所有信息 A) 始终以简单格式提供,并且 B) 实时更新,因此您可以访问重要信息,而无需等待收集所有数据或无需像使用其他技术那样处理大型数据传输。

什么是 SNMP 监控?

一般来说,SNMP 监控涉及更仔细地查看网络接口状态信息,例如输入和输出字节数、输入和输出错误、CPU 和内存使用率等。它通过一系列对象标识符 (OID) 来实现这一点,这些对象标识符使用分层树结构组织到管理信息库 (Management Information Base) 或 MIB 中。

用最直接的术语来说,对象标识符会提取由设备和系统公开的信息集,所有这些信息都通过活动的 SNMP 接口进行监控。

如前所述,使用 MIB 和 OID 数据层次结构这一事实带来了几个重要的好处,您很难通过其他方式复制这些好处。其中最主要的是,管理者可以非常快速地提取信息,而无需专门强制代理出去收集信息。这不仅在很大程度上减少了网络开销,而且还保证了有关网络状态的所有相关信息始终可以立即获得。

什么是 SNMP Trap?

SNMP diagram

SNMP Trap 是从远程启用 SNMP 的设备发送到中央收集器“SNMP 管理器”的警报消息。 SNMP 通过对象标识符 (OID) 公开数据,其分层树结构组织在 管理信息库 (MIB) 中。MIB 是设备供应商提供的文本文件,其中列出了特定设备管理的所有数据对象 (OID)。

您的 SNMP 管理器将使用 MIB 来解释来自新设备的传入消息。Trap 消息是 SNMP 代理 和 SNMP 管理器之间通信的主要形式。使用 SNMP Trap 报告警报的主要好处是它们会立即触发,而不是等待来自管理器的状态请求。

如何使用 Telegraf 监控我的 SNMP Trap?

Telegraf SNMP Trap 输入插件 接收 SNMP 通知 – trap 和 inform 请求 – 以提供系统和网络性能问题的实时视图。此外,通过监控 SNMP trap,客户可以平衡因在短时间内拉取 SNMP 数据而造成的资源消耗影响(系统和网络)。例如,当电源单元或磁盘发生故障时,Telegraf 将接收 SNMP trap 并将其发送到输出插件。然后,您可以配置警报以通知您或您的团队有关故障。

如何正确配置我的 SNMP Trap 插件?

像大多数 Telegraf 插件一样,SNMP Trap 输入插件不需要太多配置。需要安装来自 net-snmp 项目的工具的一些先决条件。此外,在许多操作系统上,监听特权端口(端口号小于 1024)需要额外的权限。由于默认的 SNMP trap 端口 162 属于此类别,因此使用 Telegraf 接收 SNMP trap 可能需要提升的权限。

[[inputs.snmp_trap]]
  ## Transport, local address, and port to listen on.  Transport must
  ## be "udp://".  Omit local address to listen on all interfaces.
  ##   example: "udp://127.0.0.1:1234"
  ##
  ## Special permissions may be required to listen on a port less than
  ## 1024.  See README.md for details
  ##
  # service_address = "udp://:162"
  ## Timeout running snmptranslate command
  # timeout = "5s"

从 Telegraf SNMP Trap 插件收集哪些指标?

标签

标签 描述
source
trap 源的 IP 地址
name
来自 SNMPv2-MIB::snmpTrapOID.0 PDU 的值
mib
来自 SNMPv2-MIB::snmpTrapOID.0 PDU 的管理信息库 (MIB)
oid
来自 SNMPv2-MIB::snmpTrapOID.0 PDU 的对象标识符 (OID) 字符串
version
版本 "1" 或 "2c" 或 "3"

字段

字段从 trap 中的变量映射而来。字段名称是 MIB 查找后的 trap 变量名称。字段值是 trap 变量值。(示例字段:sysUpTimeInstance (整数), snmpTrapEnterprise (字符串))

Telegraf 在 SNMP 服务器 (snmpd) 重启期间收集 SNMP Trap 的示例

上面是使用 SNMP Trap 插件的快速演示,其中 Telegraf 设置为接收 SNMP 虚拟机的端口 162 上的 trap。所有代理设置均为默认配置。

演示中的输入插件配置

[[inputs.snmp_trap]]
service_address = "udp://:162"

演示中使用的虚拟机具有 net-snmp 的 snmpd,用于向 Telegraf 发送版本 1 和版本 2c 的 trap。在演示中,虚拟机重新启动,因此将向 Telegraf 发送关闭 (nsNotififyShutdown) 和启动 (coldStart) trap。

演示的输出结果(选择“查看原始”以全屏查看完整原始文本

关于 SNMP 的常见问题

什么是 SNMP 管理器?

关于 SNMP 最重要的一点是理解它基于非常简单的客户端-服务器架构运行。在这种情况下,服务器称为管理器,它们收集和处理有关特定网络上所有设备的所有信息。

什么是 SNMP 代理?

同样,此架构中的客户端称为代理——它们是连接到网络的任何设备,可能会与其他设备共享信息。除了计算机之外,这些设备还可能包括网络交换机、电话、打印机和类似类型的设备。

在哪里可以了解更多关于 SNMP 的信息?

值得庆幸的是,您可以使用各种不同的资源来进一步了解 SNMP。在 InfluxData,我们编写了一个有用的资源,您可以在这里查看。您也可以访问 Net-SNMP.org 以获得重要问题的答案,并了解更多关于如何使用您的部署的信息。

SNMP 的基本命令有哪些?

您需要熟悉的一些基本 SNMP 命令包括

  • GET,这是管理器发送到被管理设备的请求,用于从该资产检索一个或多个值
  • GETNEXT,用于检索您正在使用的 MIB 树中下一个 OID 的值
  • GETBULK,SNMP 管理器使用它来修改或为特定的被管理设备分配值
  • TRAPS,实际上是由代理而不是 SNMP 管理器启动的,用于在特定事件发生时向代理发送信号
  • INFORM,也是由代理启动的,包括管理器已收到上述信号的确认
  • RESPONSE,用于按管理器指示将所有信息或信号返回

开始使用!

如果您或您的公司正在使用任何版本的 SNMP 设备并想要监控 trap,请尝试您在此 Telegraf 插件中阅读的所有内容!我们很乐意听到您如何使用此插件或任何其他 InfluxData 产品监控 SNMP。加入我们的 社区 Slack 频道,您可以在其中提问并与其他使用 InfluxDB 的人互动!