SNMP、OID 與 MIB:網絡監控的核心機制全解析
運籌優化(Operations Research Optimization)是數學和計算機科學的重要分支,廣泛應用于生產調度、物流配送、資源分配、投資組合等領域。Python作為數據科學的首選語言,提供了豐富而強大的優化庫。本文將系統介紹Python中最常用的運籌優化庫,幫助您選擇合適的工具解決實際問題。

1. SNMP 、OID 與 MIB 的關系
對象標識符(Object Identifier,OID) 是 SNMP代理提供的具有 唯一標識的鍵值,可保證對象在通信與信息處理中正確地定位和管理。 管理信息庫(MIB,Management Information Base) 是TCP/IP網絡管理協議標準框架的內容之一,MIB定義了受管設備必須保存的數據項、允許對每個數據項進行的操作及其含義, 即管理系統可訪問的受管設備的控制和 狀態信息等數據變量都保存在MIB中。
可以這樣理解:
概念 | 類比 |
MIB | 數據庫表結構(定義了指標名稱和類型) |
OID | 每個字段的唯一 ID |
SNMP | 用來訪問這些字段的協議 |
也就是說:
- MIB 是“說明書”
- OID 是“具體地址”
- SNMP 是“讀寫工具”

2. SNMP 是什么
SNMP(Simple Network Management Protocol)中文叫做簡單網絡管理協議,是 TCP/IP 協議族中用于管理和監控網絡設備的標準協議。
它的主要功能包括:
- 獲取設備狀態(CPU、內存、流量等)
- 修改設備配置
- 發送告警(如鏈路斷開、CPU 過載)
SNMP 是典型的 C/S 架構:
角色 | 功能 |
Manager(管理端) | 比如 Zabbix、Prometheus、Nagios,用來查詢或接收設備信息 |
Agent(代理端) | 運行在路由器、交換機、服務器上,負責提供數據 |
MIB(管理信息庫) | 存儲監控指標定義的“數據庫” |
OID(對象標識符) | 每個指標的唯一編號 |
SNMP 的基本工作流程:
(1) Manager 發送請求:
比如請求:“給我當前 CPU 使用率”
(2) Agent 從 MIB 中查找對應 OID
每個監控項都有唯一 OID
(3) Agent 返回數據給 Manager ? 比如返回 CPU 利用率 = 35%

3. MIB(管理信息庫)
概念:MIB(Management Information Base)是一個樹狀結構的數據庫,里面定義了設備可被管理的所有參數。
每一個 MIB 文件通常以 .mib 或 .txt 結尾,內容是一系列 變量定義 + OID + 類型。

例子(節選):

這表示:
- 系統描述信息 (sysDescr)
- 對應的 OID 是 { icmp 4 }
4. OID(對象標識符)
OID(Object Identifier)是用一串數字來唯一標識設備上的某個管理對象。
比如:
對象 | OID | 含義 |
sysDescr | 1.3.6.1.2.1.1.1 | 系統描述 |
sysUpTime | 1.3.6.1.2.1.1.3 | 設備運行時間 |
ifInOctets | 1.3.6.1.2.1.2.2.1.10 | 接口輸入字節數 |
ifOutOctets | 1.3.6.1.2.1.2.2.1.16 | 接口輸出字節數 |
這串數字其實對應 MIB 樹上的路徑,可以用命令查看如下:

使用 snmpwalk 獲取設備信息:
snmpwalk -v2c -c public 192.168.1.1 system只查詢某個 OID:
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.3.0常見 OID 分類(MIB-II 標準):
分類 | OID | 內容 |
system | 1.3.6.1.2.1.1 | 系統信息(描述、運行時間) |
interfaces | 1.3.6.1.2.1.2 | 網卡接口流量統計 |
ip | 1.3.6.1.2.1.4 | IP 層信息 |
tcp | 1.3.6.1.2.1.6 | TCP 連接狀態 |
udp | 1.3.6.1.2.1.7 | UDP 數據包統計 |
snmp | 1.3.6.1.2.1.11 | SNMP 協議自身統計 |



























