在Zabbix中透過SNMPv3監控網路設備

本文主要介紹使用SNMPv3協定監控網路設備的特性。 我們將討論 SNMPv3,我將分享我在 Zabbix 中建立成熟範本的經驗,並且我將展示在大型網路中組織分散式警報時可以實現的目標。 SNMP 協議是監控網路設備時的主要協議,而 Zabbix 非常適合監控大量物件並彙總大量傳入指標。

關於 SNMPv3 的幾句話

讓我們從SNMPv3協定的目的及其使用特點開始。 SNMP 的任務是透過向網路設備發送簡單的命令(例如,啟用和停用網路接口,或重新啟動設備)來監視網路設備和進行基本管理。

SNMPv3協定與其先前版本的主要區別在於經典的安全功能[1-3],即:

  • 身份驗證,確定請求是從可信任來源收到的;
  • 加密(Encryption),防止傳輸資料被第三方截獲時洩漏;
  • 完整性,即保證資料包在傳輸過程中不會被竄改。

SNMPv3意味著使用一種安全模型,其中為給定使用者及其所屬群組設定身份驗證策略(在SNMP的早期版本中,從伺服器到監控物件的請求僅比較“社區”,一個文字帶有以明文形式傳輸的“密碼”的字串(純文字))。

SNMPv3引入了安全級別的概念-可接受的安全級別,決定了設備的配置和監控對象的SNMP代理的行為。 安全模型和安全性等級的組合決定了處理 SNMP 封包時使用哪種安全機制 [4]。

表格描述了模型和 SNMPv3 安全等級的組合(我決定保留原始的前三列):

在Zabbix中透過SNMPv3監控網路設備

因此,我們將在使用加密的驗證模式下使用 SNMPv3。

配置 SNMPv3

監控網路設備需要在監控伺服器和被監控物件上設定相同的SNMPv3協定。

讓我們從設定 Cisco 網路設備開始,其最低所需配置如下(對於我們使用 CLI 的配置,我簡化了名稱和密碼以避免混淆):

snmp-server group snmpv3group v3 priv read snmpv3name 
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso included

第一行 snmp-server group – 定義 SNMPv3 使用者群組(snmpv3group)、讀取模式(read)以及 snmpv3group 群組查看監控物件 MIB 樹某些分支的存取權限(snmpv3name 則在設定指定群組可以存取MIB 樹的哪些分支(snmpv3group 將能夠獲得存取權限)。

第二行 snmp-server user – 定義使用者 snmpv3user、其在 snmpv3group 群組中的成員身份,以及使用 md5 驗證(md5 的密碼是 md5v3v3v3)和 des 加密(des 的密碼是 des56v3v3v3)。 當然,最好使用 aes 而不是 des,我這裡只是舉個例子。 此外,在定義使用者時,您可以新增一個存取清單 (ACL),用於管理有權監視該裝置的監視伺服器的 IP 位址 - 這也是最佳實踐,但我不會使我們的範例複雜化。

第三行 snmp-server 視圖定義了一個程式碼名稱,指定 snmpv3name MIB 樹的分支,以便 snmpv3group 使用者群組可以查詢它們。 ISO沒有嚴格定義單一分支,而是允許snmpv3group使用者群組存取監控物件的MIB樹中的所有物件。

華為設備的類似設定(也在 CLI 中)如下所示:

snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5 
            md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
            des56v3v3v3

設定完網路設備後,需要檢查監控伺服器是否透過SNMPv3協定進行訪問,我將使用snmpwalk:

snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252

在Zabbix中透過SNMPv3監控網路設備

使用 MIB 檔案請求特定 OID 物件的更直觀的工具是 snmpget:

在Zabbix中透過SNMPv3監控網路設備

現在讓我們繼續在 Zabbix 範本中設定 SNMPv3 的典型資料元素。 為了簡單性和 MIB 獨立性,我使用數位 OID:

在Zabbix中透過SNMPv3監控網路設備

我在關鍵字段中使用自訂宏,因為它們對於模板中的所有資料元素都是相同的。 如果網路中的所有網路設備具有相同的 SNMPv3 參數,您可以在範本內設定它們;如果不同監控物件的 SNMPv3 參數不同,則可以在網路節點內設定它們:

在Zabbix中透過SNMPv3監控網路設備

請注意,監控系統只有使用者名稱和密碼用於身份驗證和加密。 監控對像上指定了允許存取的使用者群組和MIB物件的範圍。
現在讓我們繼續填寫模板。

Zabbix 民調模板

建立任何調查範本時的簡單規則是使其盡可能詳細:

在Zabbix中透過SNMPv3監控網路設備

我非常注重庫存,以便更輕鬆地與大型網路合作。 稍後會詳細介紹這一點,但現在 – 觸發器:

在Zabbix中透過SNMPv3監控網路設備

為了便於觸發器的可視化,系統巨集 {HOST.CONN} 包含在其名稱中,以便在儀表板的警報部分中不僅顯示設備名稱,還顯示 IP 位址,儘管這更多的是為了方便而不是必要。 為了確定設備是否不可用,除了通常的回顯請求之外,當物件可透過 ICMP 存取但不回應 SNMP 請求時,我還使用 SNMP 協定檢查主機不可用性 - 例如,這種情況是可能的,由於防火牆設定不正確或監控物件的SNMP 設定不正確,導致不同裝置上的IP 位址重複。 如果僅透過 ICMP 使用主機可用性檢查,則在調查網路上的事件時,監控資料可能無法使用,因此必須監控其接收。

讓我們繼續偵測網路介面——對於網路設備來說,這是最重要的監控功能。 由於網路設備上可能有數百個接口,因此有必要過濾掉不必要的接口,以免使可視化混亂或使資料庫混亂。

我使用標準 SNMP 發現功能,具有更多可發現的參數,以實現更靈活的過濾:

discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7]

在Zabbix中透過SNMPv3監控網路設備

透過此發現,您可以按網路介面的類型、自訂描述和管理連接埠狀態來過濾網路介面。 在我的例子中,用於過濾的過濾器和正規表示式如下所示:

在Zabbix中透過SNMPv3監控網路設備

在Zabbix中透過SNMPv3監控網路設備

如果偵測到,以下介面將被排除:

  • 手動停用(adminstatus<>1),感謝 IFADMINSTATUS;
  • 沒有文字描述,感謝 IFALIAS;
  • 由於 IFALIAS 的幫助,文字描述中帶有*符號;
  • 由於 IFDESCR(在我的例子中,在正規表示式中 IFALIAS 和 IFDESCR 由一個正規表示式別名進行檢查),這些都是服務或技術性的。

使用SNMPv3協定收集資料的範本已基本準備就緒。 我們不會更詳細地討論網路介面資料元素的原型;讓我們繼續討論結果。

監測結果

首先,盤點一個小型網路:

在Zabbix中透過SNMPv3監控網路設備

如果您為每個系列的網路設備準備模板,則可以實現易於分析的當前軟體匯總資料佈局、序號以及清潔工到達伺服器的通知(由於正常運行時間短)。 我的模板清單的摘錄如下:

在Zabbix中透過SNMPv3監控網路設備

現在 - 主監控面板,觸發器以嚴重程度分佈:

在Zabbix中透過SNMPv3監控網路設備

由於網路中每個設備模型的模板採用整合方法,可以確保在一個監控系統的框架內組織一個用於預測故障和事故的工具(如果有適當的傳感器和指標)。 Zabbix非常適合監控網路、伺服器和服務基礎設施,維護網路設備的任務清楚地展示了它的能力。

使用的來源列表:1. Hucaby D. CCNP 路由與交換 SWITCH 300-115 官方證書指南。 思科出版社,2014 年。 325-329。
2.RFC 3410。 工具.ietf.org/html/rfc3410
3.RFC 3415。 工具.ietf.org/html/rfc3415
4. SNMP 設定指南,Cisco IOS XE 版本 3SE。 章節:SNMP 版本 3。 www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-3se/3850/snmp-xe-3se-3850-book/nm-snmp-snmpv3.html

來源: www.habr.com

添加評論