亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于Netmiko的網(wǎng)絡(luò)設(shè)備自動(dòng)化運(yùn)維方法研究*

        2021-03-20 12:50:12李朝陽(yáng)張小鋒
        通信技術(shù) 2021年3期
        關(guān)鍵詞:網(wǎng)絡(luò)設(shè)備日志編程

        李朝陽(yáng),周 波,張小鋒,陳 震

        (中國(guó)西昌衛(wèi)星發(fā)射中心,四川 西昌 615000)

        0 引言

        隨著各種IT 新技術(shù)的不斷涌現(xiàn),依靠手工執(zhí)行命令管理軟硬件資源的方法已經(jīng)遠(yuǎn)不能滿足一個(gè)信息中心的日常運(yùn)維需求,且傳統(tǒng)方法存在出錯(cuò)率高和人力資源成本高等缺陷。試想一個(gè)1 000 臺(tái)網(wǎng)絡(luò)設(shè)備的架構(gòu)中,按照傳統(tǒng)人為操作更新設(shè)備配置,可能需要一個(gè)星期的多人合作。如果采用網(wǎng)絡(luò)自動(dòng)化進(jìn)行多線程并行操作,將大大縮減運(yùn)維對(duì)人力資源的依賴,進(jìn)一步節(jié)約成本。可見(jiàn),在今天的網(wǎng)絡(luò)技術(shù)領(lǐng)域,如何能夠滿足大規(guī)模網(wǎng)絡(luò)靈活高效且高質(zhì)穩(wěn)定運(yùn)維的極致需求,是所有IT 管理部門應(yīng)該積極思考的問(wèn)題。同時(shí),網(wǎng)絡(luò)基礎(chǔ)設(shè)施建設(shè)和運(yùn)維管理的標(biāo)準(zhǔn)化、自動(dòng)化、數(shù)據(jù)可視化以及智能化必將成為大趨勢(shì)。本文針對(duì)一個(gè)由千余臺(tái)網(wǎng)絡(luò)設(shè)備組成的企業(yè)生產(chǎn)網(wǎng)需要進(jìn)行大量重復(fù)性配置需求的特定應(yīng)用場(chǎng)景,提出了一種基于Python3 開(kāi)源庫(kù)構(gòu)建網(wǎng)絡(luò)設(shè)備自動(dòng)化運(yùn)維系統(tǒng)的解決方法并加以編程實(shí)現(xiàn),進(jìn)而為進(jìn)一步提升信息中心網(wǎng)絡(luò)運(yùn)維自動(dòng)化水平提供技術(shù)基礎(chǔ)和服務(wù)。

        1 技術(shù)途徑

        1.1 設(shè)備遠(yuǎn)程控制協(xié)議

        主流遠(yuǎn)程管理控制協(xié)議主要有:①遠(yuǎn)程桌面協(xié)議(Remote Desktop Protocol,RDP),應(yīng)用于Windows 系統(tǒng)遠(yuǎn)程桌面;②遠(yuǎn)程幀緩沖協(xié)議(Remote Frame Buffer Protocol,RFB),應(yīng)用于圖形化遠(yuǎn)程管理,如VNC 工具基于RFB;③Telnet 協(xié)議;④SSH 協(xié)議。本文重點(diǎn)討論后兩者的特點(diǎn)及區(qū)別。Telnet 是命令行界面遠(yuǎn)程管理協(xié)議,簡(jiǎn)單易于實(shí)現(xiàn),在進(jìn)行數(shù)據(jù)傳輸時(shí)采用明文傳輸方式。安全外殼協(xié)議(Secure Shell,SSH)是另外一種命令行界面遠(yuǎn)程管理協(xié)議,在進(jìn)行數(shù)據(jù)傳輸時(shí)會(huì)對(duì)數(shù)據(jù)進(jìn)行加密及壓縮。相比較而言,SSH 更加安全,速度也更快,且代替Telnet 僅是SSH 的功能之一。

        1.2 基于Telnetlib 的設(shè)備遠(yuǎn)控技術(shù)

        Telnetlib 是Python 的內(nèi)建模塊。鑒于Telnet 存在安全隱患,不建議在生產(chǎn)網(wǎng)絡(luò)中使用Telnetlib 庫(kù)。Python2 和Python3 中的Telnetlib 在使用方式上略有區(qū)別。在Python2 中,Telnetlib 模塊下所有函數(shù)返回值均為字符串,而在Python3 環(huán)境下,所有函數(shù)參數(shù)及返回值為字節(jié)型字符串(Byte Strings)。因此,在Python3 中使用Telnetlib 需要關(guān)注:①字符串常量前需加b 提示符;②變量后需借助encode 進(jìn)行ASCII 編碼;③對(duì)于read_all 函數(shù)返回結(jié)果需借助decode 進(jìn)行ASCII 解碼。

        1.3 基于Netmiko 的設(shè)備遠(yuǎn)控技術(shù)

        Python 中支持SSH 協(xié)議實(shí)現(xiàn)遠(yuǎn)程連接設(shè)備的模塊主要有Paramiko 和Netmiko,前者是后者開(kāi)發(fā)的基礎(chǔ)。Paramiko 是Python 中的一個(gè)非常著名的開(kāi)源SSHV2 項(xiàng)目,于2013 年發(fā)布,同時(shí)支持SSH服務(wù)端和客戶端。Netmiko[1]是另一個(gè)SSHV2 開(kāi)源項(xiàng)目,于2014 年底發(fā)布。Netmiko 基于Paramiko 開(kāi)發(fā),但其支持更多廠商設(shè)備,更加方便易用,簡(jiǎn)化了回顯結(jié)果獲取,簡(jiǎn)化了設(shè)備的配置命令[2]。目前,它支持包括Cisco、HP proCurve、Juniper Junos、Linux、Alcatel A0s6、Dell KS9 以及huawei 在內(nèi)的多個(gè)廠商設(shè)備。

        1.4 基于Pandas 的數(shù)據(jù)清洗處理技術(shù)

        Pandas(Python Data Analysis Library)是基于Numpy 的一個(gè)工具集,專為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建。Pandas 納入了大量庫(kù)和一些標(biāo)準(zhǔn)數(shù)據(jù)模型,為大型數(shù)據(jù)集提供高效的操作工具。同時(shí),Pandas 是Python 的一個(gè)數(shù)據(jù)分析包,最初被作為金融數(shù)據(jù)分析工具而研發(fā),在時(shí)間序列數(shù)據(jù)分析方面表現(xiàn)卓越。Pandas 的主要組件是Series 和Dataframe[3]。本文主要以Pandas 為工具對(duì)各個(gè)單位提交上來(lái)的Excel 數(shù)據(jù)進(jìn)行清洗和處理,從中提煉出各類交換機(jī)加固命令參數(shù)。

        1.5 基于loguru 的日志處理方法

        Python 第三方日志庫(kù)loguru 相較于自帶loging庫(kù)更加簡(jiǎn)潔、高效且靈活。Loguru 日志輸出格式信息豐富,包含時(shí)間、級(jí)別、模塊名、行號(hào)及日志信息;loguru 支持輸出日志到多個(gè)文件,按級(jí)別輸出;loguru 會(huì)定時(shí)清理超大日志文件,以提高系統(tǒng)運(yùn)行效率[4]。本文借助loguru 模塊主要實(shí)現(xiàn)兩個(gè)功能:①記錄數(shù)據(jù)文件清洗處理過(guò)程中產(chǎn)生的各類日志;②記錄程序核心模塊運(yùn)行時(shí)產(chǎn)生的各類日志信息。

        2 結(jié)構(gòu)設(shè)計(jì)

        本文針對(duì)較大規(guī)模企業(yè)網(wǎng)中的網(wǎng)絡(luò)設(shè)備需要定期大量重復(fù)性配置的需求場(chǎng)景,基于Python 開(kāi)源庫(kù)Netmiko 設(shè)計(jì)如圖1 所示的體系結(jié)構(gòu)圖。該設(shè)計(jì)重點(diǎn)包括1 個(gè)自動(dòng)化操作流程和5 個(gè)軟件功能模塊[5]兩個(gè)方面。

        圖1 中的一個(gè)自動(dòng)化操作通過(guò)編程方式實(shí)現(xiàn)對(duì)人工登錄網(wǎng)絡(luò)設(shè)備進(jìn)行操作配置活動(dòng)的計(jì)算機(jī)模擬,以求實(shí)現(xiàn)配置操作自動(dòng)化目標(biāo)的過(guò)程。該設(shè)計(jì)將一個(gè)自動(dòng)化操作流程分為如圖1 所示的6 個(gè)階段。第1 階段,數(shù)據(jù)核對(duì)階段,主要借助正則表達(dá)式對(duì)輸入的Excel 數(shù)據(jù)規(guī)范性和有效性進(jìn)行核實(shí)檢查;第2 階段,數(shù)據(jù)處理節(jié)點(diǎn),主要依照實(shí)際任務(wù)需求完成對(duì)清洗、解析、參數(shù)提取及模板生成等工作;第3 階段,設(shè)備過(guò)濾階段,主要完成對(duì)特殊設(shè)備的排查;第4 階段,登錄方式修改階段,基于安全因素及Netmiko 高效應(yīng)用的考量,通過(guò)Telnet 方式將設(shè)備修改為SSH 密碼模式,如果已經(jīng)為SSH 方式則不做處理;第5 階段,登錄方式驗(yàn)證階段,為確保核心動(dòng)作的有效執(zhí)行,對(duì)SSH 密碼登錄參數(shù)進(jìn)行驗(yàn)證;第6 階段,配置運(yùn)行階段,主要完成對(duì)設(shè)備的自動(dòng)化操作,從而實(shí)現(xiàn)運(yùn)維效率的大幅提升。

        圖1 程序結(jié)構(gòu)設(shè)計(jì)示意

        根據(jù)實(shí)際應(yīng)用需求,該設(shè)計(jì)將最終編程實(shí)現(xiàn)的自動(dòng)化運(yùn)維程序功能分為數(shù)據(jù)解析處理模塊、設(shè)備地址過(guò)濾模塊、設(shè)備登錄配置模塊、日志信息記錄模塊和配置命令執(zhí)行模塊[7]。

        對(duì)于數(shù)據(jù)解析處理模塊ExcelParserHandler 而言,主要基于Pandas 完成對(duì)不同部門提交的網(wǎng)絡(luò)設(shè)備配置參數(shù)的提取工作,為基于參數(shù)模板構(gòu)造網(wǎng)絡(luò)設(shè)備配置命令提供基礎(chǔ)服務(wù);對(duì)于設(shè)備地址過(guò)濾模塊SWIPFilterHandler 而言,主要基于Pythonping實(shí)現(xiàn),用于對(duì)不在線或者特殊設(shè)備的過(guò)濾;對(duì)于設(shè)備登錄配置模塊SSHLoginHandler 而言,主要基于Telnetlib 實(shí)現(xiàn),將所有設(shè)備登錄方式修改為SSH 密碼模式登錄,一方面為Netmiko 執(zhí)行遠(yuǎn)程操控打下基礎(chǔ),另一方面也是出于對(duì)生產(chǎn)網(wǎng)絡(luò)安全加固的考量;對(duì)于日志信息記錄模塊LogRecordHandler 而言,主要基于loguru 實(shí)現(xiàn),完成對(duì)軟件5 個(gè)功能模塊運(yùn)行過(guò)程中產(chǎn)生的各類文本信息及異常情況進(jìn)行記錄,以備后續(xù)故障排查及結(jié)果驗(yàn)證所用;對(duì)于配置命令執(zhí)行模塊CommandsHandler 而言,基于Netmiko 實(shí)現(xiàn),該模塊是整個(gè)運(yùn)維程序開(kāi)發(fā)實(shí)現(xiàn)的重點(diǎn)和核心,完成對(duì)各類大量重復(fù)性配置命令和系統(tǒng)升級(jí)操作的自動(dòng)化工作。

        上述5 個(gè)模塊皆基于國(guó)產(chǎn)麒麟操作系統(tǒng)以Python3 類的形式實(shí)現(xiàn),在自動(dòng)化操作流程的各個(gè)關(guān)鍵節(jié)點(diǎn),通過(guò)對(duì)上述5 個(gè)功能模塊類的實(shí)例化而獲得相應(yīng)操作對(duì)象,從而執(zhí)行相應(yīng)操作完成相應(yīng)的自動(dòng)化功能。

        3 編程實(shí)踐

        3.1 功能模塊ExcelParserHandler 實(shí)現(xiàn)

        本文對(duì)如圖1 所示設(shè)計(jì)方法在國(guó)產(chǎn)麒麟操作系統(tǒng)上基于Python 進(jìn)行編程實(shí)踐時(shí),以網(wǎng)絡(luò)設(shè)備運(yùn)維自動(dòng)化操作流程為主線,以框架搭建設(shè)計(jì)為基石,以模塊動(dòng)態(tài)加載來(lái)應(yīng)對(duì)運(yùn)維任務(wù)的多樣性和不確定性,從而保持基于Netmiko 的自動(dòng)化運(yùn)維程序的穩(wěn)定性和良好可擴(kuò)展性。限于篇幅,本文以ExcelParserHandler模塊和CommandHandler為重心,闡述該自動(dòng)化運(yùn)維程序的編程實(shí)現(xiàn)細(xì)節(jié)。

        功能模塊ExcelParserHandler基于Pandas庫(kù)實(shí)現(xiàn),主要完成對(duì)不同部門提交的Excel 文件進(jìn)行數(shù)據(jù)清洗和數(shù)據(jù)解析,從而獲得批量配置交換機(jī)所需的各類參數(shù),在配置模板作用下批量生成交換機(jī)配置命令。

        示例偽碼如下:

        3.2 核心模塊CommandHandler 實(shí)現(xiàn)

        核心模塊CommandHandler基于Netmiko以Python3類的方式實(shí)現(xiàn),具體細(xì)節(jié)如偽碼所示,主要完成以SSH 方式實(shí)現(xiàn)對(duì)大規(guī)模網(wǎng)絡(luò)設(shè)備配置操作和系統(tǒng)升級(jí)的自動(dòng)化運(yùn)行。在實(shí)際應(yīng)用實(shí)踐中,應(yīng)將該類的實(shí)例化置于線程中,從而實(shí)現(xiàn)對(duì)千余臺(tái)網(wǎng)絡(luò)設(shè)備配置管理的并行運(yùn)行,在提高效率的同時(shí),確保程序運(yùn)行的穩(wěn)定性和健壯性。鑒于篇幅所限,本文僅給出關(guān)鍵步驟的偽碼表示。

        4 應(yīng)用實(shí)踐

        筆者對(duì)本文所述自動(dòng)化運(yùn)維程序分別在華為eNSP 模擬器構(gòu)建的網(wǎng)絡(luò)拓?fù)浜鸵粋€(gè)由500 余臺(tái)網(wǎng)絡(luò)設(shè)備架構(gòu)組成的實(shí)際生產(chǎn)網(wǎng)絡(luò)中均進(jìn)行測(cè)試和部署,運(yùn)行效果良好。在實(shí)際應(yīng)用中,本文所述自動(dòng)化運(yùn)維方法可根據(jù)實(shí)際需求進(jìn)行多樣化任務(wù)定制。以筆者所處實(shí)際生產(chǎn)網(wǎng)絡(luò)環(huán)境為例(見(jiàn)圖2),利用該自動(dòng)化運(yùn)維程序?qū)Σ块TA 中網(wǎng)絡(luò)設(shè)備進(jìn)行相關(guān)網(wǎng)絡(luò)加固操作,對(duì)部門B 中網(wǎng)絡(luò)設(shè)備進(jìn)行定期配置文件備份操作,對(duì)部門C 中的網(wǎng)絡(luò)設(shè)備進(jìn)行系統(tǒng)升級(jí)操作,對(duì)部門D 中網(wǎng)絡(luò)設(shè)備進(jìn)行QoS 參數(shù)修改操作,其中每種任務(wù)只需根據(jù)需求變換配置模板即可。

        同時(shí),詳盡的日志記錄功能確保應(yīng)用過(guò)程中的過(guò)程可追溯,為批量自動(dòng)化運(yùn)維提供支持。圖3 為該自動(dòng)化運(yùn)維程序在對(duì)部門A 中網(wǎng)絡(luò)交換機(jī)進(jìn)行批量自動(dòng)地址綁定操作時(shí)所生成的日志信息,詳細(xì)記錄了配置腳本在遠(yuǎn)程交換機(jī)上的執(zhí)行過(guò)程。

        圖2 自動(dòng)化運(yùn)維程序應(yīng)用場(chǎng)景

        圖3 運(yùn)行日志記錄

        5 結(jié)語(yǔ)

        文章在對(duì)當(dāng)前信息中心網(wǎng)絡(luò)運(yùn)維工作中面臨的困難和挑戰(zhàn)進(jìn)行深入分析的基礎(chǔ)上,提出了一種基于Netmiko 構(gòu)建企業(yè)信息中心網(wǎng)絡(luò)設(shè)備自動(dòng)化運(yùn)維系統(tǒng)的解決思路,設(shè)計(jì)自動(dòng)化運(yùn)維程序的體系結(jié)構(gòu)圖,并且在國(guó)產(chǎn)麒麟操作系統(tǒng)上基于Python3 進(jìn)行了編程實(shí)現(xiàn),將其部署應(yīng)用于實(shí)際生產(chǎn)環(huán)境,完成了網(wǎng)絡(luò)加固、系統(tǒng)升級(jí)、配置備份及QoS 參數(shù)修改等大量重復(fù)性操作,取得了良好應(yīng)用效果。實(shí)踐表明,本文所述方法穩(wěn)妥可靠,可操作性強(qiáng),具有良好的可擴(kuò)展性和先進(jìn)性。

        猜你喜歡
        網(wǎng)絡(luò)設(shè)備日志編程
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        一名老黨員的工作日志
        扶貧日志
        心聲歌刊(2020年4期)2020-09-07 06:37:14
        一種基于C# 的網(wǎng)絡(luò)設(shè)備自動(dòng)化登錄工具的研制
        游學(xué)日志
        數(shù)據(jù)中心唯“快”不破
        基于列車監(jiān)測(cè)網(wǎng)絡(luò)設(shè)備的射頻功放模塊設(shè)計(jì)
        99精品视频69v精品视频| 国产区高清在线一区二区三区| 日本av一区二区三区四区| 日本真人添下面视频免费| 情侣黄网站免费看| 亚洲AV激情一区二区二三区| 亚洲男女视频一区二区| 国产精品内射久久一级二| 精品国产一区av天美传媒 | 国产成人亚洲精品77| 亚洲天堂一区二区三区视频| 亚洲国产a∨无码中文777| 麻豆精品传媒一二三区| 国内成人精品亚洲日本语音| 开心五月激动心情五月| 亚洲av中文无码字幕色本草| 亚洲色欲色欲www在线播放| 欧美精品久久久久久三级| 国产一区三区二区视频在线观看| 国产乱人偷精品人妻a片| 中文字幕无线码中文字幕| 日韩精品一区二区三区中文9| 日本免费一区二区在线视频播放| 国产精品r级最新在线观看| 亚洲a∨天堂男人无码| 亚洲中文字幕乱码在线视频| 久久国产劲爆∧v内射| 亚洲欧美日本| 亚欧免费无码AⅤ在线观看| 开心五月激情五月五月天| 激性欧美激情在线| 久久人人做人人妻人人玩精| 人妻少妇被猛烈进入中文| 国产乱妇无码大片在线观看| 国产一区二区三区美女| 中文乱码字幕在线中文乱码 | 宅男66lu国产在线观看| 国产欧美VA欧美VA香蕉在| 人妻尤物娇呻雪白丰挺| 日韩人妻不卡一区二区三区| 色婷婷综合中文久久一本 |