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