女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

SNMP協(xié)議在設備監(jiān)控中的使用

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2025-06-27 11:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著網(wǎng)絡技術(shù)的飛速發(fā)展,網(wǎng)絡管理變得日益重要。網(wǎng)絡管理員需要一種高效、可靠的方式來監(jiān)控網(wǎng)絡設備、收集狀態(tài)信息并對其進行配置。簡單網(wǎng)絡管理協(xié)議(SNMP)正是為此目的而設計的。本文將對SNMP進行詳細介紹,并提供使用SNMP進行網(wǎng)絡管理的基本指南。

1.簡介

SNMP(Simple Network Management Protocol)是一個基于互聯(lián)網(wǎng)協(xié)議族(IP)的網(wǎng)絡管理標準,用于在IP網(wǎng)絡中的管理節(jié)點與被管理節(jié)點之間進行通信,以實現(xiàn)對網(wǎng)絡設備的遠程監(jiān)控和管理。SNMP具有簡單、高效、易于實現(xiàn)和擴展性強等優(yōu)點,因此在網(wǎng)絡管理領域得到了廣泛應用。

2.SNMP的組成和版本

2.1.SNMP協(xié)議的組成

SNMP協(xié)議架構(gòu)主要包括以下幾個部分:

wKgZO2heFJeALSFMAAHIRoxbf_Y301.png

??

1.管理信息庫(MIB):MIB是一個信息數(shù)據(jù)庫,用于存儲被管理設備的信息,如設備類型、接口狀態(tài)、路由表等。MIB是SNMP的核心,管理站通過SNMP協(xié)議獲取MIB中的信息,以實現(xiàn)對網(wǎng)絡設備的監(jiān)控和管理。

2.管理站(NMS):NMS是網(wǎng)絡管理系統(tǒng)中的核心組件,負責收集、處理和存儲來自被管理設備的信息。NMS通常運行在網(wǎng)絡管理中心的服務器上,通過網(wǎng)絡管理軟件實現(xiàn)對網(wǎng)絡設備的遠程監(jiān)控和管理。

3.代理(Agent):Agent是被管理設備上的軟件模塊,負責接收NMS的查詢請求,并返回MIB中的相關信息。同時,Agent還可以將設備的狀態(tài)變化通知給NMS。

2.2.SNMP協(xié)議版本

目前SNMP協(xié)議有三個版本,分別是:V1、V2和V3

?V1:SNMP協(xié)議的最初版本

?V2:在V1的基礎上增加community(團體名),這里的團體名可以理解為密碼

?V3:增加認證和對密文的傳輸?shù)闹С郑@種方式安全等級最高

3.SNMP報文

wKgZPGheFJmAE32zAAAKGyHuD1A140.png

??

SNMP報文包含三個部分

?版本號:表明當前使用的版本,管理站和代理之間的版本號必須相同才能通信

?團體名:團體(community)是基本的安全機制,用于實現(xiàn)SNMP網(wǎng)絡管理員訪問SNMP管理代理時的身份驗證,類似于密碼,默認值為 public。團體名(Community name)是管理代理的口令,管理員被允許訪問數(shù)據(jù)對象的前提就是網(wǎng)絡管理員知道網(wǎng)絡代理的口令。

?PDU:snmp的數(shù)據(jù)結(jié)構(gòu)

3.1.PDU詳細報文

wKgZO2heFJqAXX-cAAAZRvCHvmY485.jpg

??

3.2.PDU類型

?get-request:從代理(本質(zhì)上是設備)獲取一個或多個參數(shù)值

?get-next-request:從代理緊接著取出下一個參數(shù)值

?set-request:設置代理一個或多個參數(shù)值

?get-response:對上述三種請求的響應

?trap:設備主動上報的數(shù)據(jù)

3.3.差錯狀態(tài)

?noError:無錯誤

?tooBig:代理無法將回答裝入到一個SNMP報文中

?noSuchName:操作指明了一個不存在的變量

?badValue:一個set操作指明了一個無效值或無效語法

?readOnly:管理進程試圖修改一個只讀變量

?genErr:某些其他差錯

3.4.trap類型

?coldStart:代理進行了初始化

?warmStart:代理進行了重新初始化

?linkDown:一個接口從工作狀態(tài)變?yōu)楣收蠣顟B(tài)

?linkUp:一個接口從故障狀態(tài)變?yōu)楣ぷ鳡顟B(tài)

?authenticationFailure:從SNMP管理進程接收到具有一個無效共同體的報文

?egpNeighborLoss:一個EGP相鄰路由器變?yōu)楣收蠣顟B(tài)

?enterpriseSpecific:代理自定義事件,需要用后面的“特定代碼”來指明

4.MIB詳解

4.1.MIB樹結(jié)構(gòu)

MIB以樹狀結(jié)構(gòu)進行存儲,樹的葉子節(jié)點表示管理對象,它可以通過從根節(jié)點開始的一條惟一路徑來識別,這也就是OID(Object Identifier)。

wKgZPGheFJqAYBHhAAAr5BO9Byk041.jpg

OID是由一些系列非負整數(shù)組成,用于唯一標識管理對象在MIB樹中的位置。由SMI來保證OID不會沖突。

MIB文件一旦發(fā)布,OID就和被定義的對象綁定,不能修改。MIB節(jié)點不能被刪除,只能將它的狀態(tài)置為“obsolete”,表明該節(jié)點已經(jīng)被廢除。

在上圖的樹形結(jié)構(gòu)中,mgmt對象可以標識為:{ iso(1) org(3) dod(6) internet(1) mgmt(2) },簡單標記為:1.3.6.1.2,這種標識就叫做OID。

NMS通過OID引用Agent中的對象。

4.2.MIB分類

MIB可以分為公有MIB和私有MIB兩種。

?公有MIB:一般由RFC定義,主要用來對各種公有協(xié)議進行結(jié)構(gòu)化設計和接口標準化處理。大多數(shù)的設備制造商都需要按照RFC的定義來提供SNMP接口。

?私有MIB:是公有MIB的必要補充,當公司自行開發(fā)私有協(xié)議或者特有功能時,可以利用私有MIB來完善SNMP接口的管理功能,同時對第三方網(wǎng)管軟件管理存在私有協(xié)議或特有功能的設備提供支持。

網(wǎng)絡設備的很多數(shù)據(jù)都以MIB的樹結(jié)構(gòu)存儲,根據(jù)數(shù)據(jù)對應的OID,我們便可以獲取到網(wǎng)絡設備的各種統(tǒng)計數(shù)據(jù)和配置數(shù)據(jù),實現(xiàn)網(wǎng)絡設備的監(jiān)控。

5.SNMP實踐

5.1.snmp命令

5.1.1.snmpwalk

用于獲取 SNMP 設備上的數(shù)據(jù),它遍歷設備的 SNMP 樹,并返回特定對象標識符(OID)的值,通常用于查詢設備的信息和狀態(tài)。使用 snmpwalk 可以獲取有關設備的詳細信息,例如接口、系統(tǒng)信息、傳感器狀態(tài)等。以下是 snmpwalk 的一般用法:

snmpwalk -v SNMP_VERSION -c COMMUNITY_STRING TARGET_HOST OID
SNMP_VERSION:SNMP 版本,通常是 "1"(SNMPv1)或 "2c"(SNMPv2c)。
COMMUNITY_STRING:SNMP 社區(qū)字符串,用于身份驗證。
TARGET_HOST:目標設備的主機名或 IP 地址。
OID:要查詢的對象標識符。

5.1.2.snmptrap

snmptrap 用于生成和發(fā)送 SNMP 陷阱(trap)到 SNMP 管理器,這些陷阱通常表示設備上發(fā)生的重要事件或告警。snmptrap 常用于監(jiān)控設備狀態(tài)變化和異常事件。以下是 snmptrap 的一般用法:

snmptrap -v SNMP_VERSION -c COMMUNITY_STRING TARGET_HOST TRAP_OID [OID_VALUE] [OPTIONS]
SNMP_VERSION:SNMP 版本,通常是 "1"(SNMPv1)或 "2c"(SNMPv2c)。
COMMUNITY_STRING:SNMP 社區(qū)字符串,用于身份驗證。
TARGET_HOST:目標 SNMP 管理器的主機名或 IP 地址。
TRAP_OID:陷阱的對象標識符,表示事件類型。
OID_VALUE:可選,與陷阱相關的 OID 值。
OPTIONS:可選,包括發(fā)送陷阱的其他選項,如 -p(指定陷阱端口)等。

5.1.3.snmpget

用于獲取單個 SNMP 對象的值。你可以指定要查詢的 OID,它將返回相應的值。

snmpget -v SNMP_VERSION -c COMMUNITY_STRING TARGET_HOST OID

snmpget -v SNMP_VERSION -c COMMUNITY_STRING TARGET_HOST OID

5.1.4.snmpset

用于設置 SNMP 對象的值。它允許你修改設備上的特定 OID 的值。

snmpset -v SNMP_VERSION -c COMMUNITY_STRING TARGET_HOST OID TYPE VALUE

5.1.5.snmpbulkwalk

類似于 snmpwalk,但它使用了 SNMP Bulk Protocol(SNMPv2c)來提高效率,特別對于大型數(shù)據(jù)集。

snmpbulkwalk -v SNMP_VERSION -c COMMUNITY_STRING TARGET_HOST OID

5.1.6.snmpinform

用于向 SNMP 管理器發(fā)送 SNMP INFORM 消息,這是一種更可靠的通知機制,它需要管理器進行確認。

snmpinform -v SNMP_VERSION -c COMMUNITY_STRING TARGET_HOST OID

在網(wǎng)絡設備信息采集中,我們通常會通過snmpget和snmpwalk命令獲取網(wǎng)絡設備的各種運行和配置數(shù)據(jù)。

5.2.代碼實現(xiàn)

基于以上知識,我們考慮通過代碼的方式執(zhí)行snmp命令,獲取設備的基本信息,實現(xiàn)設備的自動化監(jiān)控。本文所有案例都基于Java語言,其余語言類似。

5.2.1.引入依賴

如下所示,我們引入snmp的依賴:


   org.snmp4j
   snmp4j
   2.7.0

5.2.1.代碼實現(xiàn)

public class SnmpUtils {
    
    /**
     * 根據(jù)oid獲取數(shù)據(jù)
     * @param ip
     * @param community
     * @param oid
     * @return
     */
    @SneakyThrows
    public static void snmpGet(String ip, String community, String oid) {

        Snmp snmp = null;
        try {

            snmp = new Snmp(new DefaultUdpTransportMapping()); // 構(gòu)造一個UDP
            snmp.listen(); // 開始監(jiān)聽snmp消息

            CommunityTarget target = new CommunityTarget();
            target.setCommunity(new OctetString(community));// snmpv2的團體名
            target.setVersion(SnmpConstants.version2c); // snmp版本
            target.setAddress(new UdpAddress(ip));
            target.setTimeout(1000); // 時延
            target.setRetries(2); // 重傳

            PDU pdu = new PDU();
            pdu.setType(PDU.GET);
            pdu.addOID(new VariableBinding(new OID(oid)));

            ResponseEvent responseEvent = snmp.get(pdu, target);
            PDU response = responseEvent.getResponse();
            Vector bindings = response.getVariableBindings();
            bindings.forEach(item ->{
                System.out.println(String.format("OID為:%s的值為:%s", item.getOid().toDottedString(), item.getVariable().getSyntaxString()));
            });

        }finally {
            if (snmp != null) {
                snmp.close();
            }
        }
    }

    /**
     * 根據(jù)oids獲取數(shù)據(jù)
     * @param ip
     * @param community
     * @return
     */
    @SneakyThrows
    public static void getTable(String ip, String community, List oidList)
    {
        Snmp snmp = null;
        LinkedHashMap> resMap = new LinkedHashMap();
        try {

            snmp = new Snmp(new DefaultUdpTransportMapping()); // 構(gòu)造一個UDP
            snmp.listen(); // 開始監(jiān)聽snmp消息

            CommunityTarget target = new CommunityTarget();
            target.setCommunity(new OctetString(community));// snmpv2的團體名

            target.setVersion(SnmpConstants.version2c); // snmp版本

            target.setAddress(new UdpAddress(ip));
            target.setTimeout(1000); // 時延
            target.setRetries(2); // 重傳

            TableUtils utils = new TableUtils(snmp, new DefaultPDUFactory(
                    PDU.GETNEXT));// GETNEXT or GETBULK
            utils.setMaxNumRowsPerPDU(109); // only for GETBULK, set max-repetitions, default is 10

            utils.setCheckLexicographicOrdering(false);

            OID[] oids = oidList.stream().filter(StringUtils::isNotBlank).map(OID::new).toArray(OID[]::new);

            List table = utils.getTable(target, oids, null, null);
            table.forEach(item ->{
                for (VariableBinding column : item.getColumns()) {
                    System.out.println(String.format("當前的oid為:%s,結(jié)果為:%s", column.getOid().toDottedString(), column.getVariable().getSyntaxString()));
                }
            });
        }finally {
            if (snmp != null) {
                snmp.close();
            }
        }
    }
}

其中snmpGet方法對應snmpget命令,snmpWalk方法對應snmpwalk命令。

6.總結(jié)

本文開篇即對SNMP(簡單網(wǎng)絡管理協(xié)議)的基本概念與核心構(gòu)成進行了全面闡述,緊接著深入剖析了SNMP命令在實際網(wǎng)絡管理場景中的具體應用。在文章的最后部分,通過Java編程語言的實踐應用,本文成功展示了SNMP命令的實現(xiàn)過程。對SNMP協(xié)議的深入理解與掌握,無疑將為網(wǎng)絡設備的數(shù)據(jù)監(jiān)控及多元化自動化管理提供有力支持,進而顯著提升網(wǎng)絡運維的工作效率。


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SNMP
    +關注

    關注

    0

    文章

    91

    瀏覽量

    30291
  • 設備監(jiān)控

    關注

    0

    文章

    16

    瀏覽量

    6332
  • 京東云
    +關注

    關注

    0

    文章

    177

    瀏覽量

    139
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    IDC機房設備監(jiān)控SNMP協(xié)議獲取設備信息

    SNMP
    深圳市金鴿科技有限公司
    發(fā)布于 :2023年03月02日 19:52:49

    snmp協(xié)議抓包分析

    snmp 協(xié)議,下圖的情況不解,程序怎么控制,詢問你一此,應答一次;圖中確實連續(xù)詢問三次,連續(xù)應答不三次。希望能幫我解決下
    發(fā)表于 03-03 15:37

    Labview監(jiān)控帶有snmp網(wǎng)卡設備有沒有問題?

    想用Labview監(jiān)控帶有snmp網(wǎng)卡的設備協(xié)議是TCP/IP.設備給出了MIB文件(管理信息庫(MIB)是TCP/IP網(wǎng)絡管理
    發(fā)表于 06-15 09:22

    用LWIP的SNMP監(jiān)控嵌入式設備

    各位大神: 最近要搞一個項目,用LWIP的SNMP監(jiān)控嵌入式設備,對ucos和lwip還算熟悉,但對snmp一頭霧水,請搞過snmp的大神指
    發(fā)表于 03-24 04:35

    SNMP協(xié)議WAGO工業(yè)以太網(wǎng)系統(tǒng)的應用是什么?

    SNMP管理網(wǎng)絡由哪些部分組成?SNMP協(xié)議WAGO工業(yè)以太網(wǎng)系統(tǒng)的應用是什么?
    發(fā)表于 05-20 06:46

    AN_基于FreeRTOS+LwIP的SNMP實現(xiàn)方案

    、路由器和其他網(wǎng)絡設備的遠程管理和監(jiān)視。利用SNMP協(xié)議可以更好地管理和監(jiān)控網(wǎng)絡。管理工作站可以遠程管理所有支持該協(xié)議的網(wǎng)絡
    發(fā)表于 11-02 07:03

    協(xié)議轉(zhuǎn)換網(wǎng)關支持OPC UA及SNMP協(xié)議

    工業(yè)自動化領域中,Modbus RTU、IEC61850、IEC101、PLC協(xié)議SNMP OPC UA是常見的通信協(xié)議。為了實現(xiàn)不同系統(tǒng)之間的數(shù)據(jù)交互,將上述
    發(fā)表于 10-09 19:52

    什么是簡單網(wǎng)絡管理協(xié)議(SNMP)

    什么是簡單網(wǎng)絡管理協(xié)議(SNMP) SNMP(Simple Network Management Protocol,簡單網(wǎng)絡管理協(xié)議)的前身是簡單網(wǎng)關
    發(fā)表于 03-20 15:13 ?2466次閱讀

    基于SNMP協(xié)議的電網(wǎng)實時視頻監(jiān)控系統(tǒng)設計

    電網(wǎng)設備數(shù)量、復雜度日益提高,不同電力設備生產(chǎn)廠商的視頻設備采用的協(xié)議標準、功能、兼容性不同,需要采用統(tǒng)一的
    發(fā)表于 10-31 15:31 ?10次下載
    基于<b class='flag-5'>SNMP</b><b class='flag-5'>協(xié)議</b>的電網(wǎng)實時視頻<b class='flag-5'>監(jiān)控</b>系統(tǒng)設計

    snmp協(xié)議詳解

    )定義的一套網(wǎng)絡管理協(xié)議。該協(xié)議基于簡單網(wǎng)關監(jiān)視協(xié)議(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一個管理工作站可以遠程管理所有支持這種
    發(fā)表于 01-15 15:13 ?7175次閱讀
    <b class='flag-5'>snmp</b><b class='flag-5'>協(xié)議</b>詳解

    SNMP五種協(xié)議數(shù)據(jù)單元以及SNMP框架組成

    五層協(xié)議的應用層協(xié)議,用于網(wǎng)絡管理的協(xié)議SNMP主要用于網(wǎng)絡設備的管理。由于
    的頭像 發(fā)表于 08-19 17:32 ?6564次閱讀

    使用 ntopng 和 SNMP 監(jiān)視網(wǎng)絡設備

    總結(jié)SNMP廣泛用于網(wǎng)絡監(jiān)控。能夠遠程監(jiān)控網(wǎng)絡設備是清晰了解當前和過去網(wǎng)絡運行狀況的基礎。ntopng系統(tǒng)地與SNMP
    的頭像 發(fā)表于 02-07 16:48 ?1107次閱讀
    使用 ntopng 和 <b class='flag-5'>SNMP</b> 監(jiān)視網(wǎng)絡<b class='flag-5'>設備</b>

    什么是SNMPSNMP是如何工作的?

    用于監(jiān)控和管理各種設備,包括路由器、交換機、服務器和打印機等。 SNMP工作原理如下:一個網(wǎng)絡設備分為兩類,
    的頭像 發(fā)表于 12-27 13:58 ?2310次閱讀

    snmp協(xié)議的主要功能 snmp協(xié)議在哪一層

    SNMP(Simple Network Management Protocol)是一種用于網(wǎng)絡管理的應用層協(xié)議。它主要用于監(jiān)控和管理網(wǎng)絡上的設備以及收集
    的頭像 發(fā)表于 01-22 15:00 ?2706次閱讀

    機房動環(huán)監(jiān)控系統(tǒng)Modbus轉(zhuǎn)SNMP V3協(xié)議遠程I/O模塊

    的新型監(jiān)控方案的需求日益迫切。在此背景下,鋇錸技術(shù)推出了IOy系列SNMP協(xié)議遠程IO模塊BL197。 一、SNMP
    的頭像 發(fā)表于 08-30 16:25 ?984次閱讀