文档文档

SNMP Trap 输入插件

此服务插件侦听 SNMP 通知,如陷阱和 inform 请求。通知通过纯 UDP 在可配置的端口上接收。

路径设置在所有 SNMP 插件类型的实例之间共享!

引入于: Telegraf v1.13.0 标签: hardware, network 操作系统支持: all

服务输入

此插件是服务输入。普通插件收集由 interval 设置确定的指标。服务插件启动一个服务来监听并等待指标或事件发生。服务插件与普通插件的两个主要区别是:

  1. 全局或插件特定的 interval 设置可能不适用
  2. --test--test-wait--once 的 CLI 选项可能不会为此插件生成输出

全局配置选项

插件支持其他全局和插件配置设置,用于修改指标、标签和字段,创建别名以及配置插件顺序等任务。更多详情请参阅 CONFIGURATION.md

Secret-store 支持

此插件支持从 secret-stores 获取 `sec_name`、`auth_password` 和 `priv_password` 选项的 secret。有关如何使用它们的更多详细信息,请参阅 secret-store 文档

配置

# Receive SNMP traps
[[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"
  ##
  ## Path to mib files
  ## Used by the gosmi translator.
  ## To add paths when translating with netsnmp, use the MIBDIRS environment variable
  # path = ["/usr/share/snmp/mibs"]
  ##
  ## Timeout running snmptranslate command
  ## Used by the netsnmp translator only
  # timeout = "5s"
  ## Snmp version; one of "1", "2c" or "3".
  # version = "2c"
  ## SNMPv3 authentication and encryption options.
  ##
  ## Security Name.
  # sec_name = "myuser"
  ## Authentication protocol; one of "MD5", "SHA", "SHA224", "SHA256", "SHA384", "SHA512" or "".
  # auth_protocol = "MD5"
  ## Authentication password.
  # auth_password = "pass"
  ## Security Level; one of "noAuthNoPriv", "authNoPriv", or "authPriv".
  # sec_level = "authNoPriv"
  ## Privacy protocol used for encrypted messages; one of "DES", "AES", "AES192", "AES192C", "AES256", "AES256C" or "".
  # priv_protocol = ""
  ## Privacy password used for encrypted messages.
  # priv_password = ""

SNMP 后端: gosmi vs netsnmp

此插件支持两个后端来转换 SNMP 对象。默认情况下,Telegraf 将使用 netsnmp,但此选项已被弃用,并鼓励迁移到 gosmi。如果用户在使用 gosmi 时遇到 netsnmp 不会出现的问题,请在 GitHub 上提交一个项目 issue。

SNMP 后端设置是一个全局设置,适用于 Telegraf 中所有 SNMP 的使用。用户可以在 [agent] 配置中通过 snmp_translator 选项设置此选项。有关更多详细信息,请参阅 agent 配置

使用特权端口

在许多操作系统上,监听特权端口(小于 1024 的端口号)需要额外的权限。由于默认的 SNMP trap 端口 162 属于此类,因此使用 telegraf 接收 SNMP traps 可能需要额外的权限。

关于在特权端口上监听的说明因操作系统而异。不建议运行 telegraf 作为超级用户来使用特权端口。而是遵循最小权限原则,并使用更具体的操作系统机制来允许 telegraf 使用该端口。您也可以让 telegraf 使用一个非特权端口,然后配置一个防火墙端口转发规则从特权端口转发。

要在 Linux 上使用特权端口,您可以使用 setcap 为 telegraf 二进制文件启用 CAP_NET_BIND_SERVICE 能力。

setcap cap_net_bind_service=+ep /usr/bin/telegraf

在 Mac OS 上,10.14 及更高版本上监听特权端口不受限制。

Metrics

  • snmp_trap
    • 标签 (tags)
      • source (string, trap 源的 IP 地址)
      • name (string, SNMPv2-MIB::snmpTrapOID.0 PDU 中的值)
      • mib (string, SNMPv2-MIB::snmpTrapOID.0 PDU 中的 MIB)
      • oid (string, SNMPv2-MIB::snmpTrapOID.0 PDU 中的 OID 字符串)
      • version (string, “1” 或 “2c” 或 “3”)
      • context_name (string, v3 trap 中的值)
      • engine_id (string, v3 trap 中的值)
      • community (string, 1 或 2c trap 中的值)
    • 字段 (fields)
      • 字段从 trap 中的变量映射而来。字段名称是 MIB 查找后 trap 变量的名称。字段值是 trap 变量的值。

示例输出

snmp_trap,mib=SNMPv2-MIB,name=coldStart,oid=.1.3.6.1.6.3.1.1.5.1,source=192.168.122.102,version=2c,community=public snmpTrapEnterprise.0="linux",sysUpTimeInstance=1i 1574109187723429814
snmp_trap,mib=NET-SNMP-AGENT-MIB,name=nsNotifyShutdown,oid=.1.3.6.1.4.1.8072.4.0.2,source=192.168.122.102,version=2c,community=public sysUpTimeInstance=5803i,snmpTrapEnterprise.0="netSnmpNotificationPrefix" 1574109186555115459

此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2