本發(fā)明涉及大數(shù)據(jù)處理和數(shù)據(jù)可視化的技術(shù)領(lǐng)域,尤其涉及一種監(jiān)控可視化方法,以及監(jiān)控可視化系統(tǒng)。
背景技術(shù):
Zabbix是一個基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級的開源解決方案,能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)的安全運(yùn)營;并提供靈活的通知機(jī)制以讓系統(tǒng)管理員快速定位/解決存在的各種問題。主要功能如下:
1 CPU負(fù)荷
2 內(nèi)存使用
3 磁盤使用
4 網(wǎng)絡(luò)狀況
5 端口監(jiān)視
6 日志監(jiān)視
Zabbix缺點(diǎn):1、項目批量修改不方便;2、中文資料少服務(wù)支持有限;3、深度熟悉和進(jìn)行二次開發(fā)較難;4、自定義報警配置繁瑣;5、缺少數(shù)據(jù)匯總功能,報表需要二次開發(fā)。
Nagios是一款開源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)置,打印機(jī)等。在系統(tǒng)或服務(wù)狀態(tài)異常時發(fā)出郵件或短信報警第一時間通知網(wǎng)站運(yùn)維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知。主要功能如下:
1、監(jiān)控網(wǎng)絡(luò)服務(wù)(SMTP、POP3、HTTP、NNTP、PING等);
2、監(jiān)控主機(jī)資源(處理器負(fù)荷、磁盤利用率等);
3、簡單地插件設(shè)計使得用戶可以方便地擴(kuò)展自己服務(wù)的檢測方法;
4、并行服務(wù)檢查機(jī)制;
5、具備定義網(wǎng)絡(luò)分層結(jié)構(gòu)的能力,用"parent"主機(jī)定義來表達(dá)網(wǎng)絡(luò)主機(jī)間的關(guān)系,這種關(guān)系可被用來發(fā)現(xiàn)和明晰主機(jī)宕機(jī)或不可達(dá)狀態(tài);
6、當(dāng)服務(wù)或主機(jī)問題產(chǎn)生與解決時將告警發(fā)送給聯(lián)系人(通過EMail、短信、用戶定義方式);
7、可以定義一些處理程序,使之能夠在服務(wù)或者主機(jī)發(fā)生故障時起到預(yù)防作用;
8、自動的日志滾動功能;
9、可以支持并實(shí)現(xiàn)對主機(jī)的冗余監(jiān)控;
10、可選的WEB界面用于查看當(dāng)前的網(wǎng)絡(luò)狀態(tài)、通知和故障歷史、日志文件等;
11、可以通過手機(jī)查看系統(tǒng)監(jiān)控信息;
12、可指定自定義的事件處理控制器;
Nagios缺點(diǎn):1、事件控制臺功能弱,插件易用性差;2、對性能流量的處理不給力;3、無歷史數(shù)據(jù),難以追查故障原因;4、配置復(fù)雜。
Open-falcon是小米最新發(fā)布的一個監(jiān)控平臺,國內(nèi)有多家公司在用。
Open-falcon缺點(diǎn):1、不支持基礎(chǔ)的服務(wù)監(jiān)控插件;2、采用的rrd數(shù)據(jù)存儲格式雖然能壓縮數(shù)據(jù),但這是以丟失歷史數(shù)據(jù)為代價的;3、對用戶自定義上推的歷史回溯的數(shù)據(jù)根本就進(jìn)不去rrd文件系統(tǒng),導(dǎo)致繪制歷史曲線失??;4、對實(shí)時數(shù)據(jù)僅僅支持寫入opentsdb,僅能做離線分析使用,不能直接從中讀出來繪制曲線圖。
技術(shù)實(shí)現(xiàn)要素:
為克服現(xiàn)有技術(shù)的缺陷,本發(fā)明要解決的技術(shù)問題是提供了一種監(jiān)控可視化方法,其解決了open-falcon不能上推歷史數(shù)據(jù)的難題,能夠繪制歷史曲線,能做實(shí)時分析使用,能直接從中讀出來繪制曲線圖,實(shí)現(xiàn)open-falcon對用戶自定義的數(shù)據(jù)海量監(jiān)控數(shù)據(jù)無損存取。
本發(fā)明的技術(shù)方案是:這種監(jiān)控可視化方法,該方法的基礎(chǔ)框架為python-virtualenv、gnuplot、autoconf、automake,且包括以下步驟:
(1)app模塊上推用戶符合規(guī)范的格式化數(shù)據(jù)到falcon的agent模塊;
(2)agent模塊經(jīng)過格式化后轉(zhuǎn)發(fā)給transfer模塊;
(3)transfer模塊經(jīng)過處理后分發(fā)給judge模塊、graph模塊和opentsdb模塊;judge模塊判斷是否需要報警,如果需要則給alarm模塊發(fā)送報警指令;graph模塊負(fù)責(zé)存儲元數(shù)據(jù),opentsdb模塊負(fù)責(zé)存儲數(shù)據(jù);
(4)dashboad通過metadata模塊獲取元數(shù)據(jù),通過data模塊獲取特定時間內(nèi)的數(shù)據(jù),以便繪制曲線圖。
本發(fā)明通過app模塊上推用戶符合規(guī)范的格式化數(shù)據(jù)到falcon的agent模塊,dashboad通過metadata模塊獲取元數(shù)據(jù),通過data模塊獲取特定時間內(nèi)的數(shù)據(jù),從而解決了open-falcon不能上推歷史數(shù)據(jù)的難題,能夠繪制歷史曲線,能做實(shí)時分析使用,能直接從中讀出來繪制曲線圖,實(shí)現(xiàn)open-falcon對用戶自定義的數(shù)據(jù)海量監(jiān)控數(shù)據(jù)無損存取。
還提供了一種監(jiān)控可視化系統(tǒng),該系統(tǒng)基礎(chǔ)框架為python-virtualenv、gnuplot、autoconf、automake,且包括:
app模塊,其配置來上推用戶符合規(guī)范的格式化數(shù)據(jù)到falcon的agent模塊;
agent模塊,其配置來經(jīng)過格式化后轉(zhuǎn)發(fā)給transfer模塊;
transfer模塊,其配置來經(jīng)過處理后分發(fā)給judge模塊、graph模塊和opentsdb模塊;judge模塊判斷是否需要報警,如果需要則給alarm模塊發(fā)送報警指令;graph模塊負(fù)責(zé)存儲元數(shù)據(jù),opentsdb模塊負(fù)責(zé)存儲數(shù)據(jù);
dashboad,其配置來通過metadata模塊獲取元數(shù)據(jù),通過data模塊獲取特定時間內(nèi)的數(shù)據(jù),以便繪制曲線圖。
附圖說明
圖1所示為根據(jù)本發(fā)明的監(jiān)控可視化方法的流程圖。
圖2所示為根據(jù)本發(fā)明的監(jiān)控可視化系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
如圖1所示,這種監(jiān)控可視化方法,該方法的基礎(chǔ)框架為python-virtualenv、gnuplot、autoconf、automake,且包括以下步驟:
(1)app模塊上推用戶符合規(guī)范的格式化數(shù)據(jù)到falcon的agent(代理)模塊;
(2)agent模塊經(jīng)過格式化后轉(zhuǎn)發(fā)給transfer(轉(zhuǎn)發(fā))模塊;
(3)transfer模塊經(jīng)過處理后分發(fā)給judge(判定)模塊、graph(圖表)模塊和opentsdb模塊;judge模塊判斷是否需要報警,如果需要則給alarm模塊發(fā)送報警指令;graph模塊負(fù)責(zé)存儲元數(shù)據(jù),opentsdb模塊負(fù)責(zé)存儲數(shù)據(jù);
(4)dashboad通過metadata模塊獲取元數(shù)據(jù),通過data模塊獲取特定時間內(nèi)的數(shù)據(jù),以便繪制曲線圖。
本發(fā)明通過app模塊上推用戶符合規(guī)范的格式化數(shù)據(jù)到falcon的agent模塊,dashboad通過metadata模塊獲取元數(shù)據(jù),通過data模塊獲取特定時間內(nèi)的數(shù)據(jù),從而解決了open-falcon不能上推歷史數(shù)據(jù)的難題,能夠繪制歷史曲線,能做實(shí)時分析使用,能直接從中讀出來繪制曲線圖,實(shí)現(xiàn)open-falcon對用戶自定義的數(shù)據(jù)海量監(jiān)控數(shù)據(jù)無損存取。
另外,所述步驟(3)中opentsdb基于hbase系統(tǒng),用于存儲海量數(shù)據(jù)。
另外,所述步驟(4)中元數(shù)據(jù)是繪圖的參數(shù),特定時間內(nèi)的數(shù)據(jù)是數(shù)據(jù)的值。
另外,接口之間傳遞參數(shù)和回傳結(jié)果采用json格式。
另外,data模塊從opentsdb模塊查詢到數(shù)據(jù)后,轉(zhuǎn)換成dashboard需要的格式。
本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,包括上述實(shí)施例方法的各步驟,而所述的存儲介質(zhì)可以是:ROM/RAM、磁碟、光盤、存儲卡等。因此,與本發(fā)明的方法相對應(yīng)的,本發(fā)明還同時包括一種監(jiān)控可視化系統(tǒng),該系統(tǒng)通常以與方法各步驟相對應(yīng)的功能模塊的形式表示。使用該方法的系統(tǒng),該系統(tǒng)基礎(chǔ)框架為python-virtualenv、gnuplot、autoconf、automake,且包括:
app模塊,其配置來上推用戶符合規(guī)范的格式化數(shù)據(jù)到falcon的agent模塊;
agent模塊,其配置來經(jīng)過格式化后轉(zhuǎn)發(fā)給transfer模塊;
transfer模塊,其配置來經(jīng)過處理后分發(fā)給judge模塊、graph模塊和opentsdb模塊;judge模塊判斷是否需要報警,如果需要則給alarm模塊發(fā)送報警指令;graph模塊負(fù)責(zé)存儲元數(shù)據(jù),opentsdb模塊負(fù)責(zé)存儲數(shù)據(jù);
dashboad,其配置來通過metadata模塊獲取元數(shù)據(jù),通過data模塊獲取特定時間內(nèi)的數(shù)據(jù),以便繪制曲線圖。
另外,所述transfer模塊中opentsdb基于hbase系統(tǒng),用于存儲海量數(shù)據(jù)。
另外,所述dashboad中元數(shù)據(jù)是繪圖的參數(shù),特定時間內(nèi)的數(shù)據(jù)是數(shù)據(jù)的值。
另外,接口之間傳遞參數(shù)和回傳結(jié)果采用json格式。
另外,data模塊從opentsdb模塊查詢到數(shù)據(jù)后,轉(zhuǎn)換成dashboard需要的格式。
下面給出本發(fā)明的具體實(shí)施方式。
1、基礎(chǔ)框架(Framework)
python-virtualenv、gnuplot、autoconf、automake
2、各模塊結(jié)構(gòu)(Modules)
●app:用戶的應(yīng)用程序。
●falcon-agent:開源的open-falcon的agent模塊用來接收用戶自定義數(shù)據(jù)。
●transfer:開源的open-falcon的transfer模塊用來處理和分發(fā)來自falcon-agent的數(shù)據(jù)。
●judge:開源的open-falcon的judge模塊用來邏輯判斷來自transfer的數(shù)據(jù)是否需要報警。
●graph:開源的open-falcon的graph模塊用來存儲和更新來自transfer的數(shù)據(jù)的元數(shù)據(jù)。
●openstdb:開源的opentsdb用來存儲來自transfer的數(shù)據(jù)的值。
●alarm:開源的open-falcon的alarm模塊用來接收來自judge的報警指令發(fā)出報警
●metadata:開源的open-falcon的dashboard的子模塊用來從graph模塊查詢數(shù)據(jù)的元數(shù)據(jù)信息。
●data:自己實(shí)現(xiàn)的并整合到open-falcon的dashboard模塊中的子模塊,用來從opentsdb查詢數(shù)據(jù)
3、約定和規(guī)范
●接口之間傳參和回傳結(jié)果采用json格式
4、格式化參數(shù)(Params)
●輸入(in):
√json格式的字符串
●輸出(out):
√Json格式的字符串
5、編碼實(shí)現(xiàn)(Programs)
●Coding:data模塊從opentsdb查詢到數(shù)據(jù)后轉(zhuǎn)換成dashboard需要的格式
6、構(gòu)建部署(Build)
●hbase1.1.2
●redis-2.8.12
●opentsdb2.2.0
●open-falcon0.1.0
本發(fā)明的有益效果如下:
1.open-falcon+openstdb的用戶自定義上推歷史數(shù)據(jù)繪制出曲線圖的監(jiān)控解決方案。
2.data模塊從opentsdb獲取數(shù)據(jù)返給open-falcon功能。
以上所述,僅是本發(fā)明的較佳實(shí)施例,并非對本發(fā)明作任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對以上實(shí)施例所作的任何簡單修改、等同變化與修飾,均仍屬本發(fā)明技術(shù)方案的保護(hù)范圍。