概述
應(yīng)用上線后,運(yùn)維工作才剛開(kāi)始,具體工作可能包括:升級(jí)版本上線工作、服務(wù)監(jiān)控、應(yīng)用狀態(tài)統(tǒng)計(jì)、日常服務(wù)狀態(tài)巡檢、突發(fā)故障處理、服務(wù)日常變更調(diào)整、集群管理、服務(wù)性能評(píng)估優(yōu)化、數(shù)據(jù)庫(kù)管理優(yōu)化、隨著應(yīng)用PV增減進(jìn)行應(yīng)用架構(gòu)的伸縮、安全、運(yùn)維開(kāi)發(fā)工作。
今天重點(diǎn)介紹運(yùn)維流程管理、運(yùn)維發(fā)布變更、運(yùn)維監(jiān)控告警三個(gè)方面所需要的工具。
1、運(yùn)維流程管理工具
1.發(fā)布變更流程管理工具
做為系統(tǒng)接口與其他角色的工作銜接。并提供審批環(huán)節(jié)控制發(fā)布變更的風(fēng)險(xiǎn)。流程管理工具并不負(fù)責(zé)具體的業(yè)務(wù)操作的執(zhí)行,只是作為單據(jù)系統(tǒng)跟蹤流程和確保閉環(huán)。
2.告警和突發(fā)管理工具
體現(xiàn)業(yè)務(wù)受損的告警自動(dòng)建單管理。人工確認(rèn)之后升級(jí)為突發(fā)單。通過(guò)建單來(lái)管理告警和突發(fā)確保流程的閉環(huán),以及每次故障都能夠總結(jié)出經(jīng)驗(yàn),并為度量業(yè)務(wù)的可用性提供KPI。
2、運(yùn)維發(fā)布變更工具
1.版本管理工具(數(shù)據(jù)庫(kù))
所有的發(fā)布應(yīng)該以版本管理為起點(diǎn)。研發(fā)給的版本包先入版本管理工具,再?gòu)陌姹竟芾砉ぞ叻职l(fā)到現(xiàn)網(wǎng)發(fā)布。杜絕 rsync 一臺(tái)服務(wù)器發(fā)布另外一臺(tái)的做法。
2.配置管理工具(數(shù)據(jù)庫(kù))
版本加配置等于現(xiàn)網(wǎng)每臺(tái)機(jī)器的狀態(tài)。最粗粒度的配置管理是到 IP 級(jí)別,相當(dāng)于對(duì)機(jī)器做資產(chǎn)管理,分組到不同的業(yè)務(wù),模塊和大區(qū)等業(yè)務(wù)概念上。細(xì)粒度一點(diǎn)會(huì)管理到進(jìn)程以及進(jìn)程的相關(guān)配置。
3.配置和版本下發(fā)工具
把指定的版本,結(jié)合配置好的配置下發(fā)到現(xiàn)網(wǎng)的機(jī)器上。不同的版本和配置方式需要完全不同的下發(fā)方式。以 ssh/fabric 為代表的下發(fā)方式是以腳本為中心的。以 puppet/chef 為代表的下發(fā)方式是以配置為中心的。
4.現(xiàn)網(wǎng)狀態(tài)同步工具
為了規(guī)避現(xiàn)網(wǎng)狀態(tài)漂移,與管理工具內(nèi)的記錄不一致。需要有一個(gè)工具定時(shí)上報(bào)現(xiàn)網(wǎng)的實(shí)際狀況。
5.服務(wù)調(diào)度工具
發(fā)布變更經(jīng)常需要一個(gè)串行的流程,先做A模塊,再做B模塊。很多機(jī)器的時(shí)候,需要把能并發(fā)的操作并發(fā)執(zhí)行,不能并發(fā)的操作確保串行執(zhí)行。同時(shí)很多發(fā)布變更流程需要操作管理范圍外的服務(wù),比如云端的DNS服務(wù)器記錄等。這就需要有一個(gè)服務(wù)調(diào)度工具統(tǒng)一調(diào)度配置和版本下發(fā)工具,流程單據(jù)工具,以及其他系統(tǒng)的API接口共同組裝成一個(gè)流程。
6.資源管理和隔離工具
以xen/kvm為代表的工具讓運(yùn)維可以更靈活的切割資源。比如虛擬機(jī)的快速起停,ip在idc內(nèi)的漂移等。以 lxc/docker 為代表的工具讓運(yùn)維可以進(jìn)一步的切割資源到進(jìn)程級(jí)別。資源隔離代理的細(xì)粒度的資源控制可以獲得更好的資源利用率,以及更容易進(jìn)行可伸縮的資源配置。
7.發(fā)布變更統(tǒng)一界面
包裝所有的下層工具,提供簡(jiǎn)單的界面完成標(biāo)準(zhǔn)化的發(fā)布變更操作。
3、運(yùn)維監(jiān)控告警工具
1.采集工具
一般是采集日志文件,也可以是定時(shí)輪詢 DB 或者其他系統(tǒng)的接口。流行的開(kāi)源方案是 logstash。
2.收集工具
采集工具上報(bào)給收集工具?;蛘哂砷_(kāi)發(fā)直接修改代碼上報(bào)指標(biāo)給收集工具。流程的開(kāi)源方案還是 logstash。
3.統(tǒng)計(jì)入庫(kù)工具
上報(bào)可能是每次調(diào)用就上報(bào)一次,統(tǒng)計(jì)工具負(fù)責(zé)統(tǒng)計(jì)出一分鐘內(nèi)的次數(shù)。上報(bào)也可能是每5秒上報(bào)一次數(shù)值,統(tǒng)計(jì)工具負(fù)責(zé)統(tǒng)計(jì)出一分鐘內(nèi)的最大值。統(tǒng)計(jì)工具的存在是為了上報(bào)的方便。流行的開(kāi)源方案是 statsd,也有大公司基于 storm 來(lái)做二次開(kāi)發(fā)的。
4.時(shí)間序列數(shù)據(jù)庫(kù)
所有定時(shí)指標(biāo)會(huì)落地到數(shù)據(jù)庫(kù)里。監(jiān)控告警所需要的數(shù)據(jù)庫(kù)需要能夠支撐非常大的數(shù)據(jù)量,但是并沒(méi)有很嚴(yán)格的 ACID 要求。
5.運(yùn)維事件數(shù)據(jù)庫(kù)
記錄所有的告警。包括從其他系統(tǒng)獲得告警,以及對(duì)現(xiàn)網(wǎng)的所有變更操作記錄。這些數(shù)據(jù)用于支撐告警的原因定位。
6.指標(biāo)異常檢測(cè)工具
基于數(shù)學(xué)模型發(fā)現(xiàn)指標(biāo)是否與過(guò)去的穩(wěn)定模式背離,而推測(cè)出現(xiàn)網(wǎng)狀態(tài)的變化。
7.撥測(cè)工具
定時(shí) PING 或者 HTTP GET,模擬實(shí)際用戶發(fā)現(xiàn)服務(wù)是否中斷,產(chǎn)生告警。同時(shí)也產(chǎn)生指標(biāo)上報(bào)給收集系統(tǒng)。撥測(cè)又分為本地?fù)軠y(cè),和遠(yuǎn)程撥測(cè)。本地?fù)軠y(cè)可以用于發(fā)現(xiàn)磁盤(pán)只讀等本機(jī)告警。遠(yuǎn)程撥測(cè)可以模擬用戶的地理分布,把網(wǎng)絡(luò)的鏈路狀況也包含在撥測(cè)覆蓋的范圍內(nèi)。
8.告警收斂工具
綜合所有來(lái)源的告警,進(jìn)行頻率收斂,根源分析。統(tǒng)一匯總成報(bào)告催促人工修復(fù)。
9.告警自動(dòng)修復(fù)工具
接受告警進(jìn)行自動(dòng)化的處理。幫運(yùn)維完成固定的故障機(jī)下架退庫(kù)等操作?;蛘咴跇I(yè)務(wù)本身沒(méi)有做高可用的情況下,做故障機(jī)替換,ip漂移等現(xiàn)網(wǎng)修復(fù)操作,一定程度地提高業(yè)務(wù)可用性。
10.告警通知工具
重要的告警需要升級(jí)為電話。需要有高可用的電話,短信,微信等通知接口。
11.監(jiān)控告警統(tǒng)一界面
屏蔽下層各種工具,提供統(tǒng)一的agent安裝,指標(biāo)采集設(shè)置,指標(biāo)曲線展示,告警查詢的界面。從一個(gè)地方就可以知道現(xiàn)網(wǎng)的所有問(wèn)題。
篇幅有限,關(guān)于linux運(yùn)維管理工具方面的內(nèi)容就介紹到這,實(shí)際上基本是只有在甲方才有可能實(shí)現(xiàn)的比較完整,大家也可以針對(duì)性去做一個(gè)了解。
后面會(huì)分享更多關(guān)于devops和DBA方面內(nèi)容,感興趣的朋友可以關(guān)注下!
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。