Python
-
[Python] pandas를 이용한 iis-ftp log 파싱Python/Python for Windows 2019. 9. 16. 21:09
python pandas를 이용한 iis-ftp log 파싱 #Fields: date time c-ip c-port cs-username s-sitename s-computername cs-host s-ip s-port cs-method cs-uri-stem sc-status sc-win32-status sc-substatus sc-bytes cs-bytes time-taken x-session x-fullpath x-debug import pandas as pd log_field = ['date', 'time', 'c-ip', 'c-port' , 'cs-username', 's-sitename', 's-computername', 'cs-host', 's-ip', 's-port', 'cs-method' ..
-
[Python] isinstance 내장함수 - 리스트나 튜플에서 타입별로 요소 추출하기Python/Python Programming 2019. 9. 11. 22:27
isinstance 입력받은 인스턴스의 클래스(class)를 판단하여 참이면 True, 거짓이면 False를 리턴 a = ['a','b',1,3,'c',{"a":1},(9,10,11), [1,2,3,4],100.0] list_type = [ x for x in a if isinstance(x, list) ] tuple_type = [ x for x in a if isinstance(x, tuple) ] dict_type = [ x for x in a if isinstance(x, dict) ] str_type = [ x for x in a if isinstance(x, str) ] float_type = [ x for x in a if isinstance(x, float) ] print(list_type..
-
[Python] psutil을 이용한 프로세스/로컬IP/로컬Port/리모트IP/리모트Port 모니터링Python/Python for Windows 2019. 9. 8. 16:00
psutil은 실행중인 프로세스 및 시스템 자원 정보를 볼 수 있는 모듈 import psutil strings = '' stringsFormat = '%-30s\t%-20s\t%-10s\t%-20s\t%-10s\n' strings = stringsFormat % ('process', 'local ip', 'local port', 'remote ip', 'remote port') strings += '-'*30+'\t'+'-'*20+'\t'+'-'*10+'\t'+'-'*20+'\t'+'-'*10+'\n' def processinfo(): process = psutil.Process(conn.pid) return process.name() for conn in psutil.net_connections():..
-
[Python] pandas datetime 타입 시간/주/일 더하기Python/Python For Analytics 2019. 9. 6. 13:38
시스템 로그를 분석할 때, 로그시간에 UTC시간을 더해줘야 할 때가 있는데, datetime의 timedelta의 메소드를 이용하여 변환할 수 있겠다. 기준일 from datetime import datetime, timedelta ....... print(data['time']) 0 2019-08-27 00:00:00 1 2019-08-27 00:00:00 2 2019-08-27 00:00:00 3 2019-08-27 00:00:00 4 2019-08-27 00:00:00 ... 373064 2019-08-27 23:59:58 373065 2019-08-27 23:59:59 373066 2019-08-27 23:59:59 373067 2019-08-27 23:59:59 373068 2019-08-27 ..
-
[Python] pandas를 이용한 tomcat accesslog 분석 및 활용Python/Python for Linux 2019. 9. 5. 13:06
톰캣 웹 로그도 pandas를 이용하면 빠른 속도로 처리할 수 있다. 로그가 100만 ~ 1000만 이상 넘어가면 pandas를 이용하는 게 상당히 빠르며, DataFrame으로 저장하고, CSV로 파일로 만들거나 다른 DB에 import 가 가능하기 때문에 활용도도 좋다고 볼 수 있다. 엘라스틱서치, 몽고DB도 python API가 있기 때문에 역시 가능하다. 톰캣을 기본설치하게 되면, 아래와 같이 기본 로깅세팅이 되어 있다. pattern="%h %l %u %t "%r" %s %b" tomcat logging에 관한 정보는 아래 링크를 참조 https://pydole.tistory.com/entry/Apache-Tomcat-Logging-%EA%B2%BD%EB%A1%9C%EC%9..
-
[Python] list data type pandas의 DataFrame 만들기Python/Python For Analytics 2019. 9. 4. 20:32
1개 의 리스트 데이터를 DataFrame만들기 import pandas as pd lst_A = ['a','b','c','d'] df = pd.DataFrame(lst_A) print(df) ------------------------------- 0 0 a 1 b 2 c 3 d 2개이상의 동일한 길이의 리스트 데이터를 DataFrame만들기 ( zip 활용) import pandas as pd lst_A = ['a','b','c','d'] lst_B = [1,2,3,4] df = pd.DataFrame([ x for x in zip(lst_A,lst_B)]) print(df) ------------------------------------------------- 0 1 0 a 1 1 b 2 2 c ..
-
[Python] pandas를 이용한 IIS log 파싱Python/Python For Analytics 2019. 8. 30. 20:19
python pandas를 이용한 iis weblog 파싱 import pandas as pd log_field = ['date', 'time', 's-sitename', 's-computername' , 's-ip' , 'cs-method' , 'cs-uri-stem', 'cs-uri-query', 's-port' ,'cs-username', 'c-ip', 'cs-version', 'cs-User-Agent', 'cs-Cookie', 'cs-Referer', 'cs-host', 'sc-status', 'sc-substatus', 'sc-win32-status', 'sc-bytes', 'cs-bytes', 'time-taken'] df = pd.read_csv('logfile', sep=' ', comm..
-
[Python] pandas를 이용한 mariadb 결과값 다른 mariadb 테이블로 저장Python/Python For Analytics 2019. 8. 29. 01:59
python pandas를 이용해서 mariadb의 쿼리 결과값을 다른 table로 저장이 가능하다. 샘플로 perfomance_log 테이블의 4개 컬럼 1,000,000를 불러와서 새로운 테이블로 저장해보겠다. sys_processortime sys_mem_availablembytes sys_net_revbytes_sec sys_net_sendbytes import pandas as pd import pymysql from sqlalchemy import create_engine conn = pymysql.connect(host='host', user='user', password='password' ,db='db', charset='utf8') query = 'select sys_processort..