?

基于zabbix數據源的自動化運維平臺設計與實現

2019-09-10 23:05楊帥吳濤李超史超田偉
E動時尚·科學工程技術 2019年19期

楊帥 吳濤 李超 史超 田偉

摘 要:鑒于目前主流的zabbix等監控工具難以滿足自動化運維實際需求,通過對zabbix監控數據源研究和zabbix-agent二次開發,完成監控數據收集,實現zabbix數據源調用、數據分析及可視化展示,從而構建一套滿足運維個性化需求的自動化運維監控平臺,實現軟硬件資源監控和自動化巡檢,為優化資源配置提供有力數據支撐,提升自動化運維管理水平。

關鍵詞:zabbix數據源;自動化運維;可視化展示

1 引言

隨著互聯網用戶業務規模的不斷擴大,整個IT運維環境變得日益復雜,傳統的被動、孤立、半自動式的運維手段已經無法滿足運維人員實際運維需求,IT運維自動化已成為當前運維發展的大趨勢。目前主流的開源自動化運維監控工具,如:zabbix、Nagios等,雖然可以滿足基本的日常監控需求,但隨著運維規模的不斷擴大,運維設備種類不斷增多,這些監控工具已無法滿足日常運維工作的需求[1]。因此,亟需根據自身運維需求對現有的開源工具進行二次設計開發,構建一套滿足運維需求的自動化運維監控平臺,解決日常運維工作痛點、提高運維效率。

2 設計思路

基于zabbix監控數據將運維對象資源分配到相應的業務線使用,按照業務線進行軟硬件資源配置和日常運維管理,從運維對象、業務線等不同維度對資源進行日常健康監控和分析,并進行報表數據可視化展示。同時,對軟硬件資源運行狀態進行監控并設置告警閾值,以運維監控資源數據為基礎,結合整個運維流程,完成運維監控同自動化運維平臺集成,實現自動化運維流程的全覆蓋[2]。

本文針對自動化運維平臺建設實際需求,整體分為基礎數據監控、自動化運維平臺程序及數據庫兩大部分。其中:基礎數據監控通過利用zabbix-agent作為數據采集客戶端,采用zabbix數據源提供基礎監控數據;自動化運維平臺程序及數據庫基于Python 語言和Django框架進行主體程序設計開發,實現zabbix數據源數據的提取、整合計算,將分析處理后的數據存儲至MySQL數據庫為平臺可視化展示提供數據支撐。

3 平臺設計分析及實現

3.1 zabbix數據源分析

3.1.1 數據收集

通過zabbix server服務的采集進程完成zabbix agent 客戶端對軟硬件資源監控數據采集,并存儲在zabbix數據庫。同時,可根據用戶個性化需求,通過數據采集腳本實現其它監控數據的采集[3]。

3.1.2 數據表結構分析

zabbix的數據源可通過MySQL、PostgreSQL、Oracle等數據庫實現,下面以MySQL數據庫為例對數據表結構進行分析設計。由于zabbix數據庫中涉及眾多表,而在實際應用中只需重點關注以下表即可,以下對表中的關鍵字段進行分析。

(1)hosts表

用于保存監控資源實例(包含模板等),主要記錄如:IP、是否啟用等信息,關注的字段為hostid、host和status。

(2)items表

用于保存所有監控項,主要包括監控項與主機對應關系、監控數據存儲映射關系等。

(3)history表

與items表相關聯,記錄浮點型監控數據。當items表中value_type字段值為0時,監控數據記錄于此表。

(4)history_uint表

與items表相關聯,記錄長整型監控數據。當items表中value_type字段值為3時,監控數據記錄于此表中。

(5)trends表

記錄浮點型趨勢數據,每小時進行一次數據采集。當items表中value_type字段值為0時,趨勢數據記錄于此表中。

(6)trends_uint表

記錄長整型趨勢數據,每小時進行一次數據采集。當items表中value_type字段值為3時,趨勢數據記錄于此表中。

(7)triggers表

記錄觸發器和告警狀態信息。

(8)functions表

與items、triggers表相關聯。

3.1.3 表關系

通過對以上zabbix數據庫表結構的分析,表關系主要為:通過items表將hosts表與history、history_uint、trends、trends_uint這四張表進行關聯,實現監控數據和趨勢數據的存儲;同時,通過items表和functions表將hosts、triggers這兩張表進行關聯,實現觸發器和告警信息的存儲。

3.2 數據處理

本文在zabbix數據庫表結構初始化基礎上,結合平臺設計需求,對表結構進行分析設計,構建數據庫以滿足自動化運維平臺基礎數據存儲需求,為平臺提供數據支撐。通過自動化運維平臺的后臺服務完成zabbix數據庫中監控數據的抽取,采用數據分析處理算法對數據進行分析統計并前臺展示,實現運維監控實際需求。以常用的“主機資源運行情況報表”為例對數據處理思路及過程進行分析。

首先,在hosts表中通過條件‘status=0’,篩選出被監控的主機資源信息,在items表中通過‘key_’字段篩選;其次,通過items表中的value_type字段值確認監控數據的存儲表,由于主機資源運行情況報表統計頻率為每天,可使用趨勢表(trends表和trends_uint表)中的趨勢數據進行統計;最后,通過hosts、items和trends(或trends_uint)這三張表進行聯合查詢,獲取所需的監控數據。同時,將通過數據抽取得到的基礎監控數據進行算法處理,如:加權平均、篩選最大最小值等整合處理,并將整合處理后的最終數據存儲于自動化運維平臺的數據庫中。

4 結束語

本文對zabbix數據源涉及的表結構和表關系進行了分析設計,基于zabbix基礎監控數據,結合運維監控實際需求完成數據整合處理,滿足不同運維場景下的個性需求。通過對zabbix數據源的深入研究分析并進行二次設計開發,采用目前主流的自動化運維技術,構建了一套滿足運維實際需求的自動化運維監控平臺,提高了運維效率和運維管理水平。

參考文獻

[1]龍煒.自動化運維工具在企業信息系統管理中的應用[J].微型機與應用,2017,36(05):102-104.

[2]陳正華.國網信息系統運維自動化平臺的設計[J].工業儀表與自動化裝置,2017(02):18-21.

[3]謝超群.基于Zabbix高校數據中心運維監控平臺的建設研究[J].長春大學學報,2018,28(12):44-47.

作者簡介

楊帥(1987-),男,運維工程師,現就職于國網電子商務有限公司,主要研究自動化運維技術及可視化應用等方向。

吳濤(1985-),男,工程師,現就職于國網電子商務有限公司,主要研究自動化運維技術及應用等方向。

李超(1989-),男,總監,現就職于國網電子商務有限公司,主要研究運維管理及自動化技術等方向。

史超(1988-),男,運維工程師,現就職于國網電子商務有限公司,主要研究自動化運維技術、數據庫等方向。

田偉(1980-),男,運維工程師,現就職于國網電子商務有限公司,主要研究網絡安全、自動化運維等方向。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合