最近需要寫跟 snmp 相關的測試,就記錄一下囉
可以試試的工具
有關的 snmp server docker
colebrumley/net-snmp - Net-SNMP base image with Supervisor on CentOS
- 目前有測試過,可以使用
- 跑 snmptrap receiver 的方式,設定 UDP port mapping (port publish)
docker run -d --name trap_sink -p 1620:162/udp elcolio/net-snmp
- 送出 trap 來,設定需要的 ip & pprt
docker run --rm=true elcolio/net-snmp snmptrap -v 1 -c public DESTINATION .1.3.6.1.6.3 "" 0 0 coldStart.0
docker run --rm=true elcolio/net-snmp snmptrap -v 1 -c public 10.1.83.41:1620 .1.3.6.1.6.3 "" 0 0 coldStart.0
OpenNMS/opennms - container
net-snmp 的資料
- Net-SNMP - offical site
- net-snmp tutorial
接收 snmp trap 的方式
- colebrumley/net-snmp - 以這個為 base,調整為自己需要的 snmptrapd.conf
- 參考的 snmptrapd.conf
authCommunity log,execute,net public disableAuthorization yes traphandle public /usr/bin/python /usr/bin/snmptrap-parser.py
- OpensourceICTSolutions/zabbix-snmp-trap-parser - 用 python zabbix parser 來接收資料
- 參考的 net-snmp 文件
snmp 三個主要元件
- SNMP 管理者(SNMP Manager)
- 是 SNMP 的主要管理軟體,安裝於『網路管理系統』(Network Management System)上,它負責向所管轄的管理設備索取管理訊息,或設定網路組態,為 SNMP 管理環境的主要控制設備。
- SNMP 代理者(SNMP Agent)
- 一般安裝於被管理的網路設備上,例如,路由器、主機電腦、橋接器等。SNMP Agent 收集網路設備上訊息,再以 SNMP 通訊協定和 SNMP Manager 通訊,達到管理的目的。
- 被管理物件(Managed Object)
- 一般指被管理設備內之各種管理物件。例如,被管理之設備為橋接器,而其被管理物件為橋接器的有關設備,譬如,網路介面卡、緩衝器空間、過濾資料庫等等。被管理物件皆以『管理訊息結構』方式表達,且以樹狀識別碼(Tree Identified)方式,儲存於『管理訊息資料庫』(Management Information Base, MIB)上。
snmp 掃盲
- Simple Network Management Protocol
- 淺談簡單網路管理協定(SNMP)
- SNMP 教程
- SNMP 運作程序
- snmp trap入門
- SNMP 通訊藍本間功能與特色的差異 - pdf 資料
snmp default port
- 161 UTP port
- 來傳送及請求訊息
- 162 UTP port
- 接收來自待管裝置的trap訊息
檢查 udp port 是否有open
$ nc -zu 127.0.0.1 1610
$ nc -vz -u 127.0.0.1 162
- IT事件簿-我想測試UDP有沒有通怎麼辦?
- 如何檢測 Port 是否有活著 (TCP, UDP)
檢查有開哪些 port
sudo lsof -i -P -n | grep LISTEN
lsof -i -P -n
netstat -ntulp
- How to check if port is in use on Linux or Unix
python 相關的 snmp library
要小心的雷
- [snmptrapd] traphandle called twice
- snmptrapd 會去讀預設的 snmptrapd.conf,如果在執行中又下了
-c /etc/snmptrapd.conf
,就會讀兩次 conf 檔
- snmptrapd 會去讀預設的 snmptrapd.conf,如果在執行中又下了
同場加映
- CentOS + Supervisord Docker image - CentOS + Supervisord Docker image
- 先裝好 Supervisord 的 docker,之後的服務可以用此為 base image
- colebrumley/net-snmp 就是以此方式建立的
- TCP/IP 協定與 Internet 網路
- 翻轉工作室