vim을 이용한 월단위 시간 정보 요약.
프로세스 발생 정보 요약.
VIM 말고 AWK 같은 거 쓰면 안 되나요?
why not? 월단위 시간 정보.
[root@Splunk ~]# awk '{print $1}' ./secure.log | uniq May Oct Dec Jun Apr Jun Jul | cs |
Jun이 둘인 이유는 uniq 명령이 연속되지 않는 데이터를 다른 데이터로 인식하기 때문. 정렬을 먼저 한 후, 중복을 제거해주면 된다.
[root@Splunk ~]# awk '{print $1}' ./secure.log | sort | uniq Apr Dec Jul Jun May Oct | cs |
프로세스 발생 정보.
[root@Splunk ~]# awk '{print $5}' ./secure.log | > awk -F '[\\[:]' '{print $1}' | sort | uniq groupadd login polkitd sshd useradd | cs |
메시지 발생 정보.
[root@Splunk ~]# awk '{ > if ($6 ~ /pam_/) print $7, $8 > else print $6, $7}' ./secure.log | sort | uniq Accepted password Acquired the Exiting on Finished loading, group added Loading rules new group: new user: Received signal Registered Authentication ROOT LOGIN Server listening session opened Unregistered Authentication | cs |
내친 김에 프로세스 전체 발생 내역.
[root@Splunk ~]# awk '{print $5}' ./secure.log | > awk -F '[\\[:]' '{print $1}' | > awk '{arr[$1]++;} END {for (i in arr) print i, arr[i]}' sshd 135 login 16 polkitd 213 useradd 2 groupadd 6 | cs |
메시지 전체 발생 내역.
[root@Splunk ~]# awk '{ > if ($6 ~ /pam_/) print $7, $8 > else print $6, $7}' ./secure.log | > awk '{arr[$1, " ", $2]++;} END {for (i in arr) print i, arr[i]}' Registered Authentication 58 session opened 39 Unregistered Authentication 35 Exiting on 4 Finished loading, 30 new group: 2 Acquired the 30 group added 4 Received signal 7 ROOT LOGIN 8 new user: 2 Loading rules 60 Server listening 62 Accepted password 31 | cs |
막강한 데이터 분석 기능을 보여주는 awk. 이때 vim과의 차이점은 데이터를 직접 보면서 작업하기 힘들다는 것. 데이터를 모르는 상태에서 이런 작업이 가능할까? vim을 이용한 데이터 학습 과정에서 데이터 이해도가 높아졌기 때문에 데이터를 보지 않고도 awk 활용이 가능했다는 얘기.
텍스트 편집기인 vim은 데이터를 직접 보면서 작업함으로써 실수를 빠르게 개선할 수 있는 환경을 제공하며, 정규표현식 지원도 awk보다 더 풍부하다. 이런 vim을 통해 데이터와 정규표현식에 대한 이해도를 높이고, 데이터 핸들링에 대한 감을 익히면 awk든 뭐든 쉬워진다.
awk의 복잡한 코드가 더 있어보이는 건 사실이지만, 그런 관점으로 복잡한 알고리즘이나 화려한 툴에만 매달린다면 데이터는 점점 더 낯설어질 수밖에 없다. vim이 더 좋다고 떠드는 이유는 별거 없다. 데이터랑 친해지는 데 이만한 게 없거든.
VIM과 정규표현식으로 문자열 데이터의 해체와 조립을 반복하는 과정에서 어느 사이에 데이터의 구조와 의미를 파악해버렸다... 그 과정의 경험은 해당 로그에서 무엇을, 어떻게 분석할지에 대한 의사 결정의 근거가 되어주고, 반정형 데이터를 정형 데이터인 테이블로 바꾸는 작업의 토대가 되어주며, 결과적으로 로그 분석이 아닌 데이터 분석을 가능하게 해준다 - 데이터 분석이 쉬워지는 정규표현식
댓글 없음:
댓글 쓰기