這些自動(dòng)化運(yùn)維技巧讓網(wǎng)絡(luò)運(yùn)維不再背鍋

2021-02-23    分類: 網(wǎng)站建設(shè)

“網(wǎng)絡(luò)就像wifi,沒(méi)有故障的時(shí)候,就沒(méi)有人意識(shí)到它的存在”,這句話有無(wú)數(shù)的翻版,但是對(duì)于網(wǎng)絡(luò)工程師來(lái)說(shuō),這就是現(xiàn)身說(shuō)法。

由于即便是在上千人的公司,網(wǎng)絡(luò)工程師的人數(shù)也僅僅是個(gè)位數(shù),所以他們的工作也鮮為人知 。

“網(wǎng)絡(luò)是不是有問(wèn)題?”這句話幾乎成了所有SRE排錯(cuò)時(shí)的口頭禪,如果這個(gè)時(shí)候網(wǎng)絡(luò)工程師表示沉默,或者無(wú)法拿出足夠的證據(jù),那背鍋幾乎是無(wú)疑的。

如何讓網(wǎng)絡(luò)環(huán)境的運(yùn)行狀態(tài)更加透明?如何在每次業(yè)務(wù)故障的時(shí)候自證清白?這不僅是基礎(chǔ)服務(wù)團(tuán)隊(duì)要關(guān)心的內(nèi)容,更是整個(gè)技術(shù)團(tuán)隊(duì)想要了解的黑匣子。

監(jiān)控

這些自動(dòng)化運(yùn)維技巧讓網(wǎng)絡(luò)運(yùn)維不再背鍋

網(wǎng)絡(luò)設(shè)備存活監(jiān)控

對(duì)于SRE來(lái)說(shuō),需要監(jiān)控程序是否正常;對(duì)于主機(jī)組來(lái)說(shuō),需要監(jiān)控服務(wù)器硬件是否正常;對(duì)于網(wǎng)絡(luò)來(lái)說(shuō),我們首先需要關(guān)心網(wǎng)絡(luò)設(shè)備是否可達(dá)。當(dāng)一臺(tái)TOR不可達(dá)時(shí),基本上預(yù)示著會(huì)有一片服務(wù)器不可達(dá),業(yè)務(wù)的痛感是相當(dāng)強(qiáng)烈的。

網(wǎng)絡(luò)設(shè)備的監(jiān)控最好和業(yè)務(wù)監(jiān)控系統(tǒng)盡量解藕,因?yàn)榫W(wǎng)絡(luò)故障極有可能引發(fā)業(yè)務(wù)系統(tǒng)異常,如果恰巧導(dǎo)致的是業(yè)務(wù)的監(jiān)控系統(tǒng)異常,那網(wǎng)絡(luò)設(shè)備的告警將失去可靠性,且不說(shuō)“監(jiān)控不準(zhǔn)”這個(gè)鍋是誰(shuí)的,這種局面會(huì)讓網(wǎng)絡(luò)工程師Trouble Shooting時(shí)陷入被動(dòng),延長(zhǎng)了故障時(shí)間。

每一個(gè)網(wǎng)工在走出校門的那一刻,都已經(jīng)具備基本的編程基礎(chǔ), 況且交換機(jī)的數(shù)量和服務(wù)器的數(shù)量有著量級(jí)上的差別,所以如果你能看懂幾句python,100+的python代碼即可搞定一個(gè)簡(jiǎn)易的設(shè)備存活監(jiān)控的程序,Github中可搜索 NodePingManage 就是一個(gè)很好的例子,還可以通過(guò)多點(diǎn)部署來(lái)消除單點(diǎn)故障。有了這類工具, 從此全網(wǎng)的各個(gè)角落的可達(dá)性終于明了, 漆黑的網(wǎng)絡(luò)環(huán)境,似乎反射出了一絲光明。

設(shè)備日志監(jiān)控

設(shè)備存活告警雖然可以預(yù)警很多異常,并且準(zhǔn)確度很高,但是對(duì)于冗余性做得比較好的網(wǎng)絡(luò),能Ping通并不代表完全沒(méi)問(wèn)題,此時(shí),細(xì)心的網(wǎng)絡(luò)工程師會(huì)去看日志,這里可以反映出更多細(xì)節(jié)。對(duì)于萬(wàn)臺(tái)服務(wù)器規(guī)模,網(wǎng)絡(luò)設(shè)備的數(shù)量也就千臺(tái),但是逐臺(tái)查看日志,人肉判斷是否有異常,那簡(jiǎn)直是場(chǎng)噩夢(mèng)。

《日志告警》程序就成為網(wǎng)絡(luò)工程師們居家旅行必備之良品,只需要一臺(tái)Syslog服務(wù)器,部署一個(gè)日志監(jiān)控程序,當(dāng)發(fā)現(xiàn)日志中出現(xiàn)特殊關(guān)鍵字,觸發(fā)郵件+短信告警即可。這么高大上的工具當(dāng)然需要更多的編程技巧,150+ python代碼才能搞定。Github中類似的解決方法有很多,搜索LogScanWarning即可得到一個(gè)示范案例。

從此你可以在業(yè)務(wù)無(wú)感的情況下,發(fā)現(xiàn)網(wǎng)絡(luò)中的異常, 例如:風(fēng)扇轉(zhuǎn)速異常/電源模塊故障/ospf鄰居狀態(tài)抖動(dòng)/端口flapping/有黑客在爆破我的設(shè)備/設(shè)備硬件parity error/模塊收發(fā)光異常/Kernel報(bào)錯(cuò)等等。優(yōu)秀的網(wǎng)絡(luò)工程師可以在故障發(fā)生時(shí)快速定位,牛X的網(wǎng)絡(luò)工程師可以在故障發(fā)生前就消除隱患,防范于未然。

流量監(jiān)控

高速公路鋪得再好,也架不住車多人多。確保網(wǎng)絡(luò)順暢,品質(zhì)優(yōu)良,沒(méi)有丟包,延時(shí)穩(wěn)定也是網(wǎng)絡(luò)工程師的職責(zé) ,此時(shí)流量監(jiān)控就成了剛需。

業(yè)務(wù)的飛速發(fā)展體現(xiàn)在網(wǎng)絡(luò)層面就是DC內(nèi)流量上漲/DCI流量上漲/IDC出口流量上漲/專線流量上漲,流量監(jiān)控可以準(zhǔn)確掌握業(yè)務(wù)的高峰和低谷,當(dāng)線路需要擴(kuò)容時(shí),帶寬使用率是老板參考的重要數(shù)據(jù)。一般情況下線路中的流量超過(guò)50%即可發(fā)起擴(kuò)容,因?yàn)檫@意味著當(dāng)備份鏈路down之后,主線路將出現(xiàn)擁塞。

接口error監(jiān)控

接口的Error包監(jiān)控和流量監(jiān)控一樣,均可以通過(guò)snmp采集,OID:ifOutErrors,ifInErrors , Error包出現(xiàn)增量會(huì)直接影響業(yè)務(wù)的服務(wù)質(zhì)量,一旦發(fā)現(xiàn)需要優(yōu)先處理,否則業(yè)務(wù)會(huì)拎著一堆TcpTimeOut指標(biāo)找上門來(lái)。

當(dāng)然,可以通過(guò)snmp采集的信息還有很多,例如:設(shè)備的CPU/內(nèi)存/溫度/防火墻的Session等,掌握這些信息對(duì)了解設(shè)備的工作環(huán)境也頗有益處,如果你要做一個(gè)自動(dòng)化巡檢工具,那么這些指標(biāo)必不可少。市面上提供網(wǎng)絡(luò)監(jiān)控的軟件有很多,例如:Falcon / Zabbix / Solarwinds / Cacti / Nigos等,有開(kāi)源的也有收費(fèi)的,功能類似,此處不加贅述。

制造自動(dòng)化運(yùn)維工具

第一章中的組合拳打完之后,基本上不會(huì)出現(xiàn)“意料之外的故障”,所有的異常都應(yīng)該有據(jù)可查,當(dāng)SRE莫名其妙提出對(duì)網(wǎng)絡(luò)環(huán)境的質(zhì)疑時(shí),你應(yīng)該早已心中有譜。

但是網(wǎng)絡(luò)工程師的工作并非只有救火,日常運(yùn)維工作中,經(jīng)常需要配合業(yè)務(wù)發(fā)展做一些線上變更/ 機(jī)房擴(kuò)建/業(yè)務(wù)類故障排查等。作為一名“懶惰”的網(wǎng)絡(luò)工程師,程序可以幫忙點(diǎn)什么忙呢?

UserDevice Tracker

這個(gè)名詞借用于Solarwinds套裝中的一個(gè)組件,直譯為“用戶設(shè)備追蹤器” , 在中小型企業(yè)網(wǎng)運(yùn)維中,經(jīng)常會(huì)有這樣的需求:

  • 知道服務(wù)器的IP,請(qǐng)問(wèn)連接在交換機(jī)的哪個(gè)口?
  • 知道交換機(jī)的某個(gè)端口,請(qǐng)問(wèn)連接的服務(wù)器的IP是多少?
  • 給你一臺(tái)服務(wù)器的MAC地址,怎么知道在哪個(gè)交換機(jī)的哪個(gè)口?

大型互聯(lián)網(wǎng)公司一般會(huì)有CMDB或者網(wǎng)絡(luò)管理平臺(tái)來(lái)記錄這些信息, 但是如果你是一家中小型企業(yè)的網(wǎng)管,沒(méi)有運(yùn)維研發(fā)團(tuán)隊(duì)做支持,并且還在沿用二層的環(huán)境(服務(wù)器網(wǎng)關(guān)在核心設(shè)備),那就比較費(fèi)勁了。以上幾個(gè)問(wèn)題其實(shí)歸根到底是要捋清楚三個(gè)要素的對(duì)應(yīng)關(guān)系:PORT<>MAC<>IP 。

舉個(gè)例子:


這些自動(dòng)化運(yùn)維技巧讓網(wǎng)絡(luò)運(yùn)維不再背鍋

一臺(tái)交換機(jī)有多個(gè)物理接口,一個(gè)物理接口下可以有多個(gè)MAC,一個(gè)MAC可以對(duì)應(yīng)多個(gè)IP,或者不對(duì)應(yīng)任何IP。有了這個(gè)基本的模型,只需要做兩件事情即可找到全網(wǎng)設(shè)備這三元素的對(duì)應(yīng)關(guān)系。

首先去服務(wù)器直連的交換機(jī)獲取MAC表(即MAC<->PORT),然后再去服務(wù)器的網(wǎng)關(guān)設(shè)備獲取ARP表(即IP<->MAC),這兩張表根據(jù)MAC地址作為唯一主鍵即可得到PORT <->MAC<->IP的對(duì)應(yīng)關(guān)系。

信息的獲取可以通過(guò)模擬登陸或者OID采集均可,Github中也有很多類似的代碼可供參考,有了這個(gè)對(duì)應(yīng)關(guān)系,即便沒(méi)有CMDB,你依然可以快速定位想要的信息, 普通網(wǎng)工查找這個(gè)信息需要5分鐘, 而你只需要5秒鐘。

網(wǎng)絡(luò)設(shè)備北向接口的二次封裝

日常網(wǎng)絡(luò)運(yùn)維工作中,經(jīng)常會(huì)有一些 “簡(jiǎn)單重復(fù)勞動(dòng)”,例如:為某個(gè)接口劃分Vlan/給某臺(tái)設(shè)備添加一條指向主機(jī)的路由等, 這些操作既沒(méi)有科技含量,還占用了工程師寶貴的時(shí)間,更要命的是再簡(jiǎn)單的人肉操作,重復(fù)的次數(shù)只要足夠多,總有失誤的時(shí)候,正所謂“常在河邊走,哪有不濕鞋”,但是在這種問(wèn)題上犯錯(cuò)誤簡(jiǎn)直是對(duì)職業(yè)生涯的抹黑,如此“雞肋”的工作怎么才能干得漂亮?

以《自動(dòng)劃分交換機(jī)接口Vlan》的功能為例, 如果有一個(gè)工具只需要你提供三個(gè)參數(shù):設(shè)備IP/端口/vlan編號(hào), 就能自動(dòng)登陸設(shè)備把特定接口劃分到指定Vlan,那豈不是美哉。

沒(méi)錯(cuò)!你需要的是一個(gè)對(duì)設(shè)備封裝后的接口, 現(xiàn)在多數(shù)網(wǎng)絡(luò)設(shè)備廠商都會(huì)提供自己的API,無(wú)論是NETCONF還是RESTful,只要讀懂了使用手冊(cè),即可通過(guò)程序輕松變更設(shè)備的配置,甚至你可以用更加”接地氣”的方法,用程序“模擬登陸”設(shè)備 ,雖然這個(gè)方法在效率上比不過(guò)NETCONF和RESTful API,但是在通用性上那簡(jiǎn)直無(wú)敵,因?yàn)闆](méi)有哪個(gè)廠商的設(shè)備不支持SSH或者TELNET的。

有了這個(gè)理論基礎(chǔ),一些簡(jiǎn)單的網(wǎng)絡(luò)上的操作就可以通過(guò)自己封裝的接口來(lái)實(shí)現(xiàn)變更,甚至可以把變更的權(quán)限交給業(yè)務(wù),只要業(yè)務(wù)提交的請(qǐng)求是合法的,變更可立即上線生效。

此時(shí),肯定會(huì)有人大驚失色!把網(wǎng)絡(luò)設(shè)備的權(quán)限交給業(yè)務(wù),這樣真的好么?萬(wàn)一改壞了怎么辦……所有的疑惑都是正常的,同時(shí)也都是有解的。

還是以《自動(dòng)劃分交換機(jī)接口Vlan》舉例子,你可以限制程序執(zhí)行的內(nèi)容,你可以規(guī)定交換機(jī)只能是TOR不能是CSW,你可以約束接口只能是Access不能是Trunk,你可以限定被操作的接口下流量必須為0bps,以避免誤操作影響到業(yè)務(wù),你可以通過(guò)動(dòng)態(tài)Token保證接口的安全,你可以要求必須提供接口下現(xiàn)存的MAC以定位接口的位置,你還可以對(duì)調(diào)用者加白名單,另外,操作成功后還需要有短信+郵件反饋操作后的結(jié)果,等等……

所有的考量都可以固化為代碼規(guī)則,只有程序是最忠實(shí)的執(zhí)行者。接口可以提供7*24小時(shí)全年無(wú)休的服務(wù),而人的精力是有限的,用程序去應(yīng)對(duì)業(yè)務(wù)那些簡(jiǎn)單有規(guī)律的需求,節(jié)省出工程師寶貴的時(shí)間來(lái)思考人生,這才是網(wǎng)絡(luò)工程師自動(dòng)化運(yùn)維之路的正道。

總結(jié)

以上,是筆者結(jié)合自身工作經(jīng)歷總結(jié)的一些心法,寫(xiě)代碼對(duì)于網(wǎng)絡(luò)工程師來(lái)說(shuō)確實(shí)有些難度,但是只要跨過(guò)這道坎,你會(huì)得到更多富裕的時(shí)間來(lái)擴(kuò)展自己的專業(yè)道路,謹(jǐn)以此文,希望能拋磚引玉為自動(dòng)化網(wǎng)絡(luò)運(yùn)維盡綿薄之力。

網(wǎng)頁(yè)題目:這些自動(dòng)化運(yùn)維技巧讓網(wǎng)絡(luò)運(yùn)維不再背鍋
文章網(wǎng)址:http://muchs.cn/news/102535.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、營(yíng)銷型網(wǎng)站建設(shè)標(biāo)簽優(yōu)化、App開(kāi)發(fā)、定制網(wǎng)站、小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)