2. 2COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈강사 소개
인텔리안시스템즈 연 준 명 부장
주 요 이 력
기간 담 당 업 무
2012.02-현재 Splunk 보안 / 빅데이터 컨설팅 및 기술 지원
1999.05-2012.01 SC은행 ITO 업무
주요 업무 – 빅데이터 관련 솔루션 컨설팅, 보안 컨설팅, 금융권 ITO 수행 등
Splunk Architect, CISSP, CISA, CPPG, PMP, MCSE, Splunk User Group 회장
Splunk User Group
네이버 카페 - http://cafe.naver.com/splunker
페이스북 - https://www.facebook.com/groups/SplunkKoreaUserGroup/
이메일 – junnyah@gmail.com
3. 3COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
http://ko.splunk.com/download 에서 회원가입 후 최신 버전 다운로드
Splunk 설치 파일 다운로드
4. 4COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
윈도우의 경우 실행 파일을 클릭하여 설치
Splunk 설치 - 윈도우
. Check this box to accept the License Agreement 체크 박스에 체크
. Install 버튼을 클릭
. Finish 버튼을 클릭하면 Splunk 초기 화면이 실행됨
5. 5COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
설치 파일을 /opt 아래로 복사
tar xvfz splunk_package_name.tgz
설치 옵션들
설치 디렉터리 지정
tar xvzf splunk_package_name.tgz -C /opt
실행하기 - /opt/splunk/bin 으로 이동
./splunk start
라이선스 바로 동의하고 설치하기 옵션
./splunk start --accept-license
서버 부팅 시 자동 실행 옵션 지정
./splunk enable boot-start
Splunk 설치 - 리눅스
6. 6COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
시작 -> 모든 프로그램 -> Splunk Enterprise -> Splunk Enterprise
재시작 방법 : 시작 -> 프로그램 및 파일 검색에 “CMD” 입력 -> 엔터
Windows 64bit : cd C:Program Files Splunkbin
Windows 32bit : cd C:Program Files (x86)Splunkbin
스플렁크 시작 명령어를 " splunk.exe restart " 입력
Splunk 시작하기
7. 7COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
웹 브라우져로 http://127.0.0.1:8000 혹은 localhost:8000 으로 접근
사용자 "admin"에 암호 "changeme" 로 로그인
Splunk 시작 화면
8. 8COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Admin 계정의 암호 변경, 암호는 반듯이 기억할 것. 초기화 불가
Splunk 관리자 암호 변경
9. 9COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk Manual
• http://docs.splunk.com/Documentation/Splunk/6.2.3/Translated/Koreanmanuals
데이터 파일 다운로드 경로
• http://docs.splunk.com/images/Tutorial/tutorialdata.zip
• http://docs.splunk.com/images/d/db/Prices.csv.zip
데이터 추가하기
1. 좌측 상단의 splunk 로고 클릭하여 홈 화면 이동
2. 상단 메뉴 중에서 “데이터 추가“ 클릭
3. “업로드” 클릭
4. 파일 선택 버튼 클릭 후 다운로드 한 파일(tutorialdata.zip)을 선택
5. 상단의 “다음” 클릭
6. 호스트 설정에서 “경로 내 세그먼트“ 선택 후 세그먼트 번호에 “1” 입력
7. 상단의 “검토"를 클릭
8. 내용 확인 후 상단의 “제출“을 클릭
9. “검색 시작”을 클릭하여 데이터 확인
한글 매뉴얼 및 참고 자료
10. 10COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk 인덱싱 개념
• Splunk는 데이터 자체는 수정하지 않고 데이터 내 단어에 대해 시간 기반 지도를 만들어 원시
데이터를 인덱싱 함
• Splunk 인덱스는 특정 키워드가 있는 페이지를 가리키는 책의 마지막 부분에 있는 인덱스와 유사한
개념
• Splunk에서 대량의 데이터를 검색하려면 데이터를 먼저 인덱스해야 함
splunk 인덱싱
11. 11COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk는 인덱싱 시 source, sourcetype, host, _time 의 4개 필드를 생성함
splunk 인덱싱 시 생성되는 필드
12. 12COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
실습을 위해 모든 데이터에 접근 가능하도록 권한 설정
설정 > 엑세스제어 > 역할 > admin에서 “내부 인덱스가 아닌 모든 인덱스”를 추가
인덱스 설정
13. 13COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk 홈 화면은 상단에 Splunk 로고를 클릭했을 때 나타나는 화면으로 아래와 같음
홈 화면 구성
앱 메뉴
데이터 추가, 앱 관리, 도움말, Q&A 메뉴
홈 대시보드 선택 메뉴
14. 14COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈메뉴 모음 사용
15. 15COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
왼쪽 상단 Splunk 로고 옆에 앱 버튼 클릭 -> 검색 및 보고 클릭
• 검색란
• 시간 범위 선택기
• 검색 방법
• 검색할 내용
검색 대시보드
16. 16COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
데이터 요약 대화상자
• Host - 이벤트가 발생한 네트워크 시스템의 호스트 이름, IP 주소 또는 완전한 도메인 이름
• Source - 이벤트가 발생한 파일이나 디렉터리 경로, 네트워크 포트 또는 스크립트
• Sourcetype - 일반적인 형식 지정 방식에 기반한 데이터 유형
검색할 내용
17. 17COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색란에 검색할 내용 및 명령어 입력
• * 입력하기 – 와일드 카드 지원
• 대소문자 구분하지 않음
• Booleans 표현 – 대문자 “AND” , “OR”, “NOT”
• 정확한 단어열은 “” 로 표현하며 복잡한 검색 요건은 “( )”로 그룹화하기
• 실습 – 검색란에 buttercupgames 입력
검색하기
18. 18COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
시간 범위 선택기를 사용하여 검색에서 시간 경계를 설정
• 미리 설정 – 실시간, 상대, 전체 시간
• 상대, 실시간, 날짜 범위, 날짜 및 시간 범위, 고급
시간 범위 검색 제한
19. 19COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색 작업 및 검색 모드로 작업 환경 제어
• 작업 설정 편집, 백그라운드로 작업 보내기, 작업 검사, 작업 삭제
• 검색 모드 – 고속 모드, 스마트 모드, 상세 모드
검색 작업 및 검색 모드
20. 20COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색 결과에 대한 이벤트, 통계, 시각화 탭
• 이벤트 탭 – 이벤트 시간 표시줄, 필드 사이드바, 결과 영역
• 통계 탭
• 시각화 탭
• 검색란에 “buttercupgames | top categoryid” 입력
검색 결과 탭
21. 21COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색 결과를 출력, 내보내기, 공유하거나 화면으로 변환
• 다른 이름으로 저장 – 보고서, 대시보드 패널, 경고, 이벤트 유형
• 공유, 내보내기, 인쇄
검색 결과 처리
22. 22COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색란에 단어를 입력하는 방식으로 쉽게 검색
• 검색란에 “buttercupgames” 입력 – 검색 길잡이 표시
• 그룹화 – “buttercupgames (simulation OR strategy)” 입력
인덱스에서 이벤트 검색
23. 23COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
고급 검색을 사용하기 위한 필드에 대한 이해
• 필드란? – 대부분 값 또는 이름-값으로, 각 필드에 이름에 대한 단일 값이나 다중 값
• 추출된 필드 – 인덱싱 시 기본 필드 추출, 검색 시 특정 필드 추출
• 특정 필드 검색 – fieldname=“fieldvalue”
• 검색란에 “sourcetype=“access_*”” 입력
• 필드 숨기기, 모든 필드
필드를 사용하여 검색
24. 24COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드를 더 세분화해서 사용하기
Buttercup Games 상점에서 성공적인 구입을 검색
• sourcetype=access_* status=200 action=purchase
• sourcetype=access_* status!=200 action=purchase
일반 오류를 검색
• (error OR failed OR severe) OR (status=404 OR status=500 OR status=503)
어제 팔린 시뮬레이션 게임 수량
• sourcetype=access_* status=200 action=purchase categoryId=simulation
필드를 사용하여 검색 실습
25. 25COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색 언어를 사용하여 원하는 값 찾기
• 검색 길잡이로 배우기
• 통계 탭에서 보고서 보기
• 시각화 탭에서 보고서 보기 및 형식 지정
• sourcetype=access_* status=200 action=purchase | top categoryId
검색 언어 사용
26. 26COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
이벤트를 하위 검색과 연결하기
• sourcetype=access_* status=200 action=purchase | top limit=1 clientip
• sourcetype=access_* status=200 action=purchase clientip=87.194.216.51 | stats count,
dc(productId) by clientip
하위 검색을 이용하면
• sourcetype=access_* status=200 action=purchase [search sourcetype=access_* status=200
action=purchase | top limit=1 clientip | table clientip] | stats count, dc(productId),
values(productId) by clientip
• sourcetype=access_* status=200 action=purchase [search sourcetype=access_* status=200
action=purchase | top limit=1 clientip | table clientip] | stats count AS "Total Purchased",
dc(productId) AS "Total Products", values(productId) AS "Products ID" by clientip | rename
clientip AS "VIP Customer"
하위 검색 사용
27. 27COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드 룩업을 사용하여 새 필드를 이벤트에 추가하기
• prices.csv.zip 파일 압축 풀기
• 오른쪽 상단 설정 -> 지식 -> 룩업 클릭
• 룩업 테이블 파일 업로드
• 룩업 테이블 파일 -> 작업 -> 새로 추가 클릭
• 파일 선택 클릭 -> prices.csv 지정 -> 대상 파일 이름에 “prices.csv” 입력 -> 저장 클릭
필드 룩업 사용
28. 28COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드 룩업을 사용하여 검색하기
• 필드 룩업 정의
• 룩업 -> 룩업 정의 -> 새로 만들기
• 이름에 “prices_lookup” 입력 -> 유형에 파일 기반 선택 -> 룩업파일에 “prices.csv” 선택 -> 저장
필드 룩업 사용
29. 29COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드 룩업을 사용하여 검색하기
• 룩업 자동화
• 룩업 -> 자동 룩업 -> 새로 만들기
• 이름에 “price_lookup” 입력 -> 룩업 테이블 “price_lookup” 선택
• 적용 대상에 “sourcetype” 선택, 값에 “access_combined_wcookie” 입력
• 룩업 필드에 productId = productId 입력
• 룩업 출력 필드에 product_name = productName , price = price 입력 -> 저장 클릭
필드 룩업 사용
30. 30COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드 룩업을 사용하여 검색하기
• 검색 앱에서 “sourcetype=access_*” 입력
• price 및 productName 필드 추가
• 새 룩업 필드를 사용하여 검색
• sourcetype=access_* status=200 action=purchase [search
sourcetype=access_* status=200 action=purchase | top limit=1 clientip | table
clientip] | stats count AS "총 구매금액", dc(productId) AS "총 구매수량",
values(productName) AS "제품명" by clientip | rename clientip AS "VIP 고객"
필드 룩업 사용
31. 31COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk 검색 언어의 구현 형식
검색 파이프 라인
검색 구조
32. 32COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
“|” 은 이전의 결과를 다음 명령의 Input으로 사용
아래의 경우 앞의 결과에서 Top 10 클라이언트 IP만 추출
• sourcetype=access_* status=200 action=purchase | top limit=10 clientip
Data의 처리 및 정리
33. 33COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드 정의 / 데이터 처리
• multikv / eval / strcat / rex
필드 변환
• rename / replace
데이터 필터링
• dedup / regex / search
데이터 정렬
• sort / reverse / head
분석
• stats / chart / timechart
검색 명령어 유형
34. 34COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Structure : stats func(field), func(field), func(field) by field, field, field
* | stats count
* | stats count by host
* | stats sum(price), values(productId) by categoryId
* | stats count(eval(method="GET")) as GET, count(eval(method="POST")) as POST
by host
stats 명령어
35. 35COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Structure : timechart func(field), func(field), func(field) by field
* | timechart count
* | timechart count by host
* | timechart sum(price), values(productId) by categoryId
* | timechart count(eval(method="GET")) as GET, count(eval(method="POST")) as
POST by host
timechart 명령어
36. 36COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
주요 함수는 아래와 같음
Splunk-6.2.0-ko_KO-SearchReference 매뉴얼의 함수 부분 참고
함수
37. 37COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
TOP : 지정된 필드의 상위 값을 계산
문제: 상위 10위까지 고객 아이피의 리스트를 만드세요.
sourcetype=access_* | top 10 clientip
주요명령어: TOP
38. 38COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
SEARCH : 키워드, 따옴표로 묶은 절, 와일드 카드 및 키/값 쌍식을 사용하여 결과를 필터링
문제: 최근 15분 동안 접속 횟수가 많은 고객의 IP 중에서 앞자리가20으로 시작되는 IP를 찾아
보세요.
sourcetype=access_* | stats count by clientip | search clientip=20*.*.*.*
문제: 최근 1시간 동안 1000 번 이상 방문한 고객의 IP를 찾아 보세요.
sourcetype=access_* | stats count by clientip | search count>1000
최근 1시간 동안 1000 건 이상 방문한 사용자의 관심 품목(productName)명의 리스트를 함께
나타내세요.
sourcetype=access_* | stats values(productName) count by clientip | search
count>1000
주요명령어: SEARCH
39. 39COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Regex : 특정 패턴 검색
문제: 최근 15 분 동안 특정 패턴=(^1d{2}.)을 보이는 고객의 방문수를 고객 IP별로 나타내
세요.
sourcetype=access_* action=purchase | regex clientip="^1d{2}." | stats count by
clientip
문제: 수집된 데이터에서 정규식으로 필드 추출( Raw 데이터의 clientip를 SRC_IP로 추출)
sourcetype=access_* | rex field=_raw "(?<SRC_IP>d+.d+.d+.d+)"
주요명령어: REGEX
40. 40COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
STRCAT : 문자열 값을 연결
문제: clientip와 host의 값을 “/” 구분으로 COMBO라는 필드를 생성
sourcetype=access_* | stats count by clientip, host | strcat clientip "/" host COMBO
문제: action의 내용과 productName을 “ : ” 로 연결하세요.
sourcetype=access_* | stats count by action, productName | strcat action " : "
productName COMBO
문제: 최근 24 시간 동안 이벤트에서 관심 물품에 대한 접속자 수, 총 금액을 하나의 Value로 표
현해 보세요.
주요명령어: STRCAT
41. 41COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
문제: status_code라는 가상의 Field를 생성하여, status 값이200이면 “OK” 200이 아니면
“Error”로 표시하세요.
sourcetype=access_* | eval status_code= if(status== 200, "OK", "Error") | table
clientip status_code
문제: status가 200이면 “OK”로 필드 값을 변경
sourcetype=access_* | eval status=if(status==200, "OK", status) | stats count by status
문제: status가 400 이하이면 성공, 이상이면 실패로 status의 통계를 구하여 막대형 차트로 표
현하세요.
sourcetype=access_* | eval status=if(status<400, "성공", "실패") | chart count by status
주요명령어: EVAL–IF
42. 42COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
문제: 최근 24 시간 동안 status가 400 이하이면 “성공”, status 가400보다 크거나 같으면 “에
러”로 status의 통계를 구하여 막대형 차트로 표현하세요.
sourcetype=access_* | eval STATUS=case(status<400, "성공", status>=400,"에러") |
stats count by STATUS
문제: 최근 24시간 동안 접속한 고객 아이피의 앞자리가 숫자 두 자리면 “T” 로, 그렇지 않으면
“F”로 표시하세요. 그리고 필드명을 “isvalue”, “clientip” 로하여 table로 나타내세요.
sourcetype=access_* | eval isvalue=if(match(clientip,"^d{2}."),"T","F") | table
isvalue, clientip | head 10
시간형태를 바꾸어 나타내기
sourcetype=access_* | eval TIME=strftime(_time, "%Y년%m월%d일%H:%M:%S") |
table _time, TIME | head 10
주요명령어: EVAL–Function
43. 43COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
문제: 최근 24 시간 동안 action별 count를 구하고 addtocart->"장바구니"로
changequantity-> "수량변경"으로 purchase -> "구매"로 필드명을 변경하세요.
sourcetype=access_* | stats count by action | replace addtocart with "장바구니",
changequantity with "수량변경", purchase with "구매", remove with "구매포기", view
with "상품보기“
문제: 최근 24시간 동안 categoryId별 count를 구하고 NULL ->"제외" 로 필드명을 변경한 후
파이차트로 나타내세요.
sourcetype=access_* | stats count by categoryId | replace NULL with "제외" in
categoryId
주요명령어: REPLACE
44. 44COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
문제: 최근 60분 동안 clientip별 count를 구하고 count의 내림차순으로 정렬하세요.
sourcetype=access_* | stats count by clientip | sort –count
문제: 최근 60분 동안 고객IP별 구매 가격의 합을 10개만 나타내세요.
sourcetype=access_* action=purchase | stats sum(price) by clientip | head 10
문제: 최근 60분 동안 고객IP별 구매 가격의 합을 count별로 내림차순한후 마지막 5개를 반환
해보세요.
sourcetype=access_* | stats count by clientip | sort -count | tail 5
문제: 최근 60분 동안 접속한 최신 고객의 정보를 고객IP 기준으로 나타내세요.
sourcetype=access_* | dedup clientip | table clientip
기타 주요명령어1
45. 45COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Fieldformat: 원본값은 변경하지 않고 출력 시만 지정한 포멧으로 변경합니다.
sourcetype=access_* | stats count | fieldformat cnt=tostring(count,"commas")
RANGEMAP : 결과값을 일정 범위로 구분하여 표현합니다.
sourcetype=access_* action=purchase | stats count by categoryId | rangemap
field=count green=1-100 blue=100-200 red=200-300 default=gray | stats count by
range
기타 주요명령어2
46. 46COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
IPLOCATION: IP와 일치하는 도시, 나라, 위도, 경도를 보여줍니다.
sourcetype=access_* | iplocation clientip | table clientip, City, Country, lat, lon
GEOSTATS : 지정된 기준과 일치하는 결과를 구글 지도상에 통계를 보여줍니다
… | geostats latfield=위도좌표 longfield=경도좌표 function by groupby_name
sourcetype=access_* | iplocation clientip | geostats latfield=lat longfield=lon count by
action
OverlayChart
sourcetype=access_* | iplocation clientip | stats count, dc(clientip) as dcip by Country
기타 주요명령어3
47. 47COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
sourcetype=access_* action=purchase | transaction clientip maxspan=10m | chart
count by duration span=log2
sourcetype=access_* action=purchase | transaction clientip maxspan=10m | chart
avg(eventcount) by duration span=log2
sourcetype=access_* action=purchase | chart dc(clientip) over date_hour by
categoryId usenull=f
sourcetype=access_* action="purchase" [ search sourcetype=access_*
action="purchase" | stats sum(price) by clientip | sort - sum(price) | head 1 | fields +
clientip ] | timechart sum(price) by productName
검색 예제
48. 48COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
sourcetype=access_* action=purchase clientip="12.*“
sourcetype=access_* action=purchase clientip=“87.*“
sourcetype=access_* action=purchase | chart dc(clientip) over date_hour by
categoryId usenull=f
검색 예제
49. 49COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
보고서로 저장
sourcetype=access_* status=200 action=purchase [search sourcetype=access_* status=200
action=purchase | top limit=1 clientip | table clientip] | stats count AS "Total Purchased", dc(productId) AS
"Total Products", values(productName) AS "Product Names" by clientip | rename clientip AS "VIP
Customer"
검색란 위 다른 이름으로 저장을 클릭하고 보고서를 선택
제목에 “VIP Customer” 설명에 “Buttercup Games most frequent shopper” 입력
시각화에 대해 없음을 클릭, 저장 클릭
뷰 버튼 클릭하여 저장된 보고서 보기
새 보고서를 저장하면 권한이 기본적으로 "비공개"로 설정됨, 권한을 변경하여 공유하거나 대시보드에 추가
보고서 저장
50. 50COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
보고서 찾기
앱 메뉴 중 보고서 클릭 -> 작성한 “VIP Customer” 찾기
보고서 권한 편집
해당 보고서 옆에 편집 버튼 클릭
앱 버튼 선택하고 모든 사용자에 읽기 권한, admin에 쓰기 권한 체크
저장 버튼 클릭
VIP Custmor 클릭하여 보고서 열고 시간 범위 선택기 조정하여 편집하기
보고서 찾기
51. 51COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
시각화 보고서 만들기
sourcetype=access_* status=200 | chart count AS views count(eval(action="addtocart")) AS
addtocart count(eval(action="purchase")) AS purchases by productName | rename
productName AS "상품명", views AS "상품보기", addtocart AS "장바구니", purchases AS "구매
“
다른 이름으로 저장 클릭 -> “제품 보기와 구입 비교"를 입력, 설명에 "제품을 보고 장바구니에 추가 및
구입한 횟수"를 입력 -> 저장을 클릭
보고서 예제 1
52. 52COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
통계 보고서 만들기
sourcetype=access_* status=200 | stats count AS views count(eval(action="addtocart")) AS addtocart
count(eval(action="purchase")) AS purchases by productName | eval
viewsToPurchase=(purchases/views)*100 | eval cartToPurchase=(purchases/addtocart)*100 | table
productName views addtocart purchases viewsToPurchase cartToPurchase | rename productName AS "상
품명" views AS "상품보기", addtocart As "장바구니", purchases AS "구매", viewsToPurchase AS "상품보기구
매율", cartToPurchase AS "장바구니구매율"
백분율 표시부분 수정하기 -> 소수점 두 번째 자리까지 표현, round 함수 사용하기
“%” 기호 추가하기 -> eval 함수 이용
sourcetype=access_* status=200 | stats count AS views count(eval(action="addtocart")) AS addtocart
count(eval(action="purchase")) AS purchases by productName | eval
viewsToPurchase=round((purchases/views)*100,2) | eval
cartToPurchase=round((purchases/addtocart)*100,2) | eval viewsToPurchase=viewsToPurchase+"%" |
eval cartToPurchase=cartToPurchase+"%" | table productName views addtocart purchases
viewsToPurchase cartToPurchase | rename productName AS "상품명" views AS "상품보기", addtocart As "
장바구니", purchases AS "구매", viewsToPurchase AS "상품보기구매율", cartToPurchase AS "장바구니구매율"
보고서 예제 2
53. 53COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
시간대별로 구입한 제품 차트
sourcetype=access_* | timechart count(eval(action="purchase")) by productName
usenull="f" useother="f"
usenull 및 useother 인수를 사용, productName에 대한 값을 가진 이벤트만 차트에서 계산
시각화 탭 클릭 -> 꺽은선형 선택
제목이 "상품별 구입현황"이고 설명이 "각 상품의 구입 개수"인 보고서를 저장
보고서 예제 3
54. 54COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
sparkline 사용하기
sourcetype=access_* status=200 action=purchase | chart count AS Total by categoryId |
rename categoryId AS "Category"
구입 개수가 sparkline() 함수의 인수로 사용하여 트렌드 표시
sourcetype=access_* status=200 action=purchase| chart sparkline(count) AS "Purchases
Trend" count AS Total by categoryId | rename categoryID AS "Category"
제목이 "구입동향"이고 설명이 "각 상품의 구입 개수 동향"인 보고서를 저장
보고서 예제 4
55. 55COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색을 대시보드 패널로 저장하기
sourcetype=access_* status=200 action=purchase | top categoryId
시각화 탭을 클릭하고 원형 차트를 선택
검색란 위에서 다른 이름으로 저장을 클릭, 대시보드 패널을 선택
대시보드에 대해 새로 만들기를 클릭, 대시보드 제목에 “Buttercup Games Purchases” 입력
대시보드 설명에 “Reports on Buttercup Games successful purchases data.” 입력
패널 제목에 “Top Purchases by Category” 입력
저장 버튼 클릭
대시보드 보기 클릭
대시보드 작성
56. 56COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색을 대시보드 패널로 저장하기
앱 탐색 메뉴에서 대시보드를 클릭
i(정보) 아래 화살표를 클릭, 대시보드에 대한 자세한 정보 확인
작업에서 편집을 클릭, 패널 편집을 선택
패널 추가를 클릭 -> 콘텐츠 유형에 대해 "보고서"를 클릭 -> 저장된 보고서 선택
콘텐츠 제목에 보고서 제목을 입력
패널 추가를 클릭
대시보드 편집
57. 57COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk Application의 의미
App - 여러 이종의 데이터 View를 체계화하여 하나의 애플리케이션으로 UI를 연계 정리한
Splunk 내의 구성
• 예 : “Splunk for Cisco Security” 이나 “Unix” App
Add-on – Splunk에 추가되어 추가적인 자원 (예 :command, 데이터 인지 룰) 으로 기능
을 확장 하는 모듈
• 예 : 여러 Splunk 상의 설정, Parsing Rule 및 이벤트 설정, Splunk 신규 Search 명령
어
Application의 정의
58. 58COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
데이터
Add-on (기본 Splunk의 설정이나 사용자 정의 설정)
Splunk 구현 자원들
“Saved Searches” 저장된 검색
보고서
Views
정규식 정의 및 Test Tool (Regexr)
XML / Code 편집기 (XML Marker 1.X, Notepad++)
App 만들기 전 필요 사항
59. 59COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
App 생성 – 왼쪽 상단 앱 -> 앱 관리 -> 앱 만들기
폴더 이름은 반듯이 영문으로 스페이스 없이 쓸 것
신규 App 생성
60. 60COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
신규 앱에서 대시보드 작성하기
대시보드 -> 새 대시보드 만들기 클릭
제목, ID, 설명, 권한 입력
대시보드 만들기 클릭
대시보드 만들기
61. 61COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
조회 조건을 선택할 수 있는 입력 추가
입력 추가에서 드롭다운 선택
연필 버튼 클릭, 레이블에 “액션“ 입력, 변경사항 검색 체크, 토큰에 “action” 입력, 접두사에 “action=“
입력
입력 추가하기
62. 62COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
조회 조건을 선택할 수 있는 입력 추가
동적 옵션 클릭 -> 콘텐츠 유형 인라인 검색 선택, 검색문자열에 “sourcetype=access_combined_* |
dedup action | table action” 입력, 적용 버튼 클릭
입력 추가하기
63. 63COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
조회 조건과 연동하는 결과 패널 만들기
패널 추가 클릭 -> 콘텐츠 제목 입력, 콘텐츠 유형 인라인 검색 선택, 검색 문자열에 “” 입력 후 패널 추
가 클릭
패널 추가하기
64. 64COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
입력에서 선언하는 토큰 사용법
입력에서 선언하는 토큰은 패널에서 변수로 사용할 수 있다
• 예) 토큰명 “action” 일 경우 패널 검색식에서 “$action$” 로 사용한다.
토크 접두사 및 접미사는 변수에 포함되어 전달된다
• 예) 접두사가 “action=“ 일 경우 선택 값이 “purchase”이면 “$action$”에 전달되는 값은
“action=purchase”
대시보드 만들기 정리
65. 65COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
15일간 Splunk 서비스를 AWS 서비스로 이용
https://www.splunk.com/getsplunk/cloudtrial 에서 Start Now 클릭
설치된 사이트 주소와 ID/PW를 제공
Free Online Sandbox 이용하기