楊澎濤 范永合 孫劍 賈立輝
摘要:隨著云計算技術(shù)的發(fā)展應(yīng)用,資源高度集中共享服務(wù),系統(tǒng)運維壓力大,管理員處理問題滯后,經(jīng)常是以救火員的身份去補救,無法提前預(yù)知系統(tǒng)的故障或應(yīng)用瓶頸,時常會導(dǎo)致用戶應(yīng)用中斷,影響生產(chǎn)進度。針對這種情況,如果能提前預(yù)測出系統(tǒng)應(yīng)用趨勢,提前進行預(yù)警處置,既可以避免影響用戶使用,又可以減少突發(fā)的運維壓力。為此,本文采用開源的zabbix監(jiān)控系統(tǒng)實現(xiàn)對服務(wù)器資源應(yīng)用趨勢的預(yù)測,輔助運維人員進行日常管理,有效提升云計算中心的智能化運維管理水平。
關(guān)鍵詞:zabbix;趨勢預(yù)測;應(yīng)用服務(wù)器
中圖分類號:TP393? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)27-0273-02
1 引言
隨著云計算技術(shù)的快速發(fā)展,IT資源高度集中,應(yīng)用類型多種多樣,管理員的運維壓力越來越大,除了要處理系統(tǒng)硬件故障,還要時時處理出現(xiàn)的各類應(yīng)用瓶頸。同時,運維管理人員往往在硬件資源發(fā)生故障、應(yīng)用產(chǎn)生瓶頸,影響到用戶應(yīng)用時才以“救火員”的身份去補救,缺乏有效的手段對故障和性能瓶頸進行提前預(yù)測和防范,往往影響到用戶的生產(chǎn)進度。如果能提前預(yù)測出系統(tǒng)應(yīng)用趨勢,提前進行預(yù)警處置,既可以避免影響用戶使用,又可以減少突發(fā)的運維壓力。這就需要采用一種趨勢預(yù)測技術(shù)來實現(xiàn)智能化的預(yù)測分析。這種預(yù)測技術(shù)是一種統(tǒng)計或數(shù)據(jù)挖掘解決方案,包含可在結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)中使用以確定未來結(jié)果的算法和技術(shù)。目前,一些商業(yè)化軟件具備了相關(guān)預(yù)測功能,但是價格高且定制靈活性較低。經(jīng)過對多個開源軟件的調(diào)研分析,發(fā)現(xiàn)zabbix開源監(jiān)控系統(tǒng)具有趨勢預(yù)測功能,而且該開源系統(tǒng)具有良好的社區(qū)支持和插件較多,有特別良好的開發(fā)文檔及中文支持,因此采用zabbix解決方案來實現(xiàn)對服務(wù)器資源應(yīng)用趨勢進行預(yù)測。
2 zabbix趨勢預(yù)測函數(shù)分析
在zabbix4.0版本中,提供了2個函數(shù)timeleft和forecast用于趨勢預(yù)測:
(1)Timeleft函數(shù)(該函數(shù)的含義就是監(jiān)控項達到預(yù)設(shè)的閾值需要多長時間)
Timeleft主要由4個參數(shù)構(gòu)成:timeleft(sec|#num,
Sec表示時間,如5s 表示5秒,5m表示5分鐘。
#num 表示最近獲取到值的次數(shù),#10表示最近10次的值。Sec和#num是必須參數(shù),二選一。
time_shift表示時間偏移,如1d表示已過去的1天,是可選參數(shù)
threshold 表示閾值
fit表示預(yù)測算法模型,默認是liner(線性模型)
示例:timeleft(1h,1d,10)—根據(jù)前一天零一小時的數(shù)據(jù)預(yù)測取值達到10所需的時間
(2)Forecast函數(shù)(該函數(shù)的含義是根據(jù)現(xiàn)有取值預(yù)測未來可能檢測到的值)
Forecast主要由5個參數(shù)構(gòu)成:forecast(sec|#num,
Sec表示時間, #num 表示最近獲取到值的次數(shù), Sec和#num是必須參數(shù),二選一。
time_shift表示時間偏移,如1d表示已過去的1天,是可選參數(shù)
time表示要預(yù)測未來什么時間的值
fit表示預(yù)測算法模型,默認是liner(線性模型)
mode表示輸出結(jié)果選項(最大值、最小值、平均值等)
示例:forecast(1h,1d,12h)—基于前1天零1小時的數(shù)據(jù)預(yù)測12小時之后的數(shù)據(jù)
3 趨勢預(yù)測功能配置及展示
要進行趨勢預(yù)測,需要創(chuàng)建新的監(jiān)控項,這里在zabbix原有模板Template OS Linux上創(chuàng)建新的監(jiān)控項預(yù)測磁盤及內(nèi)存趨勢。
具體配置過程如下:
首先進入Template OS Linux模塊,選擇監(jiān)控項選項,進入監(jiān)控項展示界面,如圖1,
然后點擊“創(chuàng)建監(jiān)控項”按鈕彈出監(jiān)控項創(chuàng)建界面,如圖2所示。
在該界面的重點是在類型中選擇“可計算的”選項,鍵值根據(jù)作用自己定義一個,不能和已有鍵值重名。最核心的是寫公式,如果要根據(jù)之前24小時的值預(yù)測內(nèi)存未來30分鐘的可用值公式如下:forecast(vm.memory.size[available],24h,,30m);如果要根據(jù)前1天的數(shù)據(jù)預(yù)測cpu使用值達到90%還需要多長時間的公式:timeleft(system.cpu.util[,user],1h,1d,90)
還可以來預(yù)測磁盤空間多長時間能達到指定的閾值等等。設(shè)置好監(jiān)控項后,等待數(shù)據(jù)收集一段時間,就可以在界面上查看預(yù)測圖形。如圖3所示是cpu要達到指定閾值所需時間的預(yù)測圖,圖4是內(nèi)存未來1小時使用情況預(yù)測。
4結(jié)束語
隨著資源中心服務(wù)器數(shù)量的不斷增長和應(yīng)用復(fù)雜度的增加,對資源應(yīng)用趨勢的預(yù)測需求會越來越大,通過趨勢預(yù)測避免了突發(fā)問題導(dǎo)致的運維管理人員的疲于奔命,提升了生產(chǎn)用戶的應(yīng)用體驗。同時趨勢預(yù)測也是智能運維的一部分,隨著智能運維的不斷推進,趨勢預(yù)測技術(shù)必將快速發(fā)展,本文基于zabbix進行的趨勢預(yù)測算法較為簡單,能滿足基本需求,穩(wěn)定性可靠,但是面對更加復(fù)雜的應(yīng)用環(huán)境,需要在此基礎(chǔ)上使用神經(jīng)網(wǎng)絡(luò)、機器學(xué)習等技術(shù)完善預(yù)測算法,綜合多方面參數(shù),提高預(yù)測的準確度,完全代替人工巡檢,把運維管理員在日常巡檢中徹底解放出來。
參考文獻:
[1] 吳夫丹.基于云平臺的服務(wù)器監(jiān)控系統(tǒng)設(shè)計[D].西安:西安工業(yè)大學(xué),2014.
[2] 董波,沈青,肖德寶.云計算集群服務(wù)器系統(tǒng)監(jiān)控方法的研究[J].計算機工程與科學(xué),2012,34
(10):68-72.
[3] 朱瑞斌.服務(wù)器集群監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京交通大學(xué),2015.
[4] 周萌,林國策,楊厚云.CENTOS下 ZABBIX的配置與使用[J].北京信息科技大學(xué)學(xué)報(自然科學(xué)版),2015,30(1):90-94.
【通聯(lián)編輯:光文玲】