Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
인텔리안시스템즈
Splunk 6.2.3 사용자 교육
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
3COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
http://ko.splunk.com/download 에서 회원가입 후 최신 버전 다운로드
Splunk 설치 파일 다운로드
4COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
윈도우의 경우 실행 파일을 클릭하여 설치
Splunk 설치 - 윈도우
. Check this box to accept the License Agreement 체크 박스에 체크
. Install 버튼을 클릭
. Finish 버튼을 클릭하면 Splunk 초기 화면이 실행됨
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 설치 - 리눅스
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 시작하기
7COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
웹 브라우져로 http://127.0.0.1:8000 혹은 localhost:8000 으로 접근
사용자 "admin"에 암호 "changeme" 로 로그인
Splunk 시작 화면
8COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Admin 계정의 암호 변경, 암호는 반듯이 기억할 것. 초기화 불가
Splunk 관리자 암호 변경
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. “검색 시작”을 클릭하여 데이터 확인
한글 매뉴얼 및 참고 자료
10COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk 인덱싱 개념
• Splunk는 데이터 자체는 수정하지 않고 데이터 내 단어에 대해 시간 기반 지도를 만들어 원시
데이터를 인덱싱 함
• Splunk 인덱스는 특정 키워드가 있는 페이지를 가리키는 책의 마지막 부분에 있는 인덱스와 유사한
개념
• Splunk에서 대량의 데이터를 검색하려면 데이터를 먼저 인덱스해야 함
splunk 인덱싱
11COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk는 인덱싱 시 source, sourcetype, host, _time 의 4개 필드를 생성함
splunk 인덱싱 시 생성되는 필드
12COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
실습을 위해 모든 데이터에 접근 가능하도록 권한 설정
설정 > 엑세스제어 > 역할 > admin에서 “내부 인덱스가 아닌 모든 인덱스”를 추가
인덱스 설정
13COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk 홈 화면은 상단에 Splunk 로고를 클릭했을 때 나타나는 화면으로 아래와 같음
홈 화면 구성
앱 메뉴
데이터 추가, 앱 관리, 도움말, Q&A 메뉴
홈 대시보드 선택 메뉴
14COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈메뉴 모음 사용
15COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
왼쪽 상단 Splunk 로고 옆에 앱 버튼 클릭 -> 검색 및 보고 클릭
• 검색란
• 시간 범위 선택기
• 검색 방법
• 검색할 내용
검색 대시보드
16COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
데이터 요약 대화상자
• Host - 이벤트가 발생한 네트워크 시스템의 호스트 이름, IP 주소 또는 완전한 도메인 이름
• Source - 이벤트가 발생한 파일이나 디렉터리 경로, 네트워크 포트 또는 스크립트
• Sourcetype - 일반적인 형식 지정 방식에 기반한 데이터 유형
검색할 내용
17COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색란에 검색할 내용 및 명령어 입력
• * 입력하기 – 와일드 카드 지원
• 대소문자 구분하지 않음
• Booleans 표현 – 대문자 “AND” , “OR”, “NOT”
• 정확한 단어열은 “” 로 표현하며 복잡한 검색 요건은 “( )”로 그룹화하기
• 실습 – 검색란에 buttercupgames 입력
검색하기
18COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
시간 범위 선택기를 사용하여 검색에서 시간 경계를 설정
• 미리 설정 – 실시간, 상대, 전체 시간
• 상대, 실시간, 날짜 범위, 날짜 및 시간 범위, 고급
시간 범위 검색 제한
19COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색 작업 및 검색 모드로 작업 환경 제어
• 작업 설정 편집, 백그라운드로 작업 보내기, 작업 검사, 작업 삭제
• 검색 모드 – 고속 모드, 스마트 모드, 상세 모드
검색 작업 및 검색 모드
20COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색 결과에 대한 이벤트, 통계, 시각화 탭
• 이벤트 탭 – 이벤트 시간 표시줄, 필드 사이드바, 결과 영역
• 통계 탭
• 시각화 탭
• 검색란에 “buttercupgames | top categoryid” 입력
검색 결과 탭
21COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색 결과를 출력, 내보내기, 공유하거나 화면으로 변환
• 다른 이름으로 저장 – 보고서, 대시보드 패널, 경고, 이벤트 유형
• 공유, 내보내기, 인쇄
검색 결과 처리
22COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색란에 단어를 입력하는 방식으로 쉽게 검색
• 검색란에 “buttercupgames” 입력 – 검색 길잡이 표시
• 그룹화 – “buttercupgames (simulation OR strategy)” 입력
인덱스에서 이벤트 검색
23COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
고급 검색을 사용하기 위한 필드에 대한 이해
• 필드란? – 대부분 값 또는 이름-값으로, 각 필드에 이름에 대한 단일 값이나 다중 값
• 추출된 필드 – 인덱싱 시 기본 필드 추출, 검색 시 특정 필드 추출
• 특정 필드 검색 – fieldname=“fieldvalue”
• 검색란에 “sourcetype=“access_*”” 입력
• 필드 숨기기, 모든 필드
필드를 사용하여 검색
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
필드를 사용하여 검색 실습
25COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
검색 언어를 사용하여 원하는 값 찾기
• 검색 길잡이로 배우기
• 통계 탭에서 보고서 보기
• 시각화 탭에서 보고서 보기 및 형식 지정
• sourcetype=access_* status=200 action=purchase | top categoryId
검색 언어 사용
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"
하위 검색 사용
27COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드 룩업을 사용하여 새 필드를 이벤트에 추가하기
• prices.csv.zip 파일 압축 풀기
• 오른쪽 상단 설정 -> 지식 -> 룩업 클릭
• 룩업 테이블 파일 업로드
• 룩업 테이블 파일 -> 작업 -> 새로 추가 클릭
• 파일 선택 클릭 -> prices.csv 지정 -> 대상 파일 이름에 “prices.csv” 입력 -> 저장 클릭
필드 룩업 사용
28COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드 룩업을 사용하여 검색하기
• 필드 룩업 정의
• 룩업 -> 룩업 정의 -> 새로 만들기
• 이름에 “prices_lookup” 입력 -> 유형에 파일 기반 선택 -> 룩업파일에 “prices.csv” 선택 -> 저장
필드 룩업 사용
29COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드 룩업을 사용하여 검색하기
• 룩업 자동화
• 룩업 -> 자동 룩업 -> 새로 만들기
• 이름에 “price_lookup” 입력 -> 룩업 테이블 “price_lookup” 선택
• 적용 대상에 “sourcetype” 선택, 값에 “access_combined_wcookie” 입력
• 룩업 필드에 productId = productId 입력
• 룩업 출력 필드에 product_name = productName , price = price 입력 -> 저장 클릭
필드 룩업 사용
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 고객"
필드 룩업 사용
31COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
Splunk 검색 언어의 구현 형식
검색 파이프 라인
검색 구조
32COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
“|” 은 이전의 결과를 다음 명령의 Input으로 사용
아래의 경우 앞의 결과에서 Top 10 클라이언트 IP만 추출
• sourcetype=access_* status=200 action=purchase | top limit=10 clientip
Data의 처리 및 정리
33COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
필드 정의 / 데이터 처리
• multikv / eval / strcat / rex
필드 변환
• rename / replace
데이터 필터링
• dedup / regex / search
데이터 정렬
• sort / reverse / head
분석
• stats / chart / timechart
검색 명령어 유형
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 명령어
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 명령어
36COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
주요 함수는 아래와 같음
Splunk-6.2.0-ko_KO-SearchReference 매뉴얼의 함수 부분 참고
함수
37COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 TOP : 지정된 필드의 상위 값을 계산
 문제: 상위 10위까지 고객 아이피의 리스트를 만드세요.
 sourcetype=access_* | top 10 clientip
주요명령어: TOP
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
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
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
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
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
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
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
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
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
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
검색 예제
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
검색 예제
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” 입력
 시각화에 대해 없음을 클릭, 저장 클릭
 뷰 버튼 클릭하여 저장된 보고서 보기
 새 보고서를 저장하면 권한이 기본적으로 "비공개"로 설정됨, 권한을 변경하여 공유하거나 대시보드에 추가
보고서 저장
50COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 보고서 찾기
 앱 메뉴 중 보고서 클릭 -> 작성한 “VIP Customer” 찾기
 보고서 권한 편집
 해당 보고서 옆에 편집 버튼 클릭
 앱 버튼 선택하고 모든 사용자에 읽기 권한, admin에 쓰기 권한 체크
 저장 버튼 클릭
 VIP Custmor 클릭하여 보고서 열고 시간 범위 선택기 조정하여 편집하기
보고서 찾기
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
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
53COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 시간대별로 구입한 제품 차트
 sourcetype=access_* | timechart count(eval(action="purchase")) by productName
usenull="f" useother="f"
 usenull 및 useother 인수를 사용, productName에 대한 값을 가진 이벤트만 차트에서 계산
 시각화 탭 클릭 -> 꺽은선형 선택
 제목이 "상품별 구입현황"이고 설명이 "각 상품의 구입 개수"인 보고서를 저장
보고서 예제 3
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
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” 입력
 저장 버튼 클릭
 대시보드 보기 클릭
대시보드 작성
56COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 검색을 대시보드 패널로 저장하기
 앱 탐색 메뉴에서 대시보드를 클릭
 i(정보) 아래 화살표를 클릭, 대시보드에 대한 자세한 정보 확인
 작업에서 편집을 클릭, 패널 편집을 선택
 패널 추가를 클릭 -> 콘텐츠 유형에 대해 "보고서"를 클릭 -> 저장된 보고서 선택
 콘텐츠 제목에 보고서 제목을 입력
 패널 추가를 클릭
대시보드 편집
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의 정의
58COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 데이터
 Add-on (기본 Splunk의 설정이나 사용자 정의 설정)
 Splunk 구현 자원들
 “Saved Searches” 저장된 검색
 보고서
 Views
 정규식 정의 및 Test Tool (Regexr)
 XML / Code 편집기 (XML Marker 1.X, Notepad++)
App 만들기 전 필요 사항
59COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 App 생성 – 왼쪽 상단 앱 -> 앱 관리 -> 앱 만들기
 폴더 이름은 반듯이 영문으로 스페이스 없이 쓸 것
신규 App 생성
60COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 신규 앱에서 대시보드 작성하기
 대시보드 -> 새 대시보드 만들기 클릭
 제목, ID, 설명, 권한 입력
 대시보드 만들기 클릭
대시보드 만들기
61COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 조회 조건을 선택할 수 있는 입력 추가
 입력 추가에서 드롭다운 선택
 연필 버튼 클릭, 레이블에 “액션“ 입력, 변경사항 검색 체크, 토큰에 “action” 입력, 접두사에 “action=“
입력
입력 추가하기
62COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 조회 조건을 선택할 수 있는 입력 추가
 동적 옵션 클릭 -> 콘텐츠 유형 인라인 검색 선택, 검색문자열에 “sourcetype=access_combined_* |
dedup action | table action” 입력, 적용 버튼 클릭
입력 추가하기
63COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 조회 조건과 연동하는 결과 패널 만들기
 패널 추가 클릭 -> 콘텐츠 제목 입력, 콘텐츠 유형 인라인 검색 선택, 검색 문자열에 “” 입력 후 패널 추
가 클릭
패널 추가하기
64COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 입력에서 선언하는 토큰 사용법
 입력에서 선언하는 토큰은 패널에서 변수로 사용할 수 있다
• 예) 토큰명 “action” 일 경우 패널 검색식에서 “$action$” 로 사용한다.
 토크 접두사 및 접미사는 변수에 포함되어 전달된다
• 예) 접두사가 “action=“ 일 경우 선택 값이 “purchase”이면 “$action$”에 전달되는 값은
“action=purchase”
대시보드 만들기 정리
65COPYRIGHT ⓒ 2015 Intelliansystems ALL RIGHTS RESERVED.
인텔리안시스템즈
 15일간 Splunk 서비스를 AWS 서비스로 이용
 https://www.splunk.com/getsplunk/cloudtrial 에서 Start Now 클릭
 설치된 사이트 주소와 ID/PW를 제공
Free Online Sandbox 이용하기
인텔리안시스템즈
Q & A
인텔리안시스템즈
감사합니다

More Related Content

Splunk 교육자료 v1.2

  • 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 이용하기