Python在網絡運維中的應用

摘 要:

在現代移動互聯及大數據時代中, 不管是對於效率的喜愛或者是實現大量規模運營, 自動化運營搜屬於企業的主要選擇。Python具備靈活、簡單、強大功能及滿足腳本處理的優勢, 所以被廣泛應用到運維領域中, 在網絡運維過程中使用Python, 能夠使網絡運維工作效率得到提高。基於此, 本文就對Python在網絡運維過程中的使用進行分析。


傳統企業信息化系統的運維方法主要是根據人力檢查, 並且以自身實際工作經驗判斷設備運行的情況, 導致在檢查過程中出現相應的誤差。在現代大數據時代逐漸到來的背景下, 網絡環境也越來越複雜, 服務器數量不斷增加, 人力已經無法滿足信息系統的運維需求, 並且已經開始利用自動化實現運行維護。在技術不斷髮展的過程中, Python在企業網絡運維工作過程中使用, 能夠使運維效率得到提高, 並且降低成本。



一、 Python的概念

Python屬於面向對象、動態數據類型及解釋型的高級程序設計語言, 其能夠提供簡單的幫助文檔, 並且簡單易學, 而且免費。Python是在1989年被研發, 主要特點就是具有較高的開發效率、較快的運行速度, 並且還具有跨平臺的特點。其次, 其還具有大量的第三方模塊支持, 比如大量的優秀運維組件。另外, Python還具備腳本語言特點, 並且將其在實際工作過程中使用。Python語言所編寫的代碼能夠到多種平臺中運行, 其中的學習資源較多, 社區學習較為活躍, 便於運維人員的快速學習, 能夠將其使用到實際工作過程中。但是Python在使用過程中還具有一定的問題, 比如在編寫代碼的過程中無法使程序連寫一行, 可以供選擇的開發框架選擇較多。


二、Python在網絡運維過程中的使用

企業的傳統網絡運維主要包括創建呼叫中心、運維團隊, 並且實現系統運行監控等, 在現代物聯網、雲時代不斷到來的過程中, 企業的業務量也在不斷增加, 業務範圍不斷地擴大, 不管是企業信息系統數據或者是服務器規模, 都在不斷地擴大。傳統網絡運維已經無法滿足企業的實際需求, 比如維護量不斷地增加, 團隊人員不斷擴張, 系統軟件、硬件在不斷增加, 不同類型管理平臺不能夠統一進行管理, 只是根據少量的人員或者指定的系統管理平臺實現基本的運維工作較為困難。為了能夠有效節約運維成本, 使運維效率得到提高, 就要實現網絡運維的自動化。Python語言能夠有效滿足運維工作需求的標配語言, 其中的編程語言高效, 並且簡單明瞭, 並且運維模塊組件豐富。使用Python語言能夠實現運維體系的有效整合, 實現運維常用工具的二次開發, 能夠形成完成運維體系, 使系統能夠實現自動安裝、監控、配置及報警等。

2.1 系統安全的保護

對於現代企業來說, 企業信息安全性影響著企業發展, 如果出現企業信息洩露, 就會導致企業出現災難性後果, 信息安全主要通過人員、系統和設備三方面的安全構成。其中的系統安全主要是利用Python和第三方安全軟件結合, 實現端口的安全掃描, 對系統進行病毒掃描等, 從而對系統的安全性進行保證。對設備及人身兩方面安全來說, 就是利用Python實現自動化的監控, 實現設備可能會出現的問題警報, 使運維人員能夠及時維護, 避免因為設備故障導致出現安全事故, 從而對設備及人身安全進行有效保障。

2.2 數據報表

在現代網絡信息技術和科學技術不斷髮展的過程中, 增加了信息量, 並且也提高了企業信息運維工作難度。在企業網絡運維過程中使用Python, 能夠有效整理並且分析企業的日常運維工作數據信息, 使運維工作效率得到有效的提高。比如, 企業信息自動化運維工作過程中的監控數據、運行數據和報警數據, 利用Python中的RRDtool數據表等整理系統數據並且對其進行分析。

2.3 自動化運維

在市場經濟不斷髮展的過程中, 各個企業的競爭不斷激烈, 為了使企業市場競爭力得到有效的提高, 各個企業中的業務量也在不斷擴展, 從而使企業社會效益及經濟效益得到提高。企業在實現業務拓展的過程中, 也增加了企業信息數據量, 業務信息結構也不斷複雜化, 只是添加設備和人力, 無法滿足現代企業發展的需求。所以, 就要促進企業信息系統的自動化運維發展的速度, 從而提高信息系統的快速化、綜合化及自動化反應過程中的問題, 並且對其進行及時的修復, 利用Python中的豐富庫實現安全、高效自動化的運維模式, 使運維人員工作質量及效率得到提高。

2.4 使用大數據

在現代大數據背景下, 企業要求收集大量的數據。但是實現對企業有益數據的快速收集屬於現代企業面臨的主要問題。通過長期研究表示, 可以創建將Hadoop作為平臺, 將Map Reduce作為計算模型, 之後利用Python實現編程的方式, 提取數據中的信息, 從而有效促進企業的持續發展。


三、Python在網絡運維中的使用流程


3.1 收集維護臺賬

利用Python編寫的程序對終端、網絡、主機、數據庫及中間件等設備的臺賬信息進行收集, 主要包括軟件安裝的情況、服務端口的開放情況、安裝補丁的情況、軟件漏洞的情況等, 從而能夠形成統一化設備安裝的運行狀態庫。圖1為Python使用的流程圖。

Python在網絡運維中的應用

圖1 Python使用的流程圖

3.2 安全審計規則的維護

實現維護安全規則的自定義, 主要包括以相關係統漏洞、軟件漏洞的維護漏洞為主的安全規則;維護必須將端口安全規則關閉;維護必須將服務安全規則關閉;維護必須將補丁安裝的安全規則。

3.3 設備的安全性分析

工具要以審計規則分析設備的安全運行狀態庫, 尋找違規設備, 之後形成設備的安全性分析報告。

3.4 軟件和補丁的安裝情況


Python在網絡運維中的應用

圖2 服務端口的情況

軟件和補丁的安裝情況表示最近一段時間系統中的軟件、補丁安裝列表及開關機的記錄、網絡連接的情況及進程的開關情況能夠充分展現出來。

其一, Python能夠掃描網絡和終端端口, 監控設備端口。實現多線程掃描, 還能夠實現單一指定主機的掃描, 對制定網段中主機實現逐一的掃描。能夠對指定端口或者端口段中的端口實現逐一掃描, 掃描的結果通過列表方式充分地展現出來。圖2為服務端口的情況。

其二, 綜合使用靜態及動態的檢測技術檢測的特點, 基於程序源代碼的分析及目標程序運行狀態的檢測實現, 實現動態檢測規則及規則庫的綜合使用, 以程序動態狀態的檢測結果及目標程序源代碼的靜態分析結果排查程序過程中的安全隱患。

其三, 利用Python掃描中間件及數據庫, 分析掃描結果, 從而觀察中間件或者數據庫中是否存在漏洞。

其四, 以長期所存儲的歷史日誌分析已經發生的日誌事件, 並且對其進行取證分析, 評估其導致的影響, 以此形成報表, 並且全面分析最新發布的安全漏洞攻擊代碼, 比如日誌驅動漏洞挖掘、web攻擊檢測等。


四、 Python的實際使用

在實施某學校檔案室網絡預警項目的過程中, 實驗室網絡研究中心具有選擇網絡站點並且安裝等工作。在具體實施過程中, 將Linux操作系統作為中心, 使用Earthworm技術創建簡單的處理平臺。為了能夠實現系統運行狀態的監控, 降低值班人員的工作量, 使用Python語言編寫系統運行狀態監控及運維信息發佈程序。

4.1 輸出模型的創建

Python腳本語言屬於免費的軟件編程語言, 其在設計過程中重視代碼的可讀性, 所以Python語法較為清晰。本文中的方法都記錄到地理處理器模型中, 所以Python對終端用戶使用過程中較為簡單。在創建Python腳本的過程中, 主要包括兩種方式, 第一種方式為將建模工作中的模型輸出Python腳本, 第二種為直接在集成開發環境中實現腳本的創建。在模型創建過程中, Python的優勢比模型要多, 比如決策、循環此種基礎程序結構。另外, 還能夠在用戶窗口中添加通知消息, 實現數據的批量處理。簡單來說, 輸出的信息中能夠標註重點信息。


Python在網絡運維中的應用

圖3 Python導出腳本模型參數

圖3為Python導出腳本模型, Python程序能夠實現自動輸出, 實現時間和程序調用接口、簡單註釋的導出, Arcpy主要包括全部地理處理方法程序庫。之後, 自動化輸出創建代碼, 從而使腳本實現參數的輸出。最後, 實現地理數據處理參數及方法的添加, 參數表示為:

Python在網絡運維中的應用

參數表示

其主要優勢就是腳本包括所有的函數, 其能夠作為其他的Python擴展基礎。

4.2 集成開發環境腳本的創建

在集成開發環境中實現腳本的編寫, 集成開發環境的主要優勢就是語法突顯, 自動化的執行命令, 調和調試和智能縮近的功能。局部腳本結果在集成開發環境互動窗口中展現, Python屬於腳本集成開發環境中的另外例子。在地理編輯器中的某部分方法只能夠利用腳本實現, 比如列舉法。Python的列舉法返回全部文件名, 並且到硬盤目錄中集成, 此方面為到開發環境腳本編寫的集成。

4.3 數據文件的掃描

在企業設備運行過程中, 經常會產生大量的數據, 但是要對事件進行處理只需要幾秒鐘, 我們需要觀察哪些臺站是能夠使用的, 或者要知道在此段時間中網絡的運行情況。Python具有obspy腳本, 其文件頭能夠實現數據文件格式的檢查, 利用計算使用紅色豎線進行繪製並且標記, 將小叉作為數據的起始點, 將全部數據文件有效性充分地展現出來。此腳本工具能夠對一千多個文件的一次性掃描, 並且還能夠自動繪製數據相應的年月, 也能夠將需要的繪製結果方法。比如, 以下為簡單指令, 其能夠實現數據文件的掃描:

Python在網絡運維中的應用

圖4 obspy腳本的掃描結果


4.4 繪製黑客入侵波形

通過某此學校檔案室管理網絡被黑客入侵事件為例, 其中的128個簡易的入侵數據記錄實現簡單排列分佈:

在列表中實現入侵信息的查詢, 對入侵時間進行計算, 黑客入侵的排列分佈圖;

之後編寫代碼:

Python在網絡運維中的應用

4.5 Python腳本的運行

本文所研究的運維腳本程序能夠到工具箱中添加, 從而形成用戶需要的工具集, 對工具名稱根據需求進行定義。一個工具箱主要包括多個模型和腳本。建模工具中的模型通過擴展工具模型到自定義工具箱各種存儲。Python作為PY文件單獨存儲, 工具箱能夠利用鏈接路徑將其相互連接。圖5為自定義工具箱, 將自定義之後的Python腳本程序到系統工具箱中添加。


Python在網絡運維中的應用

圖5 自定義工具箱

之後, 用戶在工具箱中添加數據處理程序設置工具參數, 如果用戶需要, 其在使用工具的過程中能夠快速掌握工具屬性和參數, 從而掌握不同參數值域。

通過使用分析表示, 利用Python語言及擴展包, 能夠使預警系統項目的開發效率得到有效的提高, 並且使計算機編程語言的學習時間得到降低, 並且還能夠使數據處理的工作效率得到提高, 對圖形可視化的結果進行豐富, 使用前景較廣, 也是非常值得學習及使用的高級計算機語言。


結束語

在現代大數據及移動互聯的時代中, 不管是追求效率, 或者針對大量規模運維要求, 自動化的運維都是現代企業的主要選擇。Python靈活、簡單, 並且具有較為強大的功能, 而且還能夠滿足腳本處理等多重優勢, 所以被廣泛應用到運維領域中。在實際工作過程中, 企業能夠以自身實際需求開發滿足企業自動化運維及高效的工具, 從而使企業的信息化水平得到有效的提高。


分享到:


相關文章: