国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python語言的網(wǎng)絡(luò)日志處理系統(tǒng)設(shè)計

2016-07-04 20:22:50楊丕仁
電腦知識與技術(shù) 2016年15期
關(guān)鍵詞:數(shù)據(jù)分析網(wǎng)絡(luò)安全

楊丕仁

摘要:隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)已經(jīng)成為人們生活不可缺少的一部分。現(xiàn)在接入互聯(lián)網(wǎng)的形式已經(jīng)發(fā)生了變化,由傳統(tǒng)的PC機接入發(fā)展到今天的各種移動終端(手機、平板電腦、物聯(lián)網(wǎng)設(shè)備)接入,從而對網(wǎng)絡(luò)安全提出了更高要求。在網(wǎng)絡(luò)安全管理中,對用戶行為管理是最基本的,只有管理好用戶的上網(wǎng)行為才能做對網(wǎng)絡(luò)可查可管。該系統(tǒng)將以Python程序架構(gòu)為基礎(chǔ),設(shè)計一套適合處理校園網(wǎng)絡(luò)用戶上網(wǎng)行為的程序。

關(guān)鍵詞:網(wǎng)絡(luò)安全;用戶上網(wǎng)行為;數(shù)據(jù)分析

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)15-0117-03

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,各種網(wǎng)絡(luò)設(shè)備功能越來越來完善,設(shè)備性能管理方面也比較智能化,在網(wǎng)絡(luò)管理上發(fā)生了變化,不再像過去花費大量的人力忙于維護網(wǎng)絡(luò)設(shè)備,而是要分析用戶的上網(wǎng)行為,為用戶提供一個安全穩(wěn)定的網(wǎng)絡(luò)環(huán)境。目前所得到的用戶上網(wǎng)行為都是從網(wǎng)絡(luò)設(shè)備上獲取的,這些數(shù)據(jù)中存在臟數(shù)據(jù)[1],臟數(shù)據(jù)不符合要求,對于分析用戶上網(wǎng)行為存在干擾。并且這些數(shù)據(jù)量非常大,而且還分散在不同的文件中,不便于以后的存儲和運算。如何對這些數(shù)據(jù)進行分類、清洗并進行有效的存儲是網(wǎng)絡(luò)行為分析的一個重要問題。

文章首先介紹python程序設(shè)計語言的相關(guān)組件和功能架構(gòu),在此基礎(chǔ)上,設(shè)計并實現(xiàn)了基于python語言的分析用戶上網(wǎng)行為的分類與清洗系統(tǒng),驗證了系統(tǒng)的有效性和穩(wěn)定性,并對數(shù)據(jù)的處理時間和數(shù)據(jù)的壓縮比例進行分析。

1 Python程序的介紹

Python是一種解釋型交互式、面向?qū)ο?、動態(tài)語義、語法優(yōu)美的腳本語言。自從1989年Guido van Rossum發(fā)明,經(jīng)過幾十年的發(fā)展,已經(jīng)同Tcl、perl一起,成為目前應(yīng)用最廣的三種跨平臺腳本語言。Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議[2] 。Python的主要特點有:

1)免費開源、簡單易學

Python是FLOSS(自由/開放源碼軟件)之一[3]。使用者可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。FLOSS是基于一個團體分享知識的概念。Python是一種代表簡單主義思想的語言,閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。Python極其容易上手,因為Python有極其簡單的說明文檔 。

2)速度快

Python 的底層是用 C 語言寫的,很多標準庫和第三方庫也都是用 C 寫的,運行速度非???。

3)高層語言

Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細節(jié)。

4)可移植性

由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)[4]。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux開發(fā)的android平臺。

5)面向?qū)ο?/p>

Python是一種公共域的面向?qū)ο蟮膭討B(tài)語言[5],Python既支持面向過程的編程也支持面向?qū)ο蟮木幊獭T凇懊嫦蜻^程”的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的。

6)可擴展性

如果需要一段關(guān)鍵代碼運行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫,然后在Python程序中使用它們。

7)可嵌入性

可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。

8)豐富的庫

Python標準庫確實很龐大。它可以幫助處理各種工作,包括正則表達式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的“功能齊全”理念。除了標準庫以外,還有許多其他高質(zhì)量的庫,如wxPython、Twisted和Python圖像庫等等。

9)規(guī)范的代碼

Python采用強制縮進的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進制代碼。

2 系統(tǒng)架構(gòu)的設(shè)計

由于網(wǎng)絡(luò)用戶上網(wǎng)行為數(shù)據(jù)可以從網(wǎng)絡(luò)安全設(shè)備(如防火墻、網(wǎng)絡(luò)認證網(wǎng)關(guān))上直接采集,所采集到的數(shù)據(jù)中有很多信息是不需保存的,并且生成的日志一般都是一個2萬多條記錄的壓縮文件。在實際的用戶行為管理分析中需要對這些壓縮文件進行解壓、分類、清洗,然后提取有用信息,并對所提取的信息進行壓縮處理,以便以后用于數(shù)據(jù)挖掘。系統(tǒng)結(jié)構(gòu)設(shè)計如圖1:

在日志處理系統(tǒng)結(jié)構(gòu)設(shè)計中,日志解壓模塊實現(xiàn)對原始數(shù)據(jù)自動解壓,并保存在以日期命名的文件夾中日志文件;日志文件夾處理模塊用于處理長時間保存日志文件和日志文件夾,使處理結(jié)果生成一個帶有路徑的文件名列表的文本文件。這個文本文件可以使下一步數(shù)據(jù)分類、清洗模塊快速定位到所要處理文件的位置和名稱。根據(jù)大理大學網(wǎng)絡(luò)用戶特點設(shè)計數(shù)據(jù)的分類和清洗模塊,實現(xiàn)把中國學生、留學生、教職工、校外人員的網(wǎng)絡(luò)行為日志文件進行分離,并把這些日志文件中沒有實際意義的記錄清除,最終把分類文件分別合并到以日期命名的文件中,為以后大數(shù)據(jù)的科學計算和智能分析提供純凈的數(shù)據(jù)源。日志文件壓縮模塊實現(xiàn)對分類、清洗過后的日志文件進行壓縮,提高存儲效率。

3 系統(tǒng)的實現(xiàn)

3.1 目錄處理模塊的實現(xiàn)

采用python程序設(shè)計語言中的os模塊,實現(xiàn)對目錄路徑和文件名的處理,第一步,將原始數(shù)據(jù)目錄下的所有文件夾的路徑寫入到一個文本文件中,例如:D:\campus big data\Datadirectory.txt,以便數(shù)據(jù)處理時循環(huán)遍歷所有文件夾,其代碼實現(xiàn)如下:

def CreateRawdatadirectory():

data_file_path="D:\\campus big data\\Raw_data\\"

day_log_path=os.listdir(data_file_path) #日日志文件夾路徑

log_files_list=[] #每天的.log文件所在目錄,如D:\campus big data\data\2016-03-01

fw=open("D:\\campus big data\\Raw_Datadirectory.txt","w")

for item in day_log_path:

fw.write(data_file_path+item+"\\") #Raw_Datadirectory.txt寫入

fw.write("\n")

fw.close()

第二步,生成日志文件夾文件,將每日文件夾下的所有日志文件路徑寫入對應(yīng)文件夾下的文本文件。例如:D:\campus\bigdata \data \201 6-03-01\file_path.tx文件,在數(shù)據(jù)處理時可以快速遍歷所有日志文件,其代碼實現(xiàn)如下:

def CreateLogDirectory():

fr=open("D:\\campus big data\\Raw_Datadirectory.txt","r")

fr_s=fr.read()

log_files_list=fr_s.split("\n")

for directory in log_files_list:

fw=open(directory+"file_path.txt","w")

try:

log_filename=[fname for fname in os.listdir(directory) if fname.endswith('.log')]

for fname in log_filename:

fw.write(directory+fname) #file_path.txt文件寫入

fw.write("\n")

except:

pass

fw.close()

fr.close

第三步,創(chuàng)建多級目錄,創(chuàng)建處理后數(shù)據(jù)存儲的多級目錄。例如:Ch_students目錄、Oversea_students目錄、Teachers目錄,用以保存不同用戶的上網(wǎng)行為日志文件。

3.2 解壓和壓縮模塊

根據(jù)目錄處理模塊所得到的路徑文件,調(diào)用python提供的zipfile模塊,把原始數(shù)據(jù)進行解壓,并把清洗過的用戶行為數(shù)據(jù)進行壓縮,代碼的設(shè)計如下:

解壓過程:

def FromZip(file_path_prefix): #

file_directory="D:\\campus big data\\Raw_data\\2016-03-01\\"

zip_filename=[fname for fname in os.listdir(file_directory) if fname.endswith('.zip')]

for item in zip_filename:

zip_path=file_directory+item

zfile = zipfile.ZipFile(zip_path,'r')

filename=zfile.namelist()[0]

data=zfile.read(filename)

flog=open(file_directory+filename,'w+b')

flog.write(data)

flog.close

壓縮過程

def ToZip():

file_directory="D:\\campus big data\\Raw_data\\2016-03-01\\"

log_filename=[fname for fname in os.listdir(file_directory) if fname.endswith('..log')]

for item in log_filename:

log_path=file_directory+item

f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)

startdir = "c:\\mydirectory"

for dirpath, dirnames, filenames in os.walk(startdir):

for filename in filenames:

f.write(os.path.join(dirpath,filename))

f.close()

由于程序在運行時是直接調(diào)用目錄處理模塊所得的路徑文件,這樣就可以縮短程序運行的時間,提高程序的運行效率。

3.3 數(shù)據(jù)分類、清洗模塊

在網(wǎng)絡(luò)用戶上網(wǎng)行為日志數(shù)據(jù)中,有許多信息是沒有意義的,我們需要對這些數(shù)據(jù)進行分類和清洗。原始數(shù)據(jù)結(jié)構(gòu)如下:

3.3.1 數(shù)據(jù)的分類

根據(jù)學校校園網(wǎng)絡(luò)用戶的特點,我們可以把用戶分為教工、國內(nèi)學生、國外學生。根據(jù)上網(wǎng)的區(qū)域可以分為辦公區(qū)、教職工住宅區(qū)、學生宿舍區(qū)。利用python語言對文件快速處理的特點對用戶進行分類,并分別存儲在不同的文件中,代碼如下:

fwrite_log=open("data_log.txt",'w') #數(shù)據(jù)處理后存文放文件

fread_log=open("2016-03-01 00-00-00..txt",'r') #打開日志文件

log_txt=fread_log.read().split('\n') #讀取每一條記錄

for i in range(len(log_txt)): #對每一條記錄進行處理

if log_txt[i].strip('\n')!='':

if(log_txt[i].split('\t')[3])[0]=='X':

record=log_txt[i].split('\t') s_row=record[2]+'\t'+record[4]+'\t'+record[5]+'\t'+record[6]+'\t'+record[7]+'\t'+record[8]+'\t'+'\n'

fwrite_log.write(s_row)

fwrite_log.close()

fread_log.close()

3.3.2 數(shù)據(jù)清洗

根據(jù)網(wǎng)絡(luò)用戶上網(wǎng)行為的特點,會出現(xiàn)空行、重復記尋。數(shù)據(jù)清洗的重要工作就是要把這些干擾信息去除,保留有用信息,為以后的數(shù)據(jù)挖掘提供純凈的數(shù)據(jù)。在數(shù)據(jù)清洗過程中,應(yīng)用python中的set()和strip()功能把重復記錄和空行清除。經(jīng)過清洗的數(shù)據(jù)記錄數(shù)和文件大小都比原來小,表2中可以清晰的反映數(shù)據(jù)清洗前后的對比。

4 結(jié)束語

從程序的運行結(jié)果可以得出,用python編寫的用戶上網(wǎng)行為日志處理程序設(shè)計簡單,運行效率高,所提取的用用戶行為數(shù)據(jù)可以進一步分析,為校園網(wǎng)絡(luò)安全提供準確的用戶定位,為校園網(wǎng)絡(luò)的帶寬管理和維護提供準確的數(shù)據(jù)作為參考,并提高網(wǎng)絡(luò)的服務(wù)質(zhì)量。

參考文獻:

[1] 張良均, 樊哲, 趙云龍. Hadoop大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)[M]. 北京: 機械工業(yè)出版社, 2016.

[2] 肖建, 林海波. Python基礎(chǔ)教程[M]. 北京: 清華大學出版社, 2003: 1-2.

[3] 北京中科紅旗軟件技術(shù)有限公司. 紅旗Linux系統(tǒng)應(yīng)用編程[M]. 北京: 石油工業(yè)出版社, 2012: 192.

[4] 陶誠, 陸從珍. 基于C++和Python混合編程的WORD文檔操作方法[J]. 信息化研究, 2014(5): 59.

[5] 楊昆, 汪興東. Python程序員指南[M]. 北京: 中國青年出版社, 2011: 8.

猜你喜歡
數(shù)據(jù)分析網(wǎng)絡(luò)安全
網(wǎng)絡(luò)安全知多少?
工會博覽(2023年27期)2023-10-24 11:51:28
網(wǎng)絡(luò)安全
網(wǎng)絡(luò)安全人才培養(yǎng)應(yīng)“實戰(zhàn)化”
上網(wǎng)時如何注意網(wǎng)絡(luò)安全?
我校如何利用體育大課間活動解決男生引體向上這個薄弱環(huán)節(jié)
體育時空(2016年8期)2016-10-25 18:02:39
Excel電子表格在財務(wù)日常工作中的應(yīng)用
淺析大數(shù)據(jù)時代背景下的市場營銷策略
新常態(tài)下集團公司內(nèi)部審計工作研究
中國市場(2016年36期)2016-10-19 04:31:23
淺析大數(shù)據(jù)時代對企業(yè)營銷模式的影響
基于讀者到館行為數(shù)據(jù)分析的高校圖書館服務(wù)優(yōu)化建議
科技視界(2016年22期)2016-10-18 14:37:36
辽中县| 蓬莱市| 沧州市| 张家港市| 石首市| 闵行区| 祁连县| 甘泉县| 吉安县| 彭阳县| 山丹县| 大新县| 雷波县| 晋中市| 建阳市| 道孚县| 尖扎县| 黔西| 涿鹿县| 永新县| 乡宁县| 西宁市| 泸溪县| 玉山县| 南安市| 阳泉市| 潼关县| 尉犁县| 三亚市| 黄浦区| 体育| 吴川市| 汽车| 洱源县| 平度市| 南宫市| 东阿县| 丽江市| 化德县| 唐海县| 报价|