如何使用 Telegraf 监控您的 SNMP 设备
作者 Samantha Wang / 用例,产品,开发者
2020年1月14日
导航至
网络监控的核心目标非常简单:您试图收集有关网络设备的所有相关信息,以便检测和解决设备及连接的故障,从而维护合规性和网络安全。
许多人直到太晚才意识到,有缺陷的网络设备不仅仅是负担——它们对网络构成了非常严重的威胁。如果这些设备没有得到适当的检查,很容易被黑客攻破,如果他们能够访问该设备,网络上的所有数据都处于危险之中。
除了安全性之外,网络监控至关重要,因为它允许您在任何给定时间了解您的网络的使用情况和性能。这不仅将节省大量时间,因为可以帮助您在任何地方减少停机时间,而且还帮助您在今天阻止小问题,防止它们明天成为大问题——从而为您节省大量资金。
为此,有许多工具可供您使用,通过度量标准监控网络性能。其中一个就是 SNMP——这是一个存在多年的解决方案,并且可以在各种环境中以多种方式发挥作用。
最近,我们在 Telegraf 1.13 中发布了新的 SNMP Trap 输入插件。我想向您介绍该插件以及如何使用它。
什么是 SNMP?
SNMP 是简单网络管理协议的缩写,SNMP 是一种应用层协议,通常用于管理和监控网络中共同存在的设备。其核心提供了一种通用方式,使得许多设备(如路由器、接入点、打印机等)能够相互共享监控度量标准,以便使用这些设备的用户始终能够获得最具体和最准确的信息。
SNMP 还在使用中吗?
是的!尽管 SNMP 在 1988 年就被定义了——按照技术标准来说是一个永恒的时代——但它仍然被广泛用于监控和管理。SNMP 有三个主要版本——版本 1、2 和 3。如果您有选择,请使用 SNMP v3,因为它具有增强的安全性:用户账户、身份验证和数据加密。
SNMP 用作什么?
简单网络管理协议 (SNMP) 是一种应用层协议,用于管理和监控网络设备。SNMP 为您的网络设备(如路由器、WiFi 访问点和打印机)提供了一个共享监控指标的标准方式。SNMP 的优点在于它已经存在很长时间,因此许多不同的供应商都支持它,并且它可以在局域网 (LAN) 和广域网 (WAN) 上工作。SNMP 也用于一些物联网 (IoT) 设备。
换句话说,SNMP 是一种非常有效的网络管理工具。如果您需要能够查看网络上所有设备的状况,无论是历史状况还是实时状况,无论网络多么复杂,SNMP 都是其中最简单直接的方式之一。设计上,SNMP 是一种简单、灵活的方式来组织网络中的所有设备,以便达到您想要达成的目标。
SNMP 在快速收集大量信息方面也极为宝贵,同时不会在所涉及的网络中造成流量拥堵。因为有关设备状态的全部信息总是以简单格式提供,并且实时更新,您可以获取重要信息而无需等待收集所有数据,也无需像使用其他技术那样处理大量数据传输。
什么是 SNMP 监控?
一般来说,SNMP 监控涉及更仔细地查看网络接口状态信息,如输入输出字节数、输入输出错误、CPU 和内存使用情况等。它是通过一系列对象标识符 (OID) 来实现的,这些 OID 使用层次树结构组织到管理信息库 (MIB) 中。
用最简单的话来说,对象标识符揭示了设备和系统暴露的信息集,所有这些信息都是通过活动的 SNMP 接口进行监控的。
正如所述,使用这种 MIB 和 OID 数据层次结构提供了许多重要的好处,您很难通过其他方式实现。其中最重要的是,管理员可以非常快速地获取信息,而无需强迫代理出去收集信息。这不仅大大减少了网络开销,而且还保证了所有有关网络状态的有关信息始终可以立即获取。
什么是 SNMP 陷阱?
SNMP 陷阱 是从远程启用 SNMP 的设备发送到中央收集器(“SNMP 管理员”)的警报消息。SNMP 通过对象标识符 (OID) 揭示数据,其层次树结构组织在 管理信息库 (MIB) 中。MIB 是设备供应商提供的文本文件,列出了由特定设备管理的所有数据对象(OID)。
您的 SNMP 管理员将使用 MIB 来解释来自新设备的传入消息。陷阱消息是 SNMP 代理与 SNMP 管理员之间通信的主要形式。使用 SNMP 陷阱报告警报的主要优点是它们可以立即触发,而不是等待管理员的状况请求。
我如何使用 Telegraf 监控我的 SNMP 陷阱?
Telegraf SNMP Trap 输入插件接收 SNMP 通知 - 陷阱和通知请求 - 以实时查看系统和网络性能问题。此外,通过监控 SNMP 陷阱,客户可以平衡在短间隔内拉取 SNMP 数据对资源消耗的影响(系统和网络)。例如,当电源单元或磁盘发生故障时,Telegraf 会接收 SNMP 陷阱并将其发送到输出插件。您可以为故障配置警报,通知您或您的团队。
如何正确配置我的 SNMP 陷阱插件?
像大多数 Telegraf 插件一样,SNMP 陷阱输入插件不需要太多配置。需要安装来自 net-snmp 项目工具的一些 先决条件。此外,在许多操作系统中,监听特权端口(端口号小于 1024)需要额外的权限。由于默认的 SNMP 陷阱端口 162 属于此类,使用 Telegraf 接收 SNMP 陷阱可能需要提升权限。
[[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 陷阱插件收集哪些度量指标?
标签
标签 | 描述 |
|
陷阱源 IP 地址 |
|
SNMPv2-MIB::snmpTrapOID.0 PDU 的值 |
|
SNMPv2-MIB::snmpTrapOID.0 PDU 的管理信息库 (MIB) |
|
SNMPv2-MIB::snmpTrapOID.0 PDU 的对象标识符 (OID) 字符串 |
|
版本 "1" 或 "2c" 或 "3" |
字段
字段映射来自陷阱中的变量。字段名称是 MIB 查询后的陷阱变量名称。字段值是陷阱变量的值。(示例字段:sysUpTimeInstance
(整数),snmpTrapEnterprise
(字符串))
Telegraf 在 SNMP 服务器(snmpd)重启期间收集 SNMP 陷阱的示例
以上是使用 SNMP 陷阱插件进行的快速演示,其中 Telegraf 设置为接收 SNMP 虚拟机端口 162 的陷阱。所有代理设置都是默认配置。
演示中的输入插件配置
[[inputs.snmp_trap]]
service_address = "udp://:162"
演示中使用的虚拟机使用 net-snmp 的 snmpd 将版本 1 和版本 2c 的陷阱发送到 Telegraf。在演示中,虚拟机已重启,因此将发送关机(nsNotififyShutdown
)和启动(coldStart
)陷阱到 Telegraf。
演示的输出结果(选择“查看原始”以在全屏中查看整个原始文本)
关于 SNMP 的常见问题解答
什么是 SNMP 管理器?
关于 SNMP 最重要的是了解它是基于一个非常简单的客户端-服务器架构运行的。这里的服务器被称为管理器,它们收集和处理特定网络中所有设备的信息。
什么是 SNMP 代理?
同样,这个架构中的客户端被称为代理——它们是连接到网络并与其他设备共享信息的任何设备。除了计算机外,这些还可以包括网络交换机、电话、打印机和类似类型的设备。
在哪里可以了解更多关于 SNMP 的信息?
幸运的是,有各种各样的资源可以帮助您进一步了解 SNMP。在 InfluxData,我们编写了一个有用的资源,您可以在这里查看:这里。您还可以访问 Net-SNMP.org,以回答您的重要问题,并了解更多关于您的部署可以做什么。
SNMP 的基本命令是什么?
以下是一些您需要熟悉的基本SNMP命令:
GET
,这是管理器向受管理设备发送的请求,用于从该资产检索一个或多个值GETNEXT
,用于检索您正在处理的MIB树中下一个OID的值GETBULK
,SNMP管理器用于修改或分配特定受管理设备的值TRAPS
,实际上是由代理启动而不是SNMP管理器,用于在特定事件发生时向代理发送信号INFORM
,也是由代理启动的,并包括管理器已收到上述信号的确认RESPONSE
,用于根据管理器的指示携带所有信息或信号
开始使用吧!
如果您或您的公司正在使用任何版本的SNMP设备并希望监控陷阱,请尝试阅读此Telegraf插件中的所有内容!我们很乐意了解您如何使用此插件或其他InfluxData产品来监控SNMP。加入我们的社区Slack频道,您可以在那里提问并与使用InfluxDB的其他人交流!