1. 程式人生 > >系統監控之SNMP協議理解

系統監控之SNMP協議理解

使用Mycat分散式資料庫中介軟體時需要對各個效能指標進行監控,官方已經提供了一個監控軟體,於是討論起來監控是怎麼具體可能有哪些實現,雖然知道已經有很多的監控軟體可以使用,比如zabbix,但是今天聽同事說有一個叫做SNMP的協議,是專門用在環境監控方面的,回頭一查發現這竟然是行業標準,而且zabbix也是基於這個協議實現的,本著不折騰不舒服的精神,調查了一番總結如下,主要分成兩個部分:

  • snmp協議的內容總結;
  • 通過程式設計獲取snmp協議中傳遞的資訊;

本文主要著重在snmp協議的內容以及具體的結構,下一篇會通過Java 來獲取snmp中傳遞的資訊。

snmp已經發展出了三個版本,由於本文只是做一個總結,所以不涉及版本資訊。

1. snmp協議的應用場景

snmp的中文名是簡單網路管理協議,是Simple Network Management Protocol的簡稱,而且是一個應用層協議,等於和http是平級,但是差別咋就這麼大呢?什麼用處呢?用來在網路實體和節點之間交換管理或者監控資訊,這是官方說法。簡單點來說就是打小報告的,只不過這裡打小報告的是程式而不是人,被報告的是機器或者作業系統而不是人。

為什麼用這個東西?簡單來說,就是為了方便偷懶,當開始時一個公司中的計算機不是很多,運維人員還可以一個一個去檢視是什麼問題,但是如果一家公司的計算機有成百上千臺,還能去一個一個看嗎?當然不能了,說能的人出門右轉是精神病院,這也不是跑馬拉松,沒有必要這麼鍛鍊,所以這個協議應運而生,想一想自己坐在辦公室,一邊看著各個計算機和伺服器給你發來的監控資訊,一邊撩著妹子,感覺是不是很爽(發明這個協議的人當初是不是也當過單身狗),而且只要預先部署好,伺服器出什麼問題還會報警,這簡直是運維人員的福利呀!!

2. snmp的具體內容

2.1 snmp的組成

在snmp中一般來說由三種元件組成:

  • 網路裝置:指在網路中需要管理和監控的裝置,例如提供服務的伺服器、路由器等,這些裝置必須支援snmp協議;
  • 管理元件:一般來說指的是執行網路管理系統的計算機(也可以指在這個計算機上執行的監控軟體),這個計算機可能與被管理的網路裝置在地理上隔絕的,但是可以遠端監控和管理網路裝置,例如網咖的網管的電腦就可以看做一個管理元件,可以用來監控每個電腦的執行,以及管理你上網的時間並提出預警;
  • 代理Agent:這是指執行在被管理裝置上的一個軟體模組,用來維護被管理裝置的管理資訊資料並可在需要時把管理資料傳送給管理元件;
    • 代理保有MIB(Management Information Base)物件變數,可以從管理資訊庫MIB收集資訊並回傳給管理元件
    • MIB庫是一個儲存網路管理資訊的虛擬資料儲存空間,由多組被管理物件組成。在網路裝置的MIB庫中有由多個MIB模組定義的多組各自相關聯的物件,其實說白了裡面儲存的是網路裝置的屬性,比如什麼CPU資訊、IO讀寫率等等;

2.2 snmp中元件之間的通訊

2.2.1 snmp的通訊協議和資料格式

首先要明確的是snmp協議是應用層協議,所以它的通訊底層實現還是要靠TCP協議或者UDP協議,至於使用的是哪一種協議?就要思考一下snmp的應用場景,它是用來進行監控的,要不影響其他任務的執行,所以最好要簡單一些並且效率高一些,那麼這就是UDP協議了,而且還省去了握手的麻煩!

由於UDP協議是把資料打包成一個一個的資料報傳送出來,那麼具體的監控資訊是怎樣打包到其中的呢?這就涉及到元件之間通訊的訊息格式。管理元件與Agent代理之間以協議資料單元PDU(Protocol Data Unit,PDU)進行通訊,資料在進行網路傳輸前必須進行分塊和封裝,在SNMP資訊傳輸的過程中,資料首先會被封裝成PDU,PDU再被UDP協議封裝進行傳輸。具體的資料格式是什麼樣的,參考相關文章中的第一篇。

2.2.2 snmp的通訊過程

snmp是一個請求/響應式的協議,它的通訊過程有三種:

  • 請求(讀get)資料:管理元件發起請求讀取變數,Agent代理返回從MIB中讀取的變數資料;
    • get請求:用以從agent上獲取指定OID(可以理解為裝置屬性的Id)對應的一條或多條值;
    • get-next請求:與get類似,最明顯的區別是GETNEXT獲取指定OID在系統樹中所處位置的下一個OID,在snmp協議中被管理物件用一個樹來組織,被管理物件用OID表示;

  • 修改(寫set)資料:管理元件發起請求通過Agent代理來修改網路裝置上的一些配置值;

  • 報警獲取資料(trap):Agent代理使用trap向管理元件發出請求,用來報告網路裝置上的一個異常情況以便管理元件能夠知曉,類似於事件的回撥函式;

相關文章:

相關推薦

系統監控SNMP協議理解

使用Mycat分散式資料庫中介軟體時需要對各個效能指標進行監控,官方已經提供了一個監控軟體,於是討論起來監控是怎麼具體可能有哪些實現,雖然知道已經有很多的監控軟體可以使用,比如zabbix,但是今天聽同事說有一個叫做SNMP的協議,是專門用在環境監控方面的,回頭

Grafana+Prometheus系統監控webhook

tps pan {} 高效 mixed eval eid 建立 eth 概述 Webhook是一個API概念,並且變得越來越流行。我們能用事件描述的事物越多,webhook的作用範圍也就越大。Webhook作為一個輕量的事件處理應用,正變得越來越有用。 準確的說webhoo

網路協議SNMP協議(二)—— 管理資訊庫MIB及OID

       上篇文章提到一套完整的SNMP系統主要包括管理資訊庫(MIB)、管理資訊結構(SMI)及SNMP報文協議。        本篇我們來學習管理資訊庫(MIB) 一、管理資訊庫MIB        任何一個被管理的資源都表示成一個物件,稱為被管理的物件。MIB是

JMX實現遠端伺服器Tomcat系統監控

前面兩篇JMX遠端監控Tomcat伺服器是沒配置密碼的,下面介紹在Tomcat監控時配置使用者密碼。 具體Tomcat地址:http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html#Enabling_JMX_Rem

運維筆記40 Linux系統監控Cacti(Cacti搭建,自動抓取cacti統計圖片指令碼)

概述:監控系統在一個系統中十分重要,它會將很多重要的資訊,諸如記憶體資訊,cpu資訊,硬碟資訊集合在一起顯示出來,當系統出現問題的時候我們能及時定位並修復錯誤。今天介紹的監控系統是一款輕量級的監控系統Cacti,並附有python編寫的cacti統計圖片採集指令

網路協議SNMP協議(一)——SNMP報文協議

    (前言:最近工作中遇到大量的網路協議開發,現就其中一些網路協議的基礎知識進行整理,文中借鑑了一些大神的整理,後面會貼上鍊接,如侵刪)        簡單網路管理協議(SNMP)是TCP/IP協議簇的一個應用層協議。在1988年被制定,並被Internet體系結構委員

網絡管理SNMP協議

服務器 strong pub gen 相關 點擊 服務 onf 底部 SNMP(simple network management protocol ,簡單網絡管理協議)是網絡管理程序(NMS)和代理程序(Agent)之間的通信協議。它規定了在網絡環境中對設備進行管

手動部署 Docker+Grafana+Prometheus系統監控Redis

監控規劃圖 使用Docker 建立兩臺Redis docker run -d --name redis1 redis docker run -d --name redis2 redis 檢視redis的部署地址 docker inspect (docker ps -a | grep redis | awk

SNMP協議實現系統監控

系統監測的基本概念及分類: a.系統監測的概述: 如何對現有IT架構的整體以及細節執行情況進行科學、系統和高效地監測是目前各企業運維和管理部門一項非常重要的工作內容。隨著當前企業IT環境中伺服器、應用數量和型別的不斷地增加,運維部門需要通過科學和高效的手段儘可能詳細、實時

Day 7 Linux系統監控、硬盤分區等

char 實時 系統監控 份額 chan 標準 lock mkfs.ext4 登錄 Linux之系統監控、硬盤分區等 系統監控 系統監視和進程控制工具—top和free 1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能夠實時顯示

zabbix-3.2.6snmp監控(無需安裝agent也能監控)

6.0 send 是否 available 安全 scroll sna object 2.2.0 一、snmp監控介紹 概述 如果我們需要監控打印機、路由器、UPS等設備,肯定不能使用zabbix agentd,因為他們不能安裝軟件的,還好他們一般都支持SNMP協議,這

zabbix-3.2.6snmp方式監控windows

pfx name local ima div pan mask bit 成功 一、在windows中添加snmp 在服務中添加public和接受服務器的IP地址。 二、在zabbix-server服務器中安裝net-snmp軟件 1、修改配置文件

硬件層監控Zabbix-snmp-trap企業級實戰

硬件層監控監控對象: 服務器存儲交換機路由器防洪墻 監控數據采集方法: SNMP trap 目前我監控以下的硬件信息:1、cpu處理器狀態2、cpu省電模式狀態(如果開啟了省電模式,在壓力大的時候,會很卡的)3、raid狀態(比如做了哪個raid模式,raid狀態是否正常)4、內存狀態(可以查看當前

Zabbix(五):高級應用-web方案、被動監控、基於snmp協議被動監控、proxy配置測試實例

zabbix proxy1.web方案web scenario:web監控方案,web場景;web scenarios指的是監控指定的web站點的資源下載及頁面響應時間等數據指標;(1)創建web監控需要先定義一個web scenario(方案):一個web方案包括一個或多個HTTP請求或步驟(steps)

【linux進程管理,系統監控

kill -9 每隔一秒 exist 物理內存 基於 openbsd inpu ocs pid 一、進程管理 前臺進程:一般是指占據著標準輸入和/或標準輸出的進程後臺進程:不占據默認開啟的進程都是前臺進程ctrl+C 中斷ctrl+z 從前臺轉入後臺bg 後臺進程編號 讓

系統安全數據的加密和解密、CA的介紹、SSL或TLS協議簡介及握手過程

網絡運維 網絡通信需要安全 所謂的網絡通信就是進程與進程之間的通信 然而進程的通信一般可以分成兩類:1、同一主機之間的進程通信

網絡協議SNMP(一)

SNMP之前剛到公司的時候學習了一些基礎的網絡協議。最近測試存儲平臺產品的時候,又遇到一個特性就是存儲平臺這邊與第三方網管平臺的SNMP連接功能,存儲集群收集告警信息,一方面可以通過集群這邊自己的郵件告警到對應的管理員郵箱,另外一個方面就是通過SNMP協議來trap告警信息到網管管理平臺或者相應網管管理平臺的

SNMP 和 NetBios協議理解

原文連結地址https://www.cnblogs.com/hilow/p/3737695.html 一、簡單網路管理協議(SNMP,Simple Network Management Protocol)構成了網際網路工程工作小組(IETF,Internet Engineering Task Force)定

深入理解計算機系統筆記第二章(一)

資訊的表示和處理(一) 大多數計算機使用8位的塊(也就是一個位元組byte),由此可以看到32位(4個位元組)系統和64位(8個位元組)系統的區別。32位系統在於cpu可以同時處理4個位元組(32位)的資料,那麼64位系統cpu可以同時處理8個位元組(64位)的資料。 一個

結合Wireshark捕獲分組深入理解TCP/IP協議HTTP協議

原文地址:結合Wireshark捕獲分組深入理解TCP/IP協議棧之HTTP協議 作者:Jelline 摘要:     本文簡單介紹了Web應用層協議理論知識,詳細講述了HTTP請求報文和響應報文各個欄位含義,並從Wireshark俘獲分組中選取HTT