Runbook: SNMP polling が timeout する¶
実行前提
systemctl restart snmp は ax_impl と net-snmp の両方を一度落とすため、監視サーバ側でアラートが出る。事前に監視窓を確保し、sudo cp /etc/sonic/config_db.json /etc/sonic/config_db.json.bak.$(date +%s) を取得。問題悪化時は backup 戻し + systemctl restart snmp。
症状¶
- NMS (Zabbix / SNMPc 等) からの polling が timeout
snmpwalk -v2c -c <com> <ip>が hang- 特定 OID のみ重い(IF-MIB::ifTable で時間がかかる)
想定原因(優先度順)¶
sonic_ax_implの hang: COUNTERS_DB poll で blocking- ACL / management interface で SNMP port (161/udp) が遮断
- community / SNMPv3 認証ミス: net-snmp 側で reject
- 大規模 port 数 (256+) でテーブル取得が遅い
- snmp container の CPU 飽和
切り分け手順¶
flowchart TD
A[SNMP polling が timeout] --> B{snmp container 起動?}
B -- No --> B1[feature snmp enable]
B -- Yes --> C{community / source ACL 一致?}
C -- No --> C1[SNMP_COMMUNITY / SNMP_AGENT_ADDRESS_CONFIG 修正]
C -- Yes --> D{snmpd CPU 高負荷?}
D -- Yes --> D1[OID 数削減 / polling 間隔を緩和]
D -- No --> E[NW 経路 / MTU を確認]
確認コマンド¶
1. host 側 reachability¶
2. 簡易 walk¶
snmpwalk -v2c -c public <mgmt_ip> system
snmpwalk -v2c -c public <mgmt_ip> IF-MIB::ifDescr
time snmpbulkwalk -v2c -c public <mgmt_ip> IF-MIB::ifTable
3. container 状態¶
4. ax_impl の MIB extension¶
5. ACL¶
対処方法¶
- container 再起動:
sudo systemctl restart snmp - community 設定確認:
sonic-db-cli CONFIG_DB hgetall "SNMP_COMMUNITY|public" - 大規模環境:
snmpbulkwalkへの切り替えを NMS 側に依頼 - SNMPv3 はまず snmpv3-auth-failure.md を確認
関連ページ¶
引用元¶
-
sonic-net/sonic-snmpagent @ 4305596 — ax_impl ↩
-
sonic-net/sonic-buildimage @ 4305596 — docker-snmp config ↩