當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 《機(jī)電信息》
[導(dǎo)讀]摘要:隨著分布式計(jì)算服務(wù)的不斷發(fā)展,信息系統(tǒng)所使用的服務(wù)資源越來(lái)越多,所涉及的設(shè)備也越來(lái)越多,而出于成本的考慮,運(yùn)維人員卻越來(lái)越少,因此,如何通過(guò)運(yùn)維自動(dòng)化緩解工作人員的壓力顯得尤為重要?,F(xiàn)通過(guò)Zabbix自動(dòng)告警配合Jenkins的任務(wù)配置,提出了一種能夠可視化、可追蹤的自動(dòng)故障處理方式,可以有效提升系統(tǒng)的自動(dòng)化運(yùn)維水平。

引言

隨著分布式系統(tǒng)以及x86服務(wù)器的大規(guī)模運(yùn)營(yíng),系統(tǒng)所涉及的主機(jī)越來(lái)越多,應(yīng)用的服務(wù)器類(lèi)型也越來(lái)越多,使得業(yè)務(wù)復(fù)雜度逐步提升,運(yùn)維人員的工作強(qiáng)度和壓力也越來(lái)越大。為解決這一問(wèn)題,提升維護(hù)工作的自動(dòng)化水平勢(shì)在必行。在系統(tǒng)日常維護(hù)工作中,故障處理是最常見(jiàn)的問(wèn)題,對(duì)常見(jiàn)故障進(jìn)行自動(dòng)化處理,能夠在極大程度上減輕維護(hù)人員的壓力。本文將基于Zabbix和Jenkins,研究并設(shè)計(jì)一個(gè)自動(dòng)化故障處理方案。

!$0ZZab和ienkans簡(jiǎn)介

Zabbix是開(kāi)源分布式監(jiān)控方案之一,具有良好的可用性和可靠性,能夠?qū)ο到y(tǒng)中的機(jī)器磁盤(pán)、CPU、內(nèi)存以及網(wǎng)絡(luò)狀況進(jìn)行實(shí)時(shí)監(jiān)控并進(jìn)行可視化呈現(xiàn)。相對(duì)于其他的開(kāi)源監(jiān)控軟件,如Nagios、Cacti等,Zabbix具有更好的中文兼容性以及更好的文檔支持[l]。

Jenkins是一個(gè)開(kāi)源軟件,其主要目的是為了對(duì)于持續(xù)的重復(fù)性工作進(jìn)行可視化展現(xiàn)[2],旨在提供一個(gè)開(kāi)放易用的軟件平臺(tái)。Jenkins具有豐富的插件,包括ssH、0racle、HTTPP0sT等,提供了易于擴(kuò)展的能力,為配置化操作提供了便利[3]。

2系統(tǒng)設(shè)計(jì)總體介紹

系統(tǒng)總體設(shè)計(jì)流程如圖1所示。

故障自動(dòng)化處理是通過(guò)使用Zabbix對(duì)主機(jī)進(jìn)行監(jiān)控,配合Zabbix配置的觸發(fā)器進(jìn)行動(dòng)作觸發(fā)、告警,并通過(guò)調(diào)用在Jenkins配置的任務(wù)而實(shí)現(xiàn)的,并且可以運(yùn)用短信進(jìn)行可視化追蹤呈現(xiàn)。整體設(shè)計(jì)包括4個(gè)模塊:服務(wù)器監(jiān)控模塊、告警觸發(fā)模塊、預(yù)案調(diào)用模塊、可視化配置操作模塊。

2.!服務(wù)器監(jiān)控模塊

服務(wù)器監(jiān)控模塊主要用來(lái)采集每臺(tái)生產(chǎn)機(jī)器的信息,是整個(gè)監(jiān)控系統(tǒng)的核心。利用部署在每臺(tái)生產(chǎn)機(jī)器上的ZabbixClient客戶(hù)端對(duì)主機(jī)的信息進(jìn)行采集,信息包括內(nèi)存、CPU、磁盤(pán)、網(wǎng)絡(luò)狀況以及服務(wù)運(yùn)行情況等。

監(jiān)控平臺(tái)通過(guò)服務(wù)器主機(jī)IP或者主機(jī)名對(duì)于不同的主機(jī)進(jìn)行區(qū)分,實(shí)時(shí)對(duì)系統(tǒng)上報(bào)的信息進(jìn)行處理,同時(shí)進(jìn)行數(shù)據(jù)存儲(chǔ)和展示。

2.2告警觸發(fā)模塊

告警觸發(fā)模塊是通過(guò)配置在Zabbix主機(jī)中的觸發(fā)器和閥值來(lái)實(shí)現(xiàn)的,例如,當(dāng)CPU可利用率高于閥值時(shí)就會(huì)進(jìn)行告警:內(nèi)存剩余可利用率低于閥值觸發(fā)告警。對(duì)于一個(gè)具有較小容量的磁盤(pán)來(lái)說(shuō),80%的磁盤(pán)利用率已經(jīng)具有很高的風(fēng)險(xiǎn)性了,而對(duì)于一個(gè)較大空間的磁盤(pán)而言,l0%的磁盤(pán)剩余足夠安全運(yùn)行很長(zhǎng)時(shí)間。因此,對(duì)于不同的指標(biāo)、不同的業(yè)務(wù)場(chǎng)景,需要配置不同的觸發(fā)器以及閥值。服務(wù)器監(jiān)控模塊中的數(shù)據(jù)一旦滿(mǎn)足觸發(fā)器條件,觸發(fā)器即會(huì)工作,觸發(fā)相應(yīng)的動(dòng)作,Zabbix提供了多種操作方式,如Curl調(diào)用、ssH命令執(zhí)行以及短信郵件等操作。

2.3預(yù)案調(diào)用模塊

相對(duì)于Zabbix提供的操作方式,Jenkins的擴(kuò)展性更為優(yōu)秀,提供更多插件,Jenkins提供了極具擴(kuò)展性的使用方式,無(wú)需進(jìn)行代碼編寫(xiě),即可實(shí)現(xiàn)數(shù)據(jù)庫(kù)sOL執(zhí)行、shell腳本執(zhí)行、HTTP請(qǐng)求執(zhí)行等功能,具有優(yōu)秀的可視化能力。本文采用ssH方法對(duì)遠(yuǎn)程主機(jī)的服務(wù)進(jìn)行重啟,磁盤(pán)空間清理、對(duì)數(shù)據(jù)庫(kù)長(zhǎng)會(huì)話(huà)進(jìn)行監(jiān)控處理、對(duì)鎖表進(jìn)行殺鎖操作等,均可以通過(guò)Jenkins的配置操作方法實(shí)現(xiàn)。

2.4可視化配置模塊

在Zabbix以及Jenkins中通過(guò)配置化的操作告警以及觸發(fā)器和預(yù)案處理方式進(jìn)行配置,避免了傳統(tǒng)告警觸發(fā)機(jī)制的黑盒化、腳本化。將故障和數(shù)據(jù)清晰展示在維護(hù)人員面前,進(jìn)一步提高了運(yùn)維水平,并降低了人員要求。

3系統(tǒng)配置實(shí)現(xiàn)方法

3.1系統(tǒng)短信發(fā)送

Zabbix的短信發(fā)送預(yù)置方式為調(diào)用串口進(jìn)行短信發(fā)送,直接調(diào)用即可發(fā)送到設(shè)備。在目前的系統(tǒng)建設(shè)中,較少采用這種方式,而是采用PosT請(qǐng)求或者數(shù)據(jù)庫(kù)插表的方式實(shí)現(xiàn)。短信內(nèi)容在數(shù)據(jù)庫(kù)插入表之后,后臺(tái)發(fā)送進(jìn)行掃描,這種處理方式具有較好的抗擠壓性,可以提供較好的緩沖能力。本文通過(guò)編寫(xiě)腳本,將告警短信的接收者和接受短信設(shè)置為參數(shù),傳入后臺(tái)sqlplus腳本中進(jìn)行數(shù)據(jù)插入,Zabbix的短信模板如下:

Problems=ar=eta=(EVENT.TIME}on(EVENT.DATE}Problemname:EVENT.NAME}:(ITEM.VALUE}Hos=:(HosT.NAME}

severi=y:(EVENT.sEVERITY}

originalproblemID:(EVENT.ID}(TRIGGER.URL}

對(duì)于sqlPlus腳本而言,不同參數(shù)的傳遞是根據(jù)空格區(qū)分的,需要對(duì)后續(xù)參數(shù)進(jìn)行合并,sqlplus腳本中第一個(gè)參數(shù)為接收者號(hào)碼,而第二、第三以及第N個(gè)參數(shù)均為告警內(nèi)容,在shell中使用msg='echos(@:2}'進(jìn)行合并,將msg向后傳輸即可,最終生成接收者號(hào)碼和短信內(nèi)容的腳本進(jìn)行傳送。

3.2動(dòng)作調(diào)用

觸發(fā)器被觸發(fā)后,調(diào)用短信模塊將告警信息發(fā)送給接收者,同時(shí)利用Curl工具調(diào)用Jenkins中已經(jīng)配置好的預(yù)案。

Jenkins出于安全的考慮,在遠(yuǎn)程調(diào)用過(guò)程中,需要通過(guò)驗(yàn)證用戶(hù)密碼和=oken來(lái)進(jìn)行安全認(rèn)證。為此,建議設(shè)置獨(dú)立的用戶(hù)進(jìn)行遠(yuǎn)程調(diào)用。遠(yuǎn)程調(diào)用的格式是由用戶(hù)名、key、JoB對(duì)應(yīng)的URL以及=oken共同構(gòu)成。例如:h==p://=riggerurl:t2一4f3347t982c一ca12一cc69323190a3@IP:Por=/0enkins/0ob/tblogspar=i=iontrop/builtj=oken==okenName。

其中,key的查看需要在Jenkins設(shè)置中通過(guò)查看用戶(hù)APIToken實(shí)現(xiàn),且每次查看后都會(huì)發(fā)生變更。=oken保護(hù)是針對(duì)任務(wù)而單獨(dú)設(shè)置,不同的任務(wù)可以具有不同的=oken,是通過(guò)在Jenkins任務(wù)中"觸發(fā)遠(yuǎn)程構(gòu)建(例如,使用腳本)"來(lái)設(shè)定的。3.3Jenkins預(yù)案配置

系統(tǒng)觸發(fā)告警后,如果立即觸發(fā)故障處理,有可能在測(cè)試中造成系統(tǒng)不可用,因此,在預(yù)案被調(diào)用后,故障處理的最合適時(shí)間應(yīng)該是等待N分鐘后,并能夠提供可取消的方案,從而避免被認(rèn)為是誤操作。在本文設(shè)計(jì)的方案中,調(diào)用預(yù)案后,通過(guò)Jenkins發(fā)送觸發(fā)短信。系統(tǒng)提供URL可以實(shí)時(shí)取消,如果無(wú)人取消或者操作,系統(tǒng)將繼續(xù)下一步,等待任務(wù),并在完成后進(jìn)行結(jié)果告知。

觸發(fā)短信的模板是通過(guò)Jenkins預(yù)置參數(shù)來(lái)構(gòu)建的,Jenkins的常用預(yù)置參數(shù)如表1所示:

利用這些內(nèi)置參數(shù),可以構(gòu)建短信模板:如"xxxx告警觸發(fā)任務(wù):s(JoBNAME},s(BUILDURL},讓系統(tǒng)等待5min后自動(dòng)處理,可通過(guò)點(diǎn)擊URL查看或取消",系統(tǒng)等待功能可通過(guò)sleep命令實(shí)現(xiàn),最終配置如圖2所示。

完成后可以進(jìn)一步在Jenkins中添加其他故障處理配置,如重啟服務(wù)、清理磁盤(pán)文件、調(diào)用數(shù)據(jù)庫(kù)腳本等,從而實(shí)現(xiàn)系統(tǒng)故障的自動(dòng)化處理。

3.4Zabbix動(dòng)作配置

Zabbix采集到的數(shù)據(jù)經(jīng)過(guò)觸發(fā)器后,需要調(diào)用Jenkins中的任務(wù)進(jìn)行處理,在Zabbix中進(jìn)行動(dòng)作添加即可實(shí)現(xiàn)。在Zabbix的動(dòng)作操作中選擇Zabbix服務(wù)器執(zhí)行命令,腳本如下:

curl-xPosTh==p://=riggerurl:t2一4f3347t902c一ca12一cc69323190a3@IP:Por=/0enkins/0ob/tblogspar=i=iontrop/builtj=oken==okenName,即可調(diào)用相關(guān)配置預(yù)案從而進(jìn)行相關(guān)處理。

4方案實(shí)現(xiàn)效果

在Zabbix收集到的數(shù)據(jù)經(jīng)過(guò)服務(wù)器處理后,如果達(dá)到了觸發(fā)器條件,則會(huì)首先發(fā)送告警短信給運(yùn)維人員,然后調(diào)用Jenkins中的預(yù)置任務(wù)進(jìn)行處理。Jenkins再次發(fā)送確認(rèn)短信,如果無(wú)人操作,則繼續(xù)工作,完成任務(wù)并發(fā)送結(jié)束告知短信。系統(tǒng)設(shè)計(jì)的最終效果如圖3所示。

5結(jié)語(yǔ)

隨著分布式系統(tǒng)的廣泛應(yīng)用,可視化維護(hù)以及自動(dòng)化運(yùn)維已經(jīng)成為當(dāng)前研究的熱點(diǎn)話(huà)題,相對(duì)于傳統(tǒng)的監(jiān)控告警、人工上線(xiàn)等處理方式,本文設(shè)計(jì)的基于Zabbix和Jenkins的自動(dòng)化故障處理方案具有可視化、可追蹤的特點(diǎn),一方面實(shí)現(xiàn)了對(duì)系統(tǒng)健康度的監(jiān)控,另一方面能夠?qū)τ诔R?jiàn)故障進(jìn)行實(shí)時(shí)自動(dòng)處理,具有一定的實(shí)用價(jià)值和先進(jìn)性,并進(jìn)一步提高了運(yùn)維質(zhì)量,有效緩解了運(yùn)維人員的工作壓力。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉