카테고리 없음

방화벽 로그변환 하기 SE2

n3015m 2013. 6. 18. 15:46
Logparser로 대량의 로그를 처리하기 위해서는 제한사항에 적합하게 로그 데이터를 적절하게 조절해 줘야한다.

- 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