display snmp-agent statistics oid(不同版本命令可能略有差异,如 display snmp-agent trap statistics 等)。这个命令可以列出被请求次数最多的OID。SYSLOGD 进程也占用高CPU,检查控制器是否开启了极其详尽的日志收集功能(如Debug级别)。建议将日志级别调整为 Informational 或 Warning 以上,减少日志生成和上报的频率。1[H3C] acl basic 2000
2[H3C-acl-ipv4-basic-2000] rule permit source [SNA控制器IP] 0
3[H3C-acl-ipv4-basic-2000] rule deny source any
4[H3C] snmp-agent community read [你的团体名] acl 20001[H3C] snmp-agent mib-view included MyView iso
2[H3C] snmp-agent mib-view excluded MyView [异常OID的编号]
3[H3C] snmp-agent community read [你的团体名] mib-view MyView1[H3C] undo snmp-agent
2[H3C] snmp-agent
3[H3C] snmp-agent community read [你的团体名]
4# 重新配置必要的SNMP参数...
:你这个是典型的 SNA 控制器下发 SNMP 配置后,全网交换机被高频轮询 + 日志狂刷,导致 snmpd、syslogd 双进程占满 CPU(75%)。
下面给你 直接能在交换机上敲的排查 + 根治步骤,不用等、不用重启整网。
一、先确认问题(1 分钟检查)
在一台高 CPU 交换机上:
bash
运行
# 1. 看进程 CPU,确认是 snmpd、syslogd
display process cpu-usage
# 2. 看 SNMP 统计,是否疯狂请求
display snmp-agent statistics
display snmp-agent statistics oid
# 3. 看日志是否刷屏
display logbuffer reverse
典型现象:
snmpd、syslogd 各占 30%–40%
SNMP 每秒几十 / 几百次 Get/GetNext
日志大量 % SNMP-3-AUTHFAIL 或重复告警
二、为什么改完 SNMP 读写就爆 CPU(根因)
SNA 控制器重新加管理后,轮询变密
掉线再上线 → 控制器会 快速全量拉一遍所有 OID(端口、VLAN、ARP、路由、流量统计),接入交换机 CPU 弱,扛不住。
SNMP 配置放开过宽 + 无 ACL 限制
所有 IP 都能读 / 写 SNMP,甚至有扫描、试探请求,snmpd 一直处理报文。
syslog 级别太高 + 日志狂打
认证失败、端口 up/down、SNMP 告警全记,syslogd 一直写盘 / 上报。
接入交换机 CPU 性能低(硬伤)
S18/S36/S5120 这类,SNMP 一多直接 70%+。
三、立刻降 CPU(所有交换机批量执行)
1)只允许 SNA 控制器 IP 访问 SNMP(最关键)
bash
运行
system-view
# 1. 建 ACL,只放控制器 IP
acl basic 2000
rule permit source 10.x.x.x 0 # 填你 SNA 控制器 IP
rule deny source any
# 2. SNMP 读写都绑定 ACL
snmp-agent community read 你的只读团体名 acl 2000
snmp-agent community write 你的读写团体名 acl 2000
# 3. 关闭不必要的 SNMP 功能
undo snmp-agent trap enable # 非必要不上报告警
2)屏蔽高危 / 无用 OID(减少 CPU 消耗)
bash
运行
# 创建视图,只开放系统、接口等基础 OID
snmp-agent mib-view included VIEW_SNA iso
snmp-agent mib-view excluded VIEW_SNA 1.3.6.1.4.1.25506.2.1.1 # 例:H3C 私有大表
# 绑定到团体名
snmp-agent community read 你的只读团体名 mib-view VIEW_SNA
snmp-agent community write 你的读写团体名 mib-view VIEW_SNA
3)压制 syslog,不让日志刷屏
bash
运行
# 1. 日志级别降到 warning(默认可能是 info/debug)
info-center source default channel logbuffer level warning
# 2. 开启重复日志抑制(非常有效)
info-center logging suppress duplicates
# 3. 关闭 SNMP 认证失败日志(可选)
undo info-center source snmp channel logbuffer
4)重启 SNMP 进程(立刻释放 CPU)
bash
运行
undo snmp-agent
snmp-agent
snmp-agent community read 你的只读团体名 acl 2000
snmp-agent community write 你的读写团体名 acl 2000
执行完,CPU 一般 1–3 分钟内降到 20% 以下。
四、SNA 控制器侧也要改(不然过几天又爆)
降低轮询频率
端口 / 流量:5 分钟一次
设备状态:1 分钟一次
不要全量拉所有 OID
删除旧的无效管理节点
避免控制器同时用旧 IP、新 IP 双份轮询。
五、你可以直接复制的 “一键降 CPU” 脚本
bash
运行
system-view
acl basic 2000
rule permit source 10.x.x.x 0
rule deny source any
snmp-agent community read public acl 2000
snmp-agent community write private acl 2000
snmp-agent mib-view included VIEW_SNA iso
undo snmp-agent trap enable
info-center source default channel logbuffer level warning
info-center logging suppress duplicates
undo snmp-agent
snmp-agent
quit
save
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论