2019運(yùn)維技能風(fēng)向標(biāo)
運(yùn)維是一個(gè)融合多學(xué)科(網(wǎng)絡(luò)、系統(tǒng)、開發(fā)、安全、應(yīng)用架構(gòu)、存儲(chǔ)等)的綜合性技術(shù)崗位,從最初的網(wǎng)絡(luò)管理(網(wǎng)管)發(fā)展到現(xiàn)在的系統(tǒng)運(yùn)維工程師、網(wǎng)絡(luò)運(yùn)維工程師、安全運(yùn)維工程師、運(yùn)維開發(fā)工程師等,可以看出,運(yùn)維的分工一直在細(xì)化,并且對(duì)綜合技能要求越來越高,而且 ,未來運(yùn)維的發(fā)展趨勢是高、精、尖,也就是運(yùn)維職場一定要站在一定的技術(shù)高度,在多個(gè)技術(shù)領(lǐng)域中,要精通某項(xiàng)技能,同時(shí)對(duì)技術(shù)一定要能掌控趨勢。
運(yùn)維職位的發(fā)展和趨勢
根據(jù)不同的運(yùn)維領(lǐng)域和技術(shù)面以及分工流程三個(gè)方面來了解下2019年運(yùn)維職位的發(fā)展趨勢。
按領(lǐng)域來劃分
- 基礎(chǔ)設(shè)施運(yùn)維:IDC/網(wǎng)絡(luò)運(yùn)維、服務(wù)器/存儲(chǔ)設(shè)備運(yùn)維
- 系統(tǒng)運(yùn)維:系統(tǒng)中間件運(yùn)維、云計(jì)算平臺(tái)運(yùn)維
- 數(shù)據(jù)運(yùn)維:數(shù)據(jù)庫運(yùn)維、大數(shù)據(jù)技術(shù)平臺(tái)運(yùn)維
- 應(yīng)用運(yùn)維:應(yīng)用軟件系統(tǒng)
- 云平臺(tái)運(yùn)維:公有云平臺(tái)運(yùn)維
- 容器運(yùn)維:基于容器服務(wù)的運(yùn)維
按技術(shù)切面來分
- 安全運(yùn)維
- 性能運(yùn)維
- 數(shù)據(jù)運(yùn)維
- 集成運(yùn)維
按流程來劃分
- 構(gòu)建/持續(xù)集成、發(fā)布
- 安裝部署、升級(jí)、遷移、合并、擴(kuò)展
- 配置、初始化、配置變更
- 備份、傳輸、恢復(fù)
- 日志、監(jiān)控、預(yù)警
- 診斷排查、優(yōu)化
系統(tǒng)運(yùn)維技能圖譜
系統(tǒng)運(yùn)維是運(yùn)維的基礎(chǔ),新的一年中,對(duì)基礎(chǔ)運(yùn)維技能要求也在提高,打好系統(tǒng)運(yùn)維基礎(chǔ),才能深入學(xué)習(xí)后面的各種運(yùn)維技能。
下圖列出了系統(tǒng)運(yùn)維要掌握的必備技能:
Web運(yùn)維技能圖譜
Web運(yùn)維是運(yùn)維崗位中崗位最多的一個(gè),薪資也相對(duì)較高,但需要掌握的知識(shí)點(diǎn)也比較多,新的技能要掌握,老的運(yùn)維技能也不能丟,下圖列出了Web運(yùn)維要掌握的各種必備技能。
大數(shù)據(jù)運(yùn)維技能圖譜
大數(shù)據(jù)從2017年開始逐漸走到生活的各個(gè)角落,2018年在逐漸落地,而在2019年,大數(shù)據(jù)依然火熱,加上國家對(duì)大數(shù)據(jù)產(chǎn)業(yè)的扶持,大數(shù)據(jù)產(chǎn)業(yè)在新的一年崗位需求一定會(huì)更加大,因此掌握大數(shù)據(jù)運(yùn)維技能,就走在了運(yùn)維的前沿,下圖列出了大數(shù)據(jù)運(yùn)維要掌握的各種必備技能。
容器運(yùn)維技能圖譜
容器的產(chǎn)生,是一次IT行業(yè)的革命,2015 年到 2016 年,是業(yè)界普遍認(rèn)為的容器技術(shù)爆發(fā)的一年,短短一年多時(shí)間里,容器技術(shù)在中國大陸完成了從零星概念到烽火燎原的壯舉。
時(shí)至今日,容器技術(shù)在國內(nèi)大多數(shù)企業(yè)中落地已成為一種共識(shí),而國內(nèi)的生態(tài)系統(tǒng),也呈現(xiàn)出了企業(yè)產(chǎn)品、開源社區(qū)和公有云齊頭并進(jìn)的良好局面。因此,2019年也是容器繼續(xù)快速落地的一年,下圖列出了大數(shù)據(jù)運(yùn)維要掌握的各種必備技能。
數(shù)據(jù)為王的時(shí)代
萬丈高樓平地起,高樓穩(wěn)不穩(wěn)取決于地基是否扎實(shí)。運(yùn)維數(shù)據(jù)便是運(yùn)維管理這座高樓的地基。運(yùn)維數(shù)據(jù)大致分為CMDB、日志、生產(chǎn)DB、知識(shí)庫四個(gè)方面。
- CMDB中文是配置管理數(shù)據(jù)庫,存儲(chǔ)與管理企業(yè)IT架構(gòu)中設(shè)備的各種配置信息,主要是IT資產(chǎn)管理信息。
- 日志數(shù)據(jù)保護(hù)了企業(yè)服務(wù)器上運(yùn)行的各種系統(tǒng)產(chǎn)生的應(yīng)用日志,系統(tǒng)日志、設(shè)備日志、數(shù)據(jù)庫日志等數(shù)據(jù),這部分?jǐn)?shù)據(jù)是企業(yè)數(shù)據(jù)的核心。
- DB數(shù)據(jù)主要是所有IT系統(tǒng)的數(shù)據(jù)庫信息,包括運(yùn)維管理系統(tǒng)本身的數(shù)據(jù)庫,數(shù)據(jù)庫包含生產(chǎn)數(shù)據(jù)庫、測試數(shù)據(jù)庫、開發(fā)數(shù)據(jù)庫三種類型。
- 知識(shí)庫主要存儲(chǔ)日常開發(fā)、測試、運(yùn)維管理中發(fā)生的事件、問題以及一些經(jīng)典問題的解決和常用的解決方案,主要起到運(yùn)維管理輔助的功能。
對(duì)數(shù)據(jù)的維護(hù)和管理只管重要,特別是日志數(shù)據(jù),對(duì)運(yùn)維來說,通過日志可以比較準(zhǔn)確全面地知道系統(tǒng)或是設(shè)備的運(yùn)行情況,可以返查問題產(chǎn)生的原因,還原問題發(fā)生的整個(gè)過程。通過日志也可以提前預(yù)測系統(tǒng)可能要發(fā)生的問題或是故障,如系統(tǒng)安全日志,如果網(wǎng)絡(luò)威脅會(huì)在系統(tǒng)安全日志中有一定的體現(xiàn)。
下面簡單介紹下,運(yùn)維重點(diǎn)收集的日志數(shù)據(jù)有哪些部分以及用途。
系統(tǒng)日志
系統(tǒng)日志主要指的是操作系統(tǒng)的日志,主要在/var/log下的各種日志信息。包含系統(tǒng)操作日志、系統(tǒng)安全日志、定時(shí)任務(wù)日志等。系統(tǒng)日志是運(yùn)維管理安全模塊中審計(jì)的重要依據(jù)。一般默認(rèn)的操作系統(tǒng)日志不能滿足要求,需要對(duì)系統(tǒng)的參數(shù)進(jìn)行修改,如為history命令加上時(shí)間戳、IP,并且長久保留歷史等功能。并且對(duì)日志文件進(jìn)行處理,不允許用戶進(jìn)行清空命令,只能追加。
應(yīng)用日志
應(yīng)用日志主要記錄應(yīng)用服務(wù)的健康運(yùn)行情況以及業(yè)務(wù)操作的具體日志兩部分。應(yīng)用監(jiān)控運(yùn)行情況反應(yīng)應(yīng)用服務(wù)的健康狀態(tài),如果應(yīng)用占用CPU或是內(nèi)存過高或是忽高忽低不定,都可以通過分析應(yīng)用日志結(jié)合業(yè)務(wù)操作日志得出結(jié)論。業(yè)務(wù)操作日志可以為業(yè)務(wù)審計(jì)提供主要依據(jù)。有一些系統(tǒng)喜歡把業(yè)務(wù)操作日志寫到數(shù)據(jù)庫中,這個(gè)也是需要注意的。不過不管在哪個(gè)地方,要求是不可缺少的,它為以后業(yè)務(wù)審計(jì)和問題返查提供依據(jù)。
數(shù)據(jù)庫日志
數(shù)據(jù)庫日志主要反饋數(shù)據(jù)庫的運(yùn)行情況。通過監(jiān)控和管理數(shù)據(jù)庫的日志,及時(shí)了解數(shù)據(jù)庫的運(yùn)行情況,遇到問題及時(shí)解決等??梢酝ㄟ^數(shù)據(jù)庫日志結(jié)合數(shù)據(jù)庫系統(tǒng)自帶的數(shù)據(jù)庫如Oracle的系統(tǒng)視圖v$開頭,MySQL的performance_schema等。雖然數(shù)據(jù)庫的一些信息不是存在日志中而是在數(shù)據(jù)庫里面,但是也可以作為數(shù)據(jù)庫日志的一部分進(jìn)行管理和監(jiān)控,已便我們及時(shí)知道數(shù)據(jù)庫的監(jiān)控狀況,從而預(yù)防可能出現(xiàn)的問題。
設(shè)備日志
設(shè)備日志一般是一個(gè)比較容易忽略的地方,但設(shè)備日志往往可以反映設(shè)備的運(yùn)行情況。交換機(jī)故障,防火墻故障等設(shè)備故障都可能引起大面積的系統(tǒng)和服務(wù)故障。所以設(shè)備日志一定要收集,分析和監(jiān)控預(yù)警。常用的設(shè)備日志有交換機(jī)日志、防火墻日志、網(wǎng)絡(luò)安全設(shè)備日志等。
這么多的日志,運(yùn)維要通過各種手段完成日志的收集、過濾分析、可視化展示,那么如何實(shí)現(xiàn)這些功能呢,方法很多,例如ELK集成套件(Elasticsearch,Logstash,Kibana)就可以輕松實(shí)現(xiàn)日志數(shù)據(jù)的實(shí)時(shí)收集、分析傳輸以及圖形化展示。
Elasticsearch是個(gè)開源分布式搜索引擎,提供搜集、分析、存儲(chǔ)數(shù)據(jù)三大功能。它的特點(diǎn)有:分布式,零配置,自動(dòng)發(fā)現(xiàn),索引自動(dòng)分片,索引副本機(jī)制,restful風(fēng)格接口,多數(shù)據(jù)源,自動(dòng)搜索負(fù)載等。
Logstash主要是用來日志的搜集、分析、過濾日志的工具,支持大量的數(shù)據(jù)獲取方式。一般工作方式為c/s架構(gòu),client端安裝在需要收集日志的主機(jī)上,Server端負(fù)責(zé)將收到的各節(jié)點(diǎn)日志進(jìn)行過濾、修改等操作在一并發(fā)往Elasticsearch上去。
Kibana也是一個(gè)開源和免費(fèi)的工具,Kibana可以為Logstash和ElasticSearch提供的日志分析友好的Web界面,可以幫助匯總、分析和搜索重要數(shù)據(jù)日志。
另外,還有Filebeat可以替換Logstash作為日志收集工具,F(xiàn)ilebeat隸屬于Beats。目前Beats包含四種工具:
- Packetbeat(搜集網(wǎng)絡(luò)流量數(shù)據(jù))
- Topbeat(搜集系統(tǒng)、進(jìn)程和文件系統(tǒng)級(jí)別的CPU和內(nèi)存使用情況等數(shù)據(jù))
- Filebeat(搜集文件數(shù)據(jù))
- Winlogbeat(搜集Windows事件日志數(shù)據(jù))
可以看到,Beats涵蓋了所有收集日志數(shù)據(jù)的各個(gè)方面。
那么要如何使用ELK呢,根據(jù)日志量的不同,對(duì)應(yīng)的ELK架構(gòu)也不盡相同,看下面幾個(gè)常見架構(gòu):
此架構(gòu)主要是將Logstash部署在各個(gè)節(jié)點(diǎn)上搜集相關(guān)日志、數(shù)據(jù),并經(jīng)過分析、過濾后發(fā)送給遠(yuǎn)端服務(wù)器上的Elasticsearch進(jìn)行存儲(chǔ)。Elasticsearch再將數(shù)據(jù)以分片的形式壓縮存儲(chǔ),并提供多種API供用戶查詢、操作。用戶可以通過Kibana Web直觀的對(duì)日志進(jìn)行查詢,并根據(jù)需求生成數(shù)據(jù)報(bào)表。
此架構(gòu)的優(yōu)點(diǎn)是搭建簡單,易于上手。缺點(diǎn)是Logstash消耗系統(tǒng)資源比較大,運(yùn)行時(shí)占用CPU和內(nèi)存資源較高。另外,由于沒有消息隊(duì)列緩存,可能存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)。此架構(gòu)建議供初學(xué)者或數(shù)據(jù)量小的環(huán)境使用。
由此衍生出來了第二種架構(gòu):
此架構(gòu)主要特點(diǎn)是引入了消息隊(duì)列機(jī)制,位于各個(gè)節(jié)點(diǎn)上的Logstash Agent(一級(jí)Logstash,主要用來傳輸數(shù)據(jù))先將數(shù)據(jù)傳遞給消息隊(duì)列(常見的有Kafka、Redis等),接著,Logstash Server(二級(jí)Logstash,主要用來拉取消息隊(duì)列數(shù)據(jù),過濾并分析數(shù)據(jù))將格式化的數(shù)據(jù)傳遞給Elasticsearch進(jìn)行存儲(chǔ)。由Kibana將日志和數(shù)據(jù)呈現(xiàn)給用戶。由于引入了Kafka(或者Redis)緩存機(jī)制,即使遠(yuǎn)端Logstash Server因故障停止運(yùn)行,數(shù)據(jù)也不會(huì)丟失,因?yàn)閿?shù)據(jù)已經(jīng)被存儲(chǔ)下來了。
這種架構(gòu)適合于較大集群、數(shù)據(jù)量一般的應(yīng)用環(huán)境,但由于二級(jí)Logstash要分析處理大量數(shù)據(jù),同時(shí)Elasticsearch也要存儲(chǔ)和索引大量數(shù)據(jù),因此它們的負(fù)荷會(huì)比較重,解決的方法是將它們配置為集群模式,以分擔(dān)負(fù)載。
此架構(gòu)的優(yōu)點(diǎn)在于引入了消息隊(duì)列機(jī)制,均衡了網(wǎng)絡(luò)傳輸,從而降低了網(wǎng)絡(luò)閉塞尤其是丟失數(shù)據(jù)的可能性,但依然存在Logstash占用系統(tǒng)資源過多的問題,在海量數(shù)據(jù)應(yīng)用場景下,可能會(huì)出現(xiàn)性能瓶頸。
還有第三種架構(gòu):
這個(gè)架構(gòu)是在上面第二個(gè)架構(gòu)基礎(chǔ)上改進(jìn)而來的,主要是將前端收集數(shù)據(jù)的Logstash Agent換成了Filebeat,消息隊(duì)列使用了Kafka集群,然后將Logstash和Elasticsearch都通過集群模式進(jìn)行構(gòu)建,此架構(gòu)適合大型集群、海量數(shù)據(jù)的業(yè)務(wù)場景,它通過將前端Logstash Agent替換成Filebeat,有效降低了收集日志對(duì)業(yè)務(wù)系統(tǒng)資源的消耗。同時(shí),消息隊(duì)列使用Kafka集群架構(gòu),有效保障了收集數(shù)據(jù)的安全性和穩(wěn)定性,而后端Logstash和Elasticsearch均采用集群模式搭建,從整體上提高了ELK系統(tǒng)的高效性、擴(kuò)展性和吞吐量。
用大數(shù)據(jù)思維做運(yùn)維監(jiān)控
大數(shù)據(jù)分析最早就來源于運(yùn)維人的日志分析,到逐漸發(fā)展對(duì)各種業(yè)務(wù)的分析,人們發(fā)現(xiàn)這些數(shù)據(jù)蘊(yùn)涵著非常大的價(jià)值,通過實(shí)時(shí)監(jiān)測、跟蹤研究對(duì)象在互聯(lián)網(wǎng)上產(chǎn)生的海量行為數(shù)據(jù),進(jìn)行挖掘分析,揭示出規(guī)律性的東西,提出研究結(jié)論和對(duì)策。這就是大數(shù)據(jù)的用途。
同樣,通過大數(shù)據(jù)分析,我們可以得到各種指標(biāo),例如:
- 在業(yè)務(wù)層面,如團(tuán)購業(yè)務(wù)每秒訪問數(shù),團(tuán)購券每秒驗(yàn)券數(shù),每分鐘支付、創(chuàng)建訂單等
- 在應(yīng)用層面,每個(gè)應(yīng)用的錯(cuò)誤數(shù),調(diào)用過程,訪問的平均耗時(shí),95線等
- 在系統(tǒng)資源層面:如CPU、內(nèi)存、Swap、磁盤、Load、主進(jìn)程存活等
- 在網(wǎng)絡(luò)層面: 如丟包、ping存活、流量、TCP連接數(shù)等
而這些指標(biāo),剛好是運(yùn)維特別需要的東西。通過大數(shù)據(jù)分析出的這些指標(biāo),可以解決如下方面的問題:
- 系統(tǒng)健康狀況監(jiān)控
- 查找故障根源
- 系統(tǒng)瓶頸診斷和調(diào)優(yōu)
- 追蹤安全相關(guān)問題
那么如何用大數(shù)據(jù)思維做運(yùn)維呢,大數(shù)據(jù)架構(gòu)上的一個(gè)思維就是:提供一個(gè)平臺(tái)讓運(yùn)維方便解決這些問題, 而不是,讓大數(shù)據(jù)平臺(tái)去解決出現(xiàn)的問題。
基本的一個(gè)大數(shù)據(jù)運(yùn)維架構(gòu)是這樣的:
對(duì)于運(yùn)維的監(jiān)控,利用大數(shù)據(jù)思維,需要分三步走:
- 獲取需要的數(shù)據(jù)
- 過濾出異常數(shù)據(jù)并設(shè)置告警閥值
- 通過第三方監(jiān)控平臺(tái)進(jìn)行告警
所有系統(tǒng)最可靠的就是日志輸出,系統(tǒng)是不是正常,發(fā)生了什么情況,我們以前是出了問題去查日志,或者自己寫個(gè)腳本定時(shí)去分析。現(xiàn)在這些事情都可以整合到一個(gè)已有的平臺(tái)上,我們要做的就是定義分析日志的的邏輯。
好啦,這就是今天要給大家介紹的2019核心運(yùn)維技能啦,抓住時(shí)機(jī),開始全新學(xué)習(xí)吧!2019,你的全新開始!!!