카테고리 없음
방화벽 로그변환 하기 SE2
n3015m
2013. 6. 18. 15:46
Logparser로 대량의 로그를 처리하기 위해서는 제한사항에 적합하게 로그 데이터를 적절하게 조절해 줘야한다.
※ 로그파일 SPLIT
UnxUtils의 Split 프로그램을 사용해서 파일을 줄단위로 분리가 가능하다
※ Logparser를 이용한 결과 집계
- dtLines:0
Field-Format 전체를 STRING형으로 지정, sum등의 계산은 TO_INT로 변환해서 사용해야 함
(이 옵션을 사용하지 않으면 port 등이 -인 ICMP등은 모두 에러가 발생)
- MAX INPUT ROWS : 9999999
- MAX OUTPUT ROWS : 2000000
- MAX MEMORY : 약 1.7G 증가하면 Not Enough Memory 발생
- 적정 처리 ROW : 400만 라인
OUTPUT이 210만 라인이 초과될 경우 1.7G 이상을 사용하게 되어 오류가 발생함
※ 로그파일 SPLIT
UnxUtils의 Split 프로그램을 사용해서 파일을 줄단위로 분리가 가능하다
dir /b *.log.txt | gawk "{system(\"split -l 4000000 \"$1\" \"$1\".\")}"
-l은 줄단위임
※ Logparser를 이용한 결과 집계
- dtLines:0
Field-Format 전체를 STRING형으로 지정, sum등의 계산은 TO_INT로 변환해서 사용해야 함
(이 옵션을 사용하지 않으면 port 등이 -인 ICMP등은 모두 에러가 발생)
summ_deny.bat
@echo off
echo %time%
echo Reading : %1
logparser "select substr(start_time,1,10) as start_date,substr(end_time,1,10) as end_date, src_ip,src_port,dest_ip,dest_port,protocol,sum(to_int(send_byte)) as send_byte_sum,count(*) as session_count into %1.csv from %1 group by start_date,end_date,src_ip,src_port,dest_ip,dest_port,protocol" -i:csv -o:csv -iHeaderFile:header.txt -dtLines:0