周葉
摘要:隨著教育新基建的推進,學校網絡設施種類越來越多,難以在一個統一的平臺上統一監控預警,給日常管理運維帶來極大的困難。利用Telegraf、InfluxDB、Grafana 在麒麟操作系統上構建網絡設備的智能監控預警系統,通過邁普網絡設備驗證,監控平臺實現了網絡運行狀態的可視化、故障的實時預警,提升了校園網智能化管理水平。
關鍵詞:Telegraf;InfluxDB;Grafana;麒麟操作系統;監控預警
中圖分類號:TP393? ? ? 文獻標識碼:A
文章編號:1009-3044(2024)07-0098-03
開放科學(資源服務)標識碼(OSID)
0 引言
隨著《國家信息化發展戰略》的提出,依托信創產業建設的新一代網絡基礎設施已成為網絡安全建設的重要載體。目前,信創類網絡設備、操作系統、軟硬件已經在政府、教育、工業生產等多個領域得到應用[1]。隨著教育新基建的深入推進,高校在多個應用場景中開始采用信創設備,學校網絡基礎設施中信創和非信創的各種服務器、網絡設備、信息系統眾多,各設備需要各自的專用軟件進行監控。這導致難以在一個統一的平臺上實現統一監控,不能提供便捷的設備異常預警,給日常管理運維帶來極大的困難。本文以信創邁普交換機為例,在信創銀河麒麟操作系統上,構建信創與非信創統一的網絡設備的智能監控預警,實現網絡運行狀態的實時監控預警,提升信創網絡設備的自動化管理水平。
1 系統架構
網絡設備的智能監控預警系統主要是解決如何快速發現問題、解決問題、預防問題,來保障網絡基礎設施運行穩定[2]。監控系統主要由數據采集器、數據存儲、數據可視化及預警組件組成[3]。數據采集組件負責從網絡設備中收集各種指標數據,包括設備的狀態、性能參數以及其他相關信息。采集模式主要分為Agent和非Agent模式。Agent采集模式主要是通過各種腳本采集、主機日志采集、插件采集、APM探針等,非Agent采集主要有SNMP、IPMI、SSH、ICMP等通信協議采集。采集的頻率一般根據業務場景實際需要分為分鐘級、秒級等。數據存儲組件主要用于存儲采集到的指標數據,為開展進一步分析應用奠定基礎。對于監控數據存儲主要有關系數據庫、時序數據、全文檢索數據庫,關系數據庫在傳統監控數據庫中使用居多,因數據庫有性能瓶頸,逐漸被淘汰,時序數據庫非常適合監控業務場景應用,目前主流的監控系統均采用時序數據庫,全文檢索數據庫主要應用于日志型存儲和搜索。數據可視化及預警組件主要負責將監控數據進行計算加工,以人類友好的可視化方式呈現出來。可以為不同的用戶呈現所需要的監控大屏,根據業務場景需要,通過主流的微信、釘釘、郵件等方式實現預警通知,幫助運維人員快速掌握系統運行狀態。網絡設備的智能監控預警系統架構如圖1所示。
目前主流的監控系統主要有Zabbix、TICK Stack、Nightingale(夜鶯)、Open-falcon和Nagios等技術棧。TICK Stack提供了一個完整的端到端的時間序列數據監控解決方案,針對網絡設備監控的時序數據業務場景進行了優化,尤其在處理高頻率的監控數據時性能優越[4-6]。本文采用TICK Stack結合業界廣泛使用的Grafana儀表盤和數據分析工具,使用Telegraf、InfluxDB、Grafana在銀河麒麟信創操作系統上構建網絡設備的智能監控預警系統,提升校園網智能化管理水平。
2 關鍵技術研究
2.1 Telegraf數據采集器
Telegraf是一個基于服務器代理的數據采集器,使用Go編寫,沒有外部依賴項,運行只需要非常小的資源,非常適合在信創平臺大規模部署應用[5]。Telegraf擁有大量的內置輸入插件,可以采集系統指標(CPU、內存、磁盤I/O等)、網絡設備、應用程序日志等監控指標,通過不同的輸出插件可以將數據發送到不同的數據后端存儲,可以實現網絡設備監控指標數據的采集。
2.2 InfluxDB數據存儲
InfluxDB是一個專為時序數據設計的開源分布式數據庫,特別適合存儲網絡監控、應用性能監控、物聯網(IoT) 設備產生的大量時間序列數據,數據庫具有高寫入吞吐量和低延遲特性,提供豐富的查詢功能,易于理解和使用,可以實現網絡設備監控指標數據的存儲和查詢功能[7]。
2.3 Grafana數據可視化及預警
Grafana是目前廣泛使用的儀表盤和數據分析工具,提供強大的儀表板和圖表創建工具,支持豐富的圖形類型和自定義樣式。內置了預警規則和通知機制,廣泛應用于監控、日志分析以及應用程序性能管理(APM) 領域[8]。支持從多種數據源獲取數據,并以豐富的圖表形式展示在儀表板上,提供直觀且高度可定制化的數據分析體驗,可以為網絡設備的智能監控提供多個維度的可視化和預警功能。
2.4 SNMP協議
SNMP(簡單網絡管理協議)提供了一種標準化的方式來監測和管理網絡中的各種設備和服務。MIB(Management Information Base)是一個結構化的數據庫,每個MIB對象都有一個唯一的OID(Object Identifier) ,定義了可以被SNMP管理的所有可能的對象和變量,這些對象對應網絡設備的各種配置、狀態和性能參數[9-10]。監控設備采集器通過SNMP的操作方法和OID,可以獲得信創設備需要監控的數據,為監控預警提供數據源。
3 系統設計與實現
3.1 Telegraf數據采集器組件
網絡設備需要監控的數據主要是設備運行時間、端口狀態、端口流量等指標數據,通過部署Telegraf數據采集組件,使用SNMP的input插件完成數據采集,使用計算和聚合等插件對數據進行加工處理,使用output插件完成數據存儲到InfluxDB數據庫。
安裝部署過程如下:1) 在命令終端使用wget下載 Telegraf 安裝包,命令如下:https://dl.influxdata.com/telegraf/releases/telegraf-1.29.1-1.x86_64.rpm ;2) 在命令終端執行安裝命令:yum localinstall? telegraf-1.29.1-1.x86_64.rpm;3) 修改/etc/telegraf/telegraf.conf 配置文件inputs.snmp 插件下agents、communnity、inputs.snmp.field、inputs.snmp.table等關鍵參數;4) 修改/etc/telegraf/telegraf.conf? 配置文件outputs.influxdb 插件下urls、database、username、password、timeout等關鍵參數;5) 啟動采集組件,在終端執行命令:systemctl start telegraf;6) 使用終端執行命令:telegraf? --config /etc/telegraf/telegraf.conf --test -input-filter snmp,測試采集組件工作狀態。
3.2 InfluxDB數據存儲組件
InfluxDB主要用于存儲Telegraf采集的網絡設備數據,同時提供給Grafana數據可視化及預警組件查詢監控指標數據使用。它是時序數據庫,為每條采集到的數據添加特定的時間標簽。
安裝部署過程如下:1) 在命令終端使用wget下載 InfluxDB 安裝包,命令如下:wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.7.x86_64.rpm;2) 在命令終端執行安裝命令:yum localinstall influxdb-1.8.7.x86_64.rpm;3) 啟動數據存儲組件,在終端執行命令:systemctl start influxdb;4) 創建Telegraf采集組件outputs.influxdb的數據庫,在命令終端執行influx命令登錄數據庫,執行create database telegraf完成數據創建,通過create user "telegraf" with password '123456' with all privileges命令完成用戶創建和授權。
3.3 Grafana數據可視化及預警組件
Grafana主要實現網絡設備監控指標數據的可視化,通過儀表板和圖表創建,直觀呈現出設備運行狀態。通過預警組件,及時將預警事件,推送給相關管理人員,及時解決相關問題。
安裝部署過程如下:1) 在命令終端使用wget下載 Grafana 安裝包,命令如下:wget https://dl.grafana.com/oss/release/grafana-10.2.3-1.x86_64.rpm;2) 在命令終端執行安裝命令:yum localinstall grafana-10.2.3-1.x86_64.rpm;3) 啟動Grafana 組件,在終端執行命令:systemctl start grafana;4) Grafana 默認使用3000端口,首次登錄修改密碼;5) 在Grafana數據源添加InfluxDB數據源。
3.4 SNMP管理測試工具
SNMP管理測試工具主要用于探測目標設備 SNMP 的可用性,常用的有基于命令行的snmpwalk 和基于圖形界面的MIB Browser[11],本文使用snmpwalk進行測試。
安裝部署過程如下:1) 在命令終端使用: yum -y install net-snmp-utils;2) 測試命令格式為:snmpwalk -v 版本 -c 團體字 IP OID。
4 功能測試
4.1 設備實時監控配置
以邁普NSS4330交換機為例,使用網絡設備的智能監控預警系統,實時監測設備的內存、端口狀態、端口流量等運行狀態。步驟如下:1) 測試查詢設備運行時間和內存為例,使用節點名稱獲取運行時間:snmpwalk -v 2c -c read 172.16.0.30 "RFC1213-MIB::sysUpTime.0",使用節點值獲取內存剩余大小snmpwalk -v 2c -c read 172.16.0.30 "1.3.6.1.4.1.5651.3.20.1.1.1.1";2) 修改/etc/telegraf/telegraf.conf 配置文件inputs.snmp 插件,添加采集項;3) 在Grafana新建面板和配置監控預警。
4.2 設備實時監控
通過本文介紹的網絡設備智能監控預警系統,實現了對邁普等網絡設施的運行時長、端口流量、端口狀態、端口速率等關鍵設備指標的監控和預警。邁普交換機監控儀表板的運行圖如圖2所示。
5 結束語
本文通過在信創麒麟操作系統上,使用Telegraf、InfluxDB、Grafana 等組件,研究網絡設備的智能監控預警系統,實現了網絡設備的實時監控、故障預警和智能分析,提升網絡運行的穩定性和可靠性。通過邁普網絡交換機的實際應用,驗證了基于信創網絡設備的智能監控預警系統的可用性,為下一步統一管理校園網絡基礎設施奠定基礎,為基于信創解決方案的大型網絡建設提供參考經驗。目前在系統智能化預警維度和方式尚有不足,下一步將完善系統功能,重點提升系統的智能化水平,拓展應用場景。
參考文獻:
[1] 倪光南.堅持信創科技自立自強建設網絡強國和數字中國[J].信息安全研究,2021,7(1):2-3.
[2] 李剛.網絡運維系統在高校中的運用[J].電子測試,2022,36(14):117-119.
[3] 李欣怡.大數據技術在智能電網中的應用策略分析[J].數字通信世界,2023(2):115-117.
[4] 胡安東.基于Opc+influxDb+grafana的數據可視化設備運維平臺在鋼鐵企業的開發應用[J].冶金設備,2022(S2):71-73.
[5] 王博遠,梁子陽,劉雪萌,等.基于Telegraf+InfluxDB+Grafana搭建長輸供熱系統的監控平臺研究[J].中國設備工程,2021(22):177-178.
[6] 趙鑫,侯闊,王昊,等.一個基于SNMP和Zabbix的企業網絡監控系統的設計與實現[J].電腦知識與技術,2023,19(1):91-94.
[7] 張世賢,張少春,謝曉東.基于InfluxDB的監控設備通用運維管理平臺[J].計算機系統應用,2021,30(12):123-127.
[8] 郭彬,楊晨,劉慶濤,等.基于InfluxDB與Grafana的物聯網監測系統設計[J].現代電子技術,2022,45(18):41-46.
[9] 夏勇,周楨,胡林,等.SNMP在UPS狀態監測中的應用[J].廣播電視信息,2023,30(9):98-100.
[10] 鐘磊,鄧鑫,馬強,等.基于SNMP的氣象網絡監控系統設計與實現[J].氣象與環境科學,2023,46(2):101-105.
[11] 王頎,劉豐,張彬,等.SNMP與NetStream流量監控方法的對比分析[J].海洋信息,2021,36(3):18-25.
【通聯編輯:謝媛媛】