2018년 3월 28일 수요일

엘라스틱이 쉬웠던 이유

제목이 너무 도발적인가? 지금 이순간에도 대규모, 대용량 환경에서 성능 등의 문제로 골머리 썩는 분들에겐 죄송(..) 하지만 엘라스틱을 데이터 분석툴로 활용하는 입장에서는 쉬우니 쉽다고 할 수 밖에.


처음 접한 건 작년 여름, 데이터 분석 서비스를 제공하는 logz.io를 통해서였다. 사실 데이터 분석 분야에서 엘라스틱이라는 오픈소스가 유행이라는 얘기는 들어왔지만, IDS 등 사실 관계가 '해킹' 맥락으로 필터링된, 한마디로 부정확한 데이터를 분석하는 입장에서 별로 관심이 없었다.

장비 구축이 전부인 분위기에서 '통합'으로 한 번 홀리고, 화려한 '비주얼'로 한 번 더 홀리는 SIEM류의 툴이 득세하는 바람에 보안관제 분야가 발전하지 못하고 있다는 생각을 오랫동안 해왔기 때문에 일부러 무시한 측면도 좀 있고. 하지만 실체를 보고나서는 생각이 바뀌었다.

(특정 행동을 의미하는 상태의 개수를 세는) 이상징후 분석을 목적으로 사실 관계가 그대로 기록된, 한마디로 정확한 데이터를 분석하는 입장에서는 매우 매력적이라는 생각을 하게 된 것.

마침 웹, 시스템 로그 등을 정규표현식으로 처리한 후, 엑셀로 시각화하는 교육 과정을 진행하고 있던터라 엑셀 대신 엘라스틱을 쓰면 사람들 홀리기 좋겠다는 교육 효과를 높일 수 있겠다는 생각도 들었고.

게다가 설치가 쉽더라

이건 정말 어마어마한 장점이다. 시작이 반이라고, 설치만 했을 뿐인데 전문가가 된 기분을 느낄 수 있다(?) 설치하다가 기 다 빨리는 snort랑은 하늘과 땅 차이. 검색 엔진인 엘라스틱서치와 시각화 툴인 키바나 모두 설치라고 할 것도 없이 압축 풀고 실행하면 끝.

엘라스틱 저장 전에 반드시 거쳐야 하는, 수집된 데이터를 가공해주는 로그스태시는 약간의 설정이 필요하지만 역시 별로 어렵지 않았다.


로그스태시는 '가져올 로그를 지정해주는 input', '가져온 로그를 가공하는 filter', '가공이 끝난 로그를 저장하는 output' 구조를 가지고 있는데, 딱 보기에도 직관적일 뿐더러, 결정적으로 정규표현식 기반 grok 필터가 'filter' 영역의 핵심이기 때문.

input {
 file { path => "d:/sample.log" }
}

filter {
 gok { match => { "message" => "%{COMMONAPACHELOG}" } }
}

output {
 elasticsearch { hosts => "localhost" }
}

물론 로그스태시가 지원하는 필터의 종류는 정말 다양하지만, grok 필터는 정규표현식을 이용한 패턴매칭을 통해 원시로그를 테이블 구조로 만들어주는, 한마디로 가장 기본적인 데이터 분석 환경을 만들어주는 필수 필터라고 할 수 있다.

원시로그에서 특정 행동을 의미하는 상태 구분 및 필드 분류를 하지 않으면, 날짜별 로그 개수 세는 것 말고는 할 수 있는 게 없기 때문. 데이터 분석이 가능한 구조를 만든 후에도 정규표현식의 역할은 사라지지 않는다. 

전처리 과정에서 데이터 이해도를 높여주고, 높아진 이해도는 다시 다양(한 툴과 접근법을 활용)한 전처리를 가능하게 해준다. 최종적으로 분석 정확도까지 높여주는 건 덤. 정규표현식과 엑셀이 쉬우면 엘라스틱도 쉬울 수밖에 없는 이유.

문제는 정규표현식이 어렵다

네?

사실 별로 어렵지 않다. 주로 사용되는 메타문자 10여 개만 외우면 끝. 진짜 문제는 활용 및 응용이 가능할 때까지 반복 학습이 필요하다는 것.

한글을 자유롭게 사용하기까지 읽고 쓰기를 얼마나 반복했을까? 백 번? 천 번? 만 번? 정규표현식도 그정도만 반복하면 충분히 숙달될 수 있다. 그런데 그만큼의 필요성을 현장에서 요구하지 않는다.


웬만한 의지 없이는 정규표현식 학습이 어려운, 익숙해지기 어려운 환경(아웃소싱 위주, 장비 위주)이라는 얘기. 영어 교육 10년 받아도 쓸 일 없으면, 외국인과 대화 한마디 어려운 게 현실이다. 결국 정규표현식은 점점 더 관심밖으로(..)

이런 현실은 강의 중에도 쉽게 느낄 수 있다. 정규표현식과 엘라스틱 강의 참여도가 다름. 정규표현식(을 이용한 데이터 전처리가) 빠진 엘라스틱이 제구실하기란 하늘의 별따기지만, 관심은 엘라스틱으로 향한다. 이유는 뭐 유행이라서? 네이버도 쓰고 카카오도 쓴다니 멋져 보임

물론 내가 쉽게 설명하지 못한 탓이 크다 

요즘 짬짬이 '스틱'이란 책을 읽고 있는데, '지식의 저주'란 단어가 등장하더라. 개구리 올챙이적 생각 못한다고, 일단 무언가를 알고 나면 알지 못한다는 것이 어떤 느낌인지 상상할 수 없게 되는 현상을 의미한다고.

이제 좀 안다고 정규표현식을 낯설어하는 이들의 상황을 이해하지 못하는 걸까? 아니면 아직도 정규표현식을 잘 모르고 있는 건 아닐까? 왜 이렇게 설명이 어렵지?-_- 정규표현식과 엘라스틱 비중이 반반인데, 정규표현식 비중을 줄여야 하나 고민이다.

최선은 실무자급은 반반, 관리자급은 엘라스틱에 치우치는 쪽으로 강의를 차별화하는 건데, 아무래도 아웃소싱이 많다 보니 일반 기업체는 실무자급이 그리 많지 않다. 있어도 관리 업무 비중이 높을 때가 많고.

실무자급은 보안 업체에 많을텐데, 몇 년 간 강의하면서 보안 업체에서 오는 경우는 두 번? 사실 데이터 분석이 대세로 보이지만 아직은 장비 위주의 트렌드고, 업무 성격이 바뀔려면 글쎄? 아무튼 시간이 많이 필요해 보인다.

글을 쓰다보니 결론이 나온 듯. 역시 정규표현식 비중은 줄이는 걸로(..)

관련 글

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스