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