%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D

2022-05-15
빅데이터가 대세 키워드였던 몇 년 전까지만 해도 하둡 등의 인프라가 모든 것을 해결해줄 듯한 분위기였다면, 알파고 이후엔 수학 및 통계학, 그리고 그런 지식에 기반한 모델링 능력이 필수 자질로 꼽히는 세상이 되었다. 광고, 추천, 번역, 금융 등 많은 분야에서 그런 자질을 요구한다. 열거한 분야들의 공통점은 최종 목적이 결국 돈이라는 것. 돈을 벌기 위해서는 사람의 심리나 행동을 예측해야 한다. 절대 쉽지 않은 작업. 아마 작두 타는 수준의 분석 능력이 필요할 것이다. 복잡한 수학/통계 지식의 필요성에 수긍이 가는 대목....
2021-09-30
5일 중 3일을 정규표현식에 할애한 과정을 진행하다가 아차 (?) 싶었던 첫 강의가 생각난다. 그렇게 정규표현식 비중을 줄이고 줄여서 현재 정규표현식 과정은 반나절 정도 (..) 그럼에도 빠지지 않는 질문이 쉬운 정규표현식? 대체 방법? 정규표현식이 쉬워지는 방법은 많이 써보는 수밖에 없다 보니 정규표현식을 사용하지 않고 원하는 테이블 구조를 만드는 방법에 대한 고민을 자주 한다. 일단 엘라스틱 예제 데이터 생성. url 데이터에서 file 정보를 추출해보자. 다음은 읽기 스키마 기반의 런타임 필드 생성 쿼리....
2021-07-04
다음은 root 사용자의 IP별 접속 현황. 5월 14~16일 및 6월 12일의 IP 변화가 눈에 띈다. 그런데 사용자가 많다면 사용자별 접속 IP의 변화 확인이 꽤 까다로울 것이다. 더 직관적인, 한 눈에 IP 변화를 알아차릴 수 있는 차트를 그릴 수는 없을까? 다음은 root 사용자의 IP 고유 개수 변화. 6월 12일의 변화는 뚜렷한데, 5월 14~16일의 변화는 보이지 않는다. 해당 시점의 접속 IP가 평소와 다른 건 맞지만 유형은 하나뿐이니 당연한 결과. IP 변화를 숫자 변화로 이상징후 분석은 통계 분석의 다른 말이고, 결국 특정 상태의 숫자 변화를 추적하는 과정. 마침 IP는 숫자로도 표현할 수 있다. 8bit 단위로 나눈 IP를 순서대로 256...
2020-11-16
단순 카운트 변화 추이는 로그의 상태를 정확히 표현하지 못한다. 다양한 상태 정보가 섞여 있는 상태에서 개수의 변화가 어떤 상태를 특정하는지 알기 힘들다는 얘기. count 추이(12~25일) 그래서 강조하는 게 상태별 고유성 확보를 통한 데이터 해상도 변경 및 다양한 Metric 활용. 카운트 추이로는 알 수 없었던 19일의 상태 변화가 해상도 및 Metric 변경을 통해 드러난다. URL 고유 개수 백분위 90% 의 변수 길이 이런 결과를 얻기 위해 데이터를 분류하고, 고유성을 확보하고, 효과적인 지표를 개발하는 데 많은 시간을 투자한다. 그러나 그런 노력을 들이고도 정작 쌓인 데이터를 분석하지 않는다면 모든 노력은 물거품이 되고 만다. 반면 정말 단순하게 로그 개수만 센다 해도 매일, 매 시간, 매 분 데이터의 변화를 궁금해한다면 그 데이터에서 의미를 찾아낼 수 있다....
2020-08-18
데이터를 보는 많은 분들이 특징이 내가 만든 또는 내 PC의 엑셀에 있는 데이터하고 DB와 같이 서버에 있는 데이터하고 같이 볼 수 있는 방법이 없나? 라는 요구사항입니다. 이번 글에서 비슷하게 나마 요구사항을 만족시킬 수 있는 방법을 소개해 드리겠습니다. 최근 지인의 요청으로 AWS 환경을 좀 볼 수 있는 시간을 가졌습니다. 지인의 서비스는 작년 하반기 부터 갑작스럽게 성장하면서 데이터가 많아지고 분석의 요구도 많아지는데 전문적으로 이를 처리할 수 있는 개발 인력이나 조직은 거의 없는 상태였습니다. 물론 AWS의 좋은 서비스 덕분에 그럭저럭 운영은 하고 있었지만 한계에 부딪히고 있었는데 이런 저런 니즈가 서로 부합되어 잠시 도움을 주게 되었습니다. 대략 데이터 발생원으로 부터 정제된 형태의 데이터로 저장하는 데이터 파이프라인을 구성하고 이를 기반으로 SQL 등으로 쉽게 분석할 수 있는 체계를 만드는 작업이었습니다. 이번 글에서는 Google Sheet의 각 파일과 MySQL 또는 HDFS, S3 등에 저장된 데이터와 JOIN을 할 수 있는 방법에 대해 간단하게 소개해 드리겠습니다....
2020-05-14
엘라스틱 머신러닝이 7.6 버전부터 지도학습 (supervised learning) 을 지원한다. 얼마나 잘 동작하는지 IDS 로그에 적용해보자. 다음 글을 참고했다. 새로 나온 이 영화 재미있을까? 학습 데이터는 1로 라벨링된 887개의 정탐과 0으로 라벨링된 6,700여 개의 오탐이 섞인 제일 만만한 sql injection 탐지 로그. 정탐 오탐 모델 학습 학습 데이터를 sqland-learning이란 인덱스에 저장 후, Machine Learning > Data Frame Analysis > Create analytics job 메뉴 클릭. ① 작업 유형은 classification...
2020-01-16
필자는 popit.kr을 운영하기 이전에 지금은 삭제된 개인 블로그에 글을 게재를 했었습니다. 대부분의 글을 popit으로 옮겼다고 생각했는데 지인이 블로터에 있는 이글 링크를 보내왔습니다.  2012년초 빅데이터라는 용어가 막 나타나던 시기에 쓴 글인데 기록할 가치가 있어 다시 게재해 봅니다. 지금에 보는 빅데이터와는 지금 다른 개념도 있기 때문에 읽으시는 분들은 그 시대의 상황을 감안하시고 적절하게 필터링해서 읽어 주셨으면 합니다. 소개한 기술들도 레트로 급이네요. ====================================== 2012년 새해 첫 포스팅입니다. 많은 이슈가 되고 있는 빅데이터에 대해 간단하게 제 의견을 정리해 보았습니다. 본문의 내용은 지극히 개인적인 의견일뿐입니다. 잘못된 부분도 있을 수 있고 왜곡된 부분도 있을 수 있습니다. 태클은 댓글로 남겨주세요....
2019-11-18
웹 요청 트래픽에는 useragent라는 웹 요청을 시도할 때 사용된 도구에 대한 정보가 있다. 이걸 분석해보겠다고 예전엔 정규표현식으로 웹 로그의 useragent 문자열을 추출한 후, 유형과 운영체제 등을 일일이 분류하는 노가다를 했었는데(..) 그런데 이걸 자동으로 분석해주는 useragent 라는 필터 플러그인을 엘라스틱이 제공한다. 다음은 샘플 로그. 다음은 로그스태시 파이프라인 설정. useragent 분석 결과 필드가 너무 많아서 name 하나만 남겨 두고 remove_field 옵션으로 다 지웠다....
2019-10-03
다음은 'failed login' 메시지 조건을 이용한 로컬 로그인 실패 발생 추이. 'failed login' 메시지와 로그인 실패 발생은 양의 상관관계를 갖는다. 상관분석 사례는 없냐는 질문을 받았다. 네? 지금 하고 있는데요 담배 타임 때 슬쩍 물어봤다. 어떻게 하는 게 상관분석일까요? 로그를 2개 이상 묶어야 상관분석이라고. 사례도 하나 알려 주신다. ID나 PASSWORD 또는 금융정보 관련 문자열을 IDS로 탐지한 후, (탐지했지만 믿을 수 없어서) 별도로 수집된 트래픽 뒤져서 실제 정보 유출 여부를 판단하는 상관분석을 하고 있다고. [caption id="attachment_24208" align="aligncenter" width="530"]...
2019-09-05
방화벽처럼 key-value 구조가 반복되는 로그의 필드 분류에는 kv 필터 가 딱이다. 특히 구분기호로 '='을 사용하는 key-value 구조는 kv {} 구문만으로도 완벽한 테이블 구조를 만들어 줌. 문제는 kv 필터가 내부적으로 정규표현식 을 사용한다는 것. 성능 저하가 발생할 수 있다는 얘기. 이때 dissect 필터 가 대안이 될 수 있다. dissect는 데이터 전체에 반영된 공통된 구조를 그대로 이용해서 원하는 부분을 잘라내는 기능을 제공하며, 로그는 보통 사람 읽기 좋으라고 띄어쓰기를 하기 때문에 '공백' 구조를 많이 활용한다. 로그 구조가 다음과 같을 때...
더보기