999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python內(nèi)建庫的分布式日志系統(tǒng)設(shè)計與實現(xiàn)

2020-10-09 10:23:04秦子實
電腦知識與技術(shù) 2020年18期

秦子實

摘要:隨著Python腳本在企業(yè)lT自動化運維中的逐步應用,腳本數(shù)量越來越多,功能覆蓋也越來越廣泛,在提高運維效率的同時,自動運維腳本的管理難度也逐步提高。因此,需要一套架構(gòu)簡單、易于編寫、方便部署的分布式日志系統(tǒng),對自動運維腳本的運行進行統(tǒng)一記錄,以便進行調(diào)試或故障追溯。該文設(shè)計并實現(xiàn)了一種僅基于Python內(nèi)建庫即可部署的分布式日志系統(tǒng),日志客戶端與服務(wù)端僅需要極少的代碼即可實現(xiàn),具有庫依賴關(guān)系簡單、部署方便的特點,可以以較低的成本對現(xiàn)有運維腳本進行改造,以實現(xiàn)日志的集中管理。

關(guān)鍵詞:分布式;日志系統(tǒng);Python

中圖分類號:TP393 文獻標識碼:A

文章編號:1009-3044(2020)18-0082-02

開放科學(資源服務(wù))標識碼(OSID):

1 概述

Py thon語言因具有強大的表達能力、豐富的第三方庫等特點,被廣泛地應用于企業(yè)IT自動化運維體系中。Pthon通常以簡單腳本的形式,存在于各個業(yè)務(wù)系統(tǒng)中,承擔著諸如應用系統(tǒng)啟停準備、數(shù)據(jù)備份管理、系統(tǒng)服務(wù)管理、系統(tǒng)版本管理、API管理等基礎(chǔ)運維工作。腳本通常分散在各服務(wù)器的各應用系統(tǒng)中,種類繁多,維護人員也各不相同。而隨著企業(yè)IT系統(tǒng)的增多,腳本數(shù)量也會隨之增長,這種現(xiàn)象對企業(yè)運維管理、故障排查帶來了較大的挑戰(zhàn)。運維人員需要一種能夠低成本改造現(xiàn)有腳本,同時也能夠在今后編寫的腳本中穩(wěn)定應用的分布式日志記錄系統(tǒng)。

基于該需求,本文設(shè)計并實現(xiàn)了一種僅使用Python內(nèi)建庫,基于內(nèi)建socket庫進行通信并使用內(nèi)建logging庫進行記錄的簡單分布式日志系統(tǒng)。

2 系統(tǒng)結(jié)構(gòu)

鑒于低成本改造現(xiàn)有腳本的需要,本文采用PVthon默認的socketserver用作日志服務(wù),通過默認logging模塊的SocketH-andler進行分布式日志寫入。采用logging.getLogger的name參數(shù)指定遠端日志服務(wù)器中的特定logger進行記錄,并利用name參數(shù)類似命名空間的分級特性,詳細記錄每條日志產(chǎn)生的服務(wù)器、所屬服務(wù)、所在腳本及函數(shù),用以區(qū)別各腳本產(chǎn)生的日志。

該架構(gòu)在日志前端避免使用了消息隊列等第三方系統(tǒng),有效地控制了現(xiàn)有腳本的改造成本,此外,服務(wù)端利用Thread-ingTCPServer加速讀取速度。該架構(gòu)能夠有效地將現(xiàn)有腳本的日志改造代碼量控制在極小的范圍內(nèi)。

3 系統(tǒng)設(shè)計

3.1 日志服務(wù)端

分布式日志服務(wù)端采用Python內(nèi)建的socketserver.Thread-ingTCPServer作為socket服務(wù)器。

利用socket上的select模型實現(xiàn)端口復用,使用非阻塞函數(shù)提升1/0效率。上文socketserver指定的讀取socket的handler編寫大致如下:

使用內(nèi)建pickle模塊載入讀取的字節(jié)進行反序列化,之后通過makeLogRecord還原接收到的遠端日志記錄。之后,在服務(wù)端通過記錄的name屬性設(shè)置指定的logger,并記錄日志信息。最后,根據(jù)需要在服務(wù)端配置各種logger,并使用serve—un-til_stopped啟動服務(wù)即可。

例如客戶端需要一個debug級別的logger,并希望handler按時間自動循環(huán)保存日志文件,logger可以按如下方式配置:

其指定的按時間自動循環(huán)保存文件的handler可以按如下方式配置:

如此,便可以方便地在客戶端使用這個DebugLogger了。

3.2 日志客戶端

為了降低現(xiàn)有腳本改造代價,客戶端僅需要引入一個log-ger配置文件,或添加幾行l(wèi)ogger設(shè)置即可,按如下方式設(shè)置log-ger:

可以在配置文件中編寫幫助函數(shù),以方便各類不同腳本使用日志服務(wù)端。例如,在某使用多進程處理業(yè)務(wù)的腳本中,我們可以通過將進程ID寫入logger的name屬性來區(qū)別各個work-er的日志記錄,該幫助函數(shù)可以編寫為:

通過在腳本中引入該幫助函數(shù)返回的三個logger,便可以利用相應的logger將日志記錄寫入服務(wù)端。例如使用服務(wù)端名為“DebugLogger”的logger記錄debug級別的日志:debugLogger.debug(f'... -些日志記錄…')。

4 結(jié)束語

本文介紹了僅使用PYthon原生庫搭建分布式日志服務(wù)的方法,使得對現(xiàn)有腳本的改造僅需要引入約十行代碼,即可實現(xiàn)在日志服務(wù)器上寫入日志的功能。該方法結(jié)構(gòu)簡單,性能優(yōu)良,具備良好的可擴展性,后期可以通過改造服務(wù)端寫入han-dler的方法進一步增強日志服務(wù)端的性能,是一種易開發(fā)、易部署、易維護的日志服務(wù)。

【通聯(lián)編輯:梁書】

主站蜘蛛池模板: 亚洲国产91人成在线| 91久久偷偷做嫩草影院| 欧美午夜一区| 亚洲午夜久久久精品电影院| jizz国产视频| 99九九成人免费视频精品| 亚洲成人在线网| 久久鸭综合久久国产| 国产69精品久久久久妇女| 喷潮白浆直流在线播放| 成人综合久久综合| 国产美女一级毛片| 永久免费无码日韩视频| 爽爽影院十八禁在线观看| 少妇被粗大的猛烈进出免费视频| 日本不卡免费高清视频| 红杏AV在线无码| 国产亚洲精品自在久久不卡| 91视频首页| 国产日韩精品欧美一区灰| 日本三级精品| 黄色不卡视频| 欧美一区精品| 日韩a在线观看免费观看| 激情综合网址| 一级香蕉视频在线观看| 在线看国产精品| 91成人在线免费视频| 97国产在线观看| 99re在线观看视频| 国产偷倩视频| 四虎成人免费毛片| 国产在线精品99一区不卡| 亚洲精品国产日韩无码AV永久免费网 | 极品国产在线| 97人妻精品专区久久久久| 性欧美久久| 中文字幕久久精品波多野结| 热久久综合这里只有精品电影| 欧类av怡春院| 日韩午夜福利在线观看| 性喷潮久久久久久久久| 欧美亚洲国产一区| 一级毛片免费观看不卡视频| 香蕉eeww99国产在线观看| 亚洲成人高清无码| 久久无码av三级| 亚洲制服丝袜第一页| 日韩在线中文| 亚洲专区一区二区在线观看| 国产精品亚洲天堂| 亚洲91在线精品| 亚洲精品国产成人7777| 999精品免费视频| 88av在线| 2022国产91精品久久久久久| AV不卡国产在线观看| 日韩小视频在线播放| 丁香婷婷激情网| 又猛又黄又爽无遮挡的视频网站| 日韩中文字幕亚洲无线码| 农村乱人伦一区二区| 国产香蕉在线| 国产第一福利影院| 在线亚洲精品自拍| 波多野结衣视频网站| 国产精品成人不卡在线观看| 在线va视频| 无码一区二区三区视频在线播放| 国产正在播放| 欧美精品二区| 国产白浆一区二区三区视频在线 | 欧美日本激情| 激情六月丁香婷婷| 丁香六月综合网| 欧美日本激情| 偷拍久久网| 久无码久无码av无码| 成人午夜在线播放| 日韩美毛片| 国产 在线视频无码| 亚洲人成影视在线观看|