# 交换机 SNMP 监控 ## 场景 要把交换机的 CPU、内存、端口流量、端口 up/down 接进 Zabbix。 ## 前置条件 - 交换机管理 IP 能通 - 知道要监控的交换机型号(决定用哪个模板) - 规划一个只读 community 字符串 ## 配置 ### H3C ```text system-view snmp-agent snmp-agent sys-info version v2c snmp-agent community read 只读字符串 snmp-agent target-host trap address udp-domain 10.0.0.10 params securityname 只读字符串 v2c quit ``` ### 华为 ```text system-view snmp-agent snmp-agent sys-info version v2c snmp-agent community read 只读字符串 snmp-agent target-host trap-hostname zbx address 10.0.0.10 udp-port 162 trap-paramsname zbx quit ``` ## 验证 在监控服务器上: ```bash snmpwalk -v2c -c 只读字符串 10.0.0.1 sysDescr.0 snmpwalk -v2c -c 只读字符串 10.0.0.1 1.3.6.1.2.1.2.2.1.8 # 端口状态 snmpwalk -v2c -c 只读字符串 10.0.0.1 1.3.6.1.2.1.1.3 # 运行时长 ``` 有输出说明通;`Timeout` 说明 ACL 或 community 不对。 ## 回滚 ```text undo snmp-agent ``` ## 坑 - **ACL 把监控服务器挡了**,交换机上要 `snmp-agent acl` 放行。 - community 用默认的 `public`,等于把设备信息公开。 - v3 更安全但配起来麻烦,内网先用 v2c + ACL 限制源 IP。 - 端口流量是累计值(Counter),Zabbix 会做差值,重启设备会掉一段。 - 不同型号的 CPU/内存 OID 不一样,别直接套别的模板。 - trap 的 162/udp 要放行,否则只能轮询、不能主动告警。