1. 데이터 나열 변환
1) table
필드명과 결합해 검색 결과를 테이블 형식으로 보여준다.
index="book" sourcetype="access_combiend_wcooke"
| table clientipm method, productId, status
원하는 결과에서 내가 원하는 필드를 테이블 형태로 만들어서 출력할 수 있다.
2) rename
필드명을 다른 이름으로 변경한다.
로그에서 필요한 필드명에 의미를 부여하거나 필드에 한글을 쓰고 싶을 경우 사용할 수 있다.
변환하고자 하는 필드명을 띄어쓰기도 포함하고 싶다명 따옴표(")를 붙여주면 된다.
index="book" sourcetype="access_combined_wcookie"
| table clientip, method, productId, status
| rename clientip AS SourceIP, method AS "Get Or Post", productId AS ProductID, status AS "Web Status"
테이블에 있는 필드명이 기존의 필드명이 아닌 rename을 통해 변경된 이름으로 바뀐것을 확인할 수 있다.
3) fields
검색 결과에서 특정 필드를 포함시키거나 제거할 경우 사용한다.
index=book sourcetype="access_combined_wcookie" status="200"
|fields clientip
검색 결과에서 원하는 필드만 추출할 수 있다.
이벤트의 개수는 필드를 적지 않아도 같지만 불필요한 필드를 사용하지 않음으로써 검색 시간을 줄일 수 있다.
- 옵션을 이용해서 원하는 필드만 제거도 가능하다.
index=book sourcetype="access_combined_wcookie" status="200"
|fields - clientip
4) dedup
검색결과에서 중복제거를 할 때 사용한다.
지정한 필드의 중복을 제거하면 다른 필드의 값은 중복이 아닌데도 앞의 중복된 결과를 제거하면석 역시 사라지니 주의해야 한다.
index=book sourcetype="access_combined_wcookie" status="200"
| dedup clientip
출력된 Client IP가 중복되지 않았음을 확인할 수 있다.
5) sort
검색 결과를 정렬한다.
+(default) 옵션은 오름차순이고 -옵션은 내림차순이다.
index=book sourcetype="access_combined_wcookie" status="200"
| table date_hour, clientip, productId, method, status
| sort date_hour, -method
테이블을 생성한 후 시간을 오름차순 methiod를 내림차순으로 정렬하였다.
시간은 00시부터, method는 POST방식이 먼저 출력된것을 확인할 수 있다.
6) 데이터 나열 변환 명령어 정리
명령어 |
옵션 |
설명 |
table |
결과를 테이블 형태로 출력 |
|
rename |
필드명을 다른 이름으로 재정의 |
|
fields |
+(default) 추가 , - 제거 |
원하는 필드만 추출, 원하는 필드만 제거 |
dedup |
중복제거 |
|
sort |
+(default) 올림차순 , - 내림차순 |
검색 결과 정렬 |
2. 통계 계산
1) stats
각종 통계 함수를 이용해 통계를 계산한다.
stats [count|dc|sum|avg|list|value] by [Field name]
stats 옵션 |
설명 |
count |
개수 |
dc |
중복을 제거한 개수 |
sum |
합계 |
avg |
평균 |
list |
목록 |
values |
중복제거 목록 |
max |
최대 값 |
median |
중간 값 |
min |
최소 값 |
clientip 기준으로 전송한 bytes의 합계, 평균, 최대 값, 중간 값, 최소 값의 통계를 구할 수 있다.
중간 값은 데이터가 홀수개일 경우 (n-n/2) 짝수개일 경우(n/2번째 값 +(n/2) +1번째값)/2 이다
index=book sourcetype="access_combined_wcookie"
| stats sum(bytes), avg(bytes), max(bytes), median(bytes), min(bytes) by clientip
각각의 통계 값의 결과가 출력된것을 확인할 수 있다.
stats 명령어와 sort 명령어를 이용하여 해당 시간대의 가장 많은 패킷을 보낸 사람을 내림차순으로 확인할 수 있다.
index=book sourcetype="access_combined_wcookie"
| stats sum(bytes) by clientip
| sort -sum(bytes)
특정 시간대의 이상징후를 파악할 때 유용하다.
2) top
지정한 필드에서 가장 많이 나오는 값을 보여준다.
<검색어> | top limit=<숫자> [showperc=T/F] [showcount=T/F] [useother=T/F] Field1, field2, by field
top 옵션 | 설명 | 기본 값 |
limit | 반환되는 결과 지정 | 10 |
showperc | 해당 값이 차지하는 비율 출력 | T |
showcount | 해당 값의 개수 출력 | T |
userother | Top 10 이외의 다른 숫자 확인 |
상태 값이 200인 로그 중 클라이언트 IP가 91.205.189.15를 출력하는데 시간 기준으로 접근한 클라이언트의 Top10을 Count로 표시하지 않고 비율로 표시하는 명령어이다.
index=book sourcetype="access_combined_wcookie" status="200" clientip="91.205.189.15"
| top limit=10 showperc=T showcount=F date_hour by clientip
1시, 13시, 17시 순으로 해당 사용자가 많이 접근한것을 확인할 수 있고 각각 접속 비율을 16, 12, 9퍼센트인것을 확인할 수 있다.
상태 값이 200인 로그 중에 클라이언트 IP가 접근 한 횟수의 Top5를 출력한다.
rename 명령어를 추가로 사용하여 테이블 가독성을 높혔다.
index=book sourcetype="access_combined_wcookie" status="200"
| top limit=5 showcount=T showperc=F clientip
| rename clientip AS "출발지 주소", count AS "접근 횟수"
접근 횟수의 Top5가 출력된는것을 확인할 수 있다.
접속 실패를 가장 많이 한 사용자 Top10 출력
index=book sourcetype="access_combined_wcookie" status="40*"
| top limit=10 clientip
3) rare
top 명령어의 정반대 결과인 빈도가 적은 값의 순서를 보여준다.
필수 프로그램을 설치하지 않은 PC를 확인하거나, 허가받지 않은 프로그램을 찾아내기 유용하다.
<검색어> | rare limit=<숫자> [showperc=T/F] [showcount=T/F] [useother=T/F] Field1, field2, by field
'Log Analysis > Splunk' 카테고리의 다른 글
Splunk 대시보드 구축 (0) | 2021.04.24 |
---|---|
Splunk 차트 시각화 (chart, timechart) (0) | 2021.04.24 |
Splunk 검색 - 필드(Field) 및 파이프라인(|) 이용하기 (2) | 2020.07.24 |
Splunk 검색 - 시간 연산자 이용하기 (0) | 2020.07.23 |
Splunk 검색 - 기본 검색 기능 이용하기 (0) | 2020.07.23 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊