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

        ?

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

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

        秦子實

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

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

        中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A

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

        開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

        1 概述

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

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

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

        鑒于低成本改造現(xiàn)有腳本的需要,本文采用PVthon默認(rèn)的socketserver用作日志服務(wù),通過默認(rèn)logging模塊的SocketH-andler進(jìn)行分布式日志寫入。采用logging.getLogger的name參數(shù)指定遠(yuǎn)端日志服務(wù)器中的特定logger進(jìn)行記錄,并利用name參數(shù)類似命名空間的分級特性,詳細(xì)記錄每條日志產(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)端口復(fù)用,使用非阻塞函數(shù)提升1/0效率。上文socketserver指定的讀取socket的handler編寫大致如下:

        使用內(nèi)建pickle模塊載入讀取的字節(jié)進(jìn)行反序列化,之后通過makeLogRecord還原接收到的遠(yuǎn)端日志記錄。之后,在服務(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ù)端。例如,在某使用多進(jìn)程處理業(yè)務(wù)的腳本中,我們可以通過將進(jìn)程ID寫入logger的name屬性來區(qū)別各個work-er的日志記錄,該幫助函數(shù)可以編寫為:

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

        4 結(jié)束語

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

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

        在线观看国产三级av| 国产精品www夜色视频| 成人一区二区免费视频| 韩国一级成a人片在线观看| 永久免费看黄在线观看| 亚洲精品在线国产精品| 免费99精品国产自在在线| 国产精品爽爽va在线观看网站| 午夜一区二区在线视频| 成人女同av在线观看网站| 男女爽爽无遮挡午夜视频| 在线人妻无码一区二区| 国产精品一区二区黄色片| 午夜福利理论片在线观看播放 | 精品一区二区久久久久久久网站| 国产精品国产三级在线高清观看| 久久精品女人天堂av麻| 亚洲成a∨人片在线观看无码| 欧美最猛黑人xxxx黑人表情| 亚洲电影一区二区| 男女互舔动态视频在线观看| 日本真人做爰免费视频120秒| 日韩精品无码久久一区二区三| 国产大陆av一区二区三区| av黄页网国产精品大全| 精品亚洲一区二区三区在线观看 | 国产精品亚洲精品日韩动图| 人妻少妇中文字幕在线| 国产精品三级在线观看无码| 无码超乳爆乳中文字幕| 69精品国产乱码久久久| 蜜臀色欲av在线播放国产日韩| 亚洲AV秘 无码一区二p区三区| 亚洲二区精品婷婷久久精品| 欧美黑人又粗又大xxxx| 永久黄网站色视频免费| 日本熟妇高潮爽视频在线观看| 亚洲中文久久精品字幕| 国产又黄又大又粗的视频| 国产精品不卡无码AV在线播放 | 一区二区三区国产97|