SNMP、OID 與 MIB:網(wǎng)絡(luò)監(jiān)控的核心機(jī)制全解析
運(yùn)籌優(yōu)化(Operations Research Optimization)是數(shù)學(xué)和計(jì)算機(jī)科學(xué)的重要分支,廣泛應(yīng)用于生產(chǎn)調(diào)度、物流配送、資源分配、投資組合等領(lǐng)域。Python作為數(shù)據(jù)科學(xué)的首選語(yǔ)言,提供了豐富而強(qiáng)大的優(yōu)化庫(kù)。本文將系統(tǒng)介紹Python中最常用的運(yùn)籌優(yōu)化庫(kù),幫助您選擇合適的工具解決實(shí)際問(wèn)題。

1. SNMP 、OID 與 MIB 的關(guān)系
對(duì)象標(biāo)識(shí)符(Object Identifier,OID) 是 SNMP代理提供的具有 唯一標(biāo)識(shí)的鍵值,可保證對(duì)象在通信與信息處理中正確地定位和管理。 管理信息庫(kù)(MIB,Management Information Base) 是TCP/IP網(wǎng)絡(luò)管理協(xié)議標(biāo)準(zhǔn)框架的內(nèi)容之一,MIB定義了受管設(shè)備必須保存的數(shù)據(jù)項(xiàng)、允許對(duì)每個(gè)數(shù)據(jù)項(xiàng)進(jìn)行的操作及其含義, 即管理系統(tǒng)可訪問(wèn)的受管設(shè)備的控制和 狀態(tài)信息等數(shù)據(jù)變量都保存在MIB中。
可以這樣理解:
概念 | 類比 |
MIB | 數(shù)據(jù)庫(kù)表結(jié)構(gòu)(定義了指標(biāo)名稱和類型) |
OID | 每個(gè)字段的唯一 ID |
SNMP | 用來(lái)訪問(wèn)這些字段的協(xié)議 |
也就是說(shuō):
- MIB 是“說(shuō)明書(shū)”
- OID 是“具體地址”
- SNMP 是“讀寫(xiě)工具”

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

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

例子(節(jié)選):

這表示:
- 系統(tǒng)描述信息 (sysDescr)
- 對(duì)應(yīng)的 OID 是 { icmp 4 }
4. OID(對(duì)象標(biāo)識(shí)符)
OID(Object Identifier)是用一串?dāng)?shù)字來(lái)唯一標(biāo)識(shí)設(shè)備上的某個(gè)管理對(duì)象。
比如:
對(duì)象 | OID | 含義 |
sysDescr | 1.3.6.1.2.1.1.1 | 系統(tǒng)描述 |
sysUpTime | 1.3.6.1.2.1.1.3 | 設(shè)備運(yùn)行時(shí)間 |
ifInOctets | 1.3.6.1.2.1.2.2.1.10 | 接口輸入字節(jié)數(shù) |
ifOutOctets | 1.3.6.1.2.1.2.2.1.16 | 接口輸出字節(jié)數(shù) |
這串?dāng)?shù)字其實(shí)對(duì)應(yīng) MIB 樹(shù)上的路徑,可以用命令查看如下:

使用 snmpwalk 獲取設(shè)備信息:
snmpwalk -v2c -c public 192.168.1.1 system只查詢某個(gè) OID:
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.3.0常見(jiàn) OID 分類(MIB-II 標(biāo)準(zhǔn)):
分類 | OID | 內(nèi)容 |
system | 1.3.6.1.2.1.1 | 系統(tǒng)信息(描述、運(yùn)行時(shí)間) |
interfaces | 1.3.6.1.2.1.2 | 網(wǎng)卡接口流量統(tǒng)計(jì) |
ip | 1.3.6.1.2.1.4 | IP 層信息 |
tcp | 1.3.6.1.2.1.6 | TCP 連接狀態(tài) |
udp | 1.3.6.1.2.1.7 | UDP 數(shù)據(jù)包統(tǒng)計(jì) |
snmp | 1.3.6.1.2.1.11 | SNMP 協(xié)議自身統(tǒng)計(jì) |



























