我很難理解在談論 SNMP 時使用的一些術語,特別是誰負責 MIB——代理或管理站。
讓我們來看一個簡單的場景:
- 我透過已知的 OID 監控我的 Linux 機器(例如 CPU 使用率)
- 當我發送 CPU 使用率 OID 的 SNMP 請求時,誰處理該請求 - 代理程式還是管理站?
- 如果所做的只是從 MIB 讀取數據,那麼代理在這裡的角色是什麼?
- 代理有用於 get 的同步 API,但如果我直接進入存儲,為什麼我有這個 get。
誰能幫助我理解這個簡單的 CPU OID 範例,那裡發生了什麼事?
答案1
實際上,這真的很簡單。
SNMP 代理程式運行在您想要管理的機器上,並且可以以任意方式從機器讀取(以及可能設定)資料(讀取條目/proc
、透過IPC 與進程通訊、從檔案讀取或任何其他人可以使用的方法)拿出來)。然後,它根據一個或多個定義檔(MIB)以結構良好的方式表示該資料。
然後管理站(或SNMP客戶端)可以與代理通信,根據該MIB從代理程式讀取(或設定)資料。
此外,一些代理程式(通常僅在管理站詢問時才採取行動)可以配置為在滿足某些條件時向管理站發送訊息以通知管理站。這稱為 SNMP 陷阱。
以CPU為例:
- Agent運作在機器上,可以讀取系統資料。
- 管理站是 CPU 負載 OID 的輪詢代理。
- 代理程式正在尋找如何取得此 OID 的數據,讀取資料點(CPU 負載)並將其傳送回管理站。