为 SNMPv1 和 SNMPv2c 配置 ESXi SNMP 代理时,代理会支持发送通知(陷阱和通知)和接收 GETGETBULKGETNEXT 请求。

在 SNMPv1 和 SNMPv2c 中,将使用社区字符串执行身份验证。社区字符串是包含一个或多个受管对象的命名空间。此身份验证形式无法保证 SNMP 代理与管理系统之间的通信安全。要确保环境中的 SNMP 通信安全,请使用 SNMPv3。

配置 SNMP 社区

要启用 ESXi SNMP 代理来发送和接收 SNMP v1 和 v2c 消息,您必须至少为代理配置一个社区。

SNMP 社区定义一组设备和管理系统。只有属于同一社区的设备和管理系统可以交换 SNMP 消息。设备或管理系统可以是多个社区的成员。

如果您通过 ESXCLI 运行 ESXCLI 命令,则必须提供可指定目标主机和登录凭据的连接选项。如果您直接在使用 ESXi Shell 的主机上使用 ESXCLI 命令,则可以使用所提供的命令,而无需指定连接选项。有关连接选项的详细信息,请参见《ESXCLI 概念和示例》

前提条件

使用 ESXCLI 命令配置 ESXi SNMP 代理。有关如何使用 ESXCLI 的详细信息,请参见《《ESXCLI 入门》》。

过程

  • esxcli system snmp set 命令与 --communities 选项一起运行可配置 SNMP 社区。
    例如,要配置公共、东部和西部网络操作中心社区,请运行以下命令:
    esxcli system snmp set --communities public,eastnoc,westnoc
    每次使用此命令指定社区时,您所指定的设置将覆写所有之前的配置。要指定多个社区,请用逗号分隔社区名称。

配置 SNMP 代理以发送 SNMP v1 或 v2c 通知

您可以使用 ESXi SNMP 代理将虚拟机和环境通知发送到管理系统。

要使用 SNMP 代理发送 SNMP v1/v2c 通知,则必须配置目标(接收方)单播地址、社区以及可选端口。如果不指定端口,则 SNMP 代理默认将陷阱发送到目标管理系统上的 UDP 端口 162。

要配置 SNMP v3 陷阱,请参见配置 SNMP v3 目标

如果您通过 ESXCLI 运行 ESXCLI 命令,则必须提供可指定目标主机和登录凭据的连接选项。如果您直接在使用 ESXi Shell 的主机上使用 ESXCLI 命令,则可以使用所提供的命令,而无需指定连接选项。有关连接选项的详细信息,请参见《ESXCLI 概念和示例》

前提条件

使用 ESXCLI 命令配置 ESXi SNMP 代理。有关如何使用 ESXCLI 的详细信息,请参见《《ESXCLI 入门》》。

过程

  1. esxcli system snmp set 命令与 --targets 选项一起运行:
    esxcli system snmp set --targets target_address@port/community
    其中, target_address 是目标系统的地址, port 是通知发送到的端口号,而 community 是社区名称。

    每次使用此命令指定目标时,您所指定的设置将覆写所有之前指定的设置。要指定多个目标,请用逗号分隔它们。

    例如,运行以下命令以配置目标 192.0.2.1@163/westnoc and 2001:db8::1@163/eastnoc:
    esxcli system snmp set --targets 192.0.2.1@163/westnoc,2001:db8::1@163/eastnoc
  2. (可选) 如果未启用 ESXi SNMP 代理,请运行以下命令:
    esxcli system snmp set --enable true
  3. (可选) 通过运行 esxcli system snmp test 命令发送测试陷阱,以验证是否正确配置了代理。
    代理将 warmStart 陷阱发送到配置的目标。