설치는 매우 간단. 자바가 설치되어 있다면 다운받아서 압축 풀고 그냥 실행하면 된다. 검색 엔진인 엘라스틱서치(elasticsearch.bat) 실행.
데이터 시각화 도구인 키바나(kibana.bat) 실행.
다음은 로그 적재 도구인 로그스태시(logstash.bat) 실행을 위한 설정 파일(sample.conf). logz.io 덕분에 친해진 winlogbeat를 이용했다.
input { beats { port => 5044 }}
filter { grok { match => { "message" => "\S+\s([^.]+\.)*?(?<url>[^.]+?\.((ac|co|go|ne|nm|or|pe|re)\.)?[^.]+?\.?)(?=,).+" } }}
output { elasticsearch { hosts => [ "localhost:9200" ] } stdout { codec => rubydebug }}
상위 도메인만을 따로 추출하기 위해 grok 필터를 사용했다. 해당 필터는 정규표현식을 이용해서 데이터 정규화를 도와주는데, 전체 로그 메시지와 일치하는 정규표현식 중 추출을 원하는 영역만을 'named capture group'으로 씌워주면 된다.
즉, 해당 grok 필터는 전체 message 영역에서 정규표혀식 '[^.]+?\.((ac|co|go|ne|nm|or|pe|re)\.)?[^.]+?\.?'와 일치하는 패턴을 'url' 필드(주황색 영역)로 추출해준다.
로그스태쉬(logstash.bat) 실행.
다음은 winlogbeat 설정. 3006 이벤트만 전송하도록 설정했다.
winlogbeat.exe를 실행하면 logstash 실행창에서 전송 과정을 확인할 수 있다. winlogbeat는 윈도우 이벤트 로그 수집에 최적화되어 있는 듯. 뭐 해준 것도 없는데 알아서 필드별 정규화가 이루어진다. grok 필터를 이용한 상위 도메인 추출도 잘 됨.
to be continued
관련 글
즉, 해당 grok 필터는 전체 message 영역에서 정규표혀식 '[^.]+?\.((ac|co|go|ne|nm|or|pe|re)\.)?[^.]+?\.?'와 일치하는 패턴을 'url' 필드(주황색 영역)로 추출해준다.
로그스태쉬(logstash.bat) 실행.
다음은 winlogbeat 설정. 3006 이벤트만 전송하도록 설정했다.
winlogbeat.exe를 실행하면 logstash 실행창에서 전송 과정을 확인할 수 있다. winlogbeat는 윈도우 이벤트 로그 수집에 최적화되어 있는 듯. 뭐 해준 것도 없는데 알아서 필드별 정규화가 이루어진다. grok 필터를 이용한 상위 도메인 추출도 잘 됨.
to be continued
관련 글
댓글 없음:
댓글 쓰기