8. Splunk 튜토리얼

2024. 11. 27. 09:00·프로젝트/[ESXi]인프라 구축 및 모니터링

1. Splunk 설치

MobaXtrem을 이용한 Splunk 설치

sudo dpkg -i splunk-8.2.0-e053ef3c985f-linux-2.6-amd64.deb
sudo /opt/splunk/bin/splunk enable boot-start
sudo /etc/init.d/splunk start

 

[ cp 에러 발생 시 대처 명령어 ]
SWID_SRC_DIR="$SPLUNK_HOME/etc" SWID_DEST_DIR="/usr/share/regid.2001-12.com.splunk" mkdir -p $SWID_DEST_DIR sudo cp /opt/splunk/swidtag/splunk-Splunk-Enterprise-primary.swidtag /opt/splunk/etc/regid.2001-12.com.splunk-Splunk-Enterprise.swidtag sudo chown splunk:splunk /opt/splunk/etc/regid.2001-12.com.splunk-Splunk-Enterprise.swidtag

 

Splunk 접속 가능

 

2. 데이터 업로드하기

● Splunk에 업로드 할 수 있는 데이터 목록

● 데이터 저장

    - 데이터를 올리면 인덱싱 작업을 진행함

    - 인덱싱 : 데이터 변환 프로세스

    - 데이터는 압축된 로우 데이터로 저장함

데이터 소스 기술
파일 및 디렉토리 파일 및 디렉토리에서 직접 가져오기
네트워크 이벤트 네트워크 포트의 원격 데이터와 원격 장치의 SNMP 이벤트
IT 운영 Nagios, NetApp, Cisco 와 같은 IT 운영팀 데이터
클라우드 서비스 AWS, Kinesis 와 같은 클라우드 서비스 데이터
데이터베이스 서비스 Oracle, MySQL, Microsoft SQL Server 와 같은 데이터베이스 데이터
보안 서비스 McAfee, Microsoft Active Directory, Symantec Endpoint Protection 과 같은 보안 서비스 데이터
가상화 서비스 VMWare, XenApp 과 같은 가상화 서비스 데이터
애플리케이션 서버 JMX, JMS, WebLogic, WebSphere 와 같은 애플리케이션 서버 데이터
Windows 소스 Windows 이벤트 로그 , Windows 레지스트리 , WMI, Active Directory 및 성능 모니터링을 포함한 광범위한 Windows 관련 데이터
기타 출처 API 및 기타 원격 데이터 인터페이스에서 데이터를 가져 오기 위한 FIFO 대기열 및 스크립트로 전달하는 데이터

 

데이터 추가 클릭

 

데이터 추가에 관한 튜토리얼 클릭

 

데이터 : https://docs.splunk.com/Documentation/Splunk/8.2.0/SearchTutorial/Systemrequirements#Download_the_tutorial_data_files

 

What you need for this tutorial - Splunk Documentation

Download topic as PDF --> What you need for this tutorial You need to create a Splunk.com account, access the free Trial version of the Splunk software, and download the tutorial data files. There might be other prerequisites, depending on which Splunk pla

docs.splunk.com

 

튜터리얼 데이터 설치

 

tutorialdata.zip 추가하기

 

새 인덱스 만들기

 

검색 시작

 

Search & Reporting 선택

 

기본 검색

 

3. 데이터 검색하기

검색 버튼을 눌러서 업로드한 데이터의 내용과 분포를 확인 가능●

입력 예시
단어를 입력해서 검색 가능 예) port
단어가 띄어쓰기 돼 있지 않은 경우 검색 안됨 예) por
-> port가 검색 안됨

예) por*
-> port를 포함해 por로 시작되는 모든 단어를 검색
두 단어를 입력하면 두 단어가 모두 포함된 단어 반환 예) port mongodb -> 두 단어가 모두 포함된 데이터만 검색
두 개 이상의 단어를 따옴표로 묶으면 전체 텍스트를 검색 예) "mongdb from"
불린 연산자를 이용해 AND와 OR 기능 사용 예) mongdb AND (10.0.0.200 or 194.0.0.100)
-> mongdb 관련 로그 중 ()에 있는 둘 중 하나의 IP가 출력되야함
특정 필드에서 단어 검색 예) host = u*

 

table

 

입력 예시
검색 문구 마지막에 파이프라인을 입력하면
오른쪽 명령의 입력으로 사용
source="tutorialdata.zip:*" host="splunk" index="test_index" | table Code, AcctID, source, sourcetype
-> table 명령어는 header를 명시하여 테이블 모양에 맞춰서 검색할 수 있음

 

sort

입력 예시
검색 문구 마지막에 파이프라인을 입력하면
오른쪽 명령의 입력으로 사용
source="tutorialdata.zip:*" host="splunk" index="test_index" | table Code, AcctID, source, sourcetype | sort Code
-> sort에 입력된 필드를 기준으로 정렬을 수행함

 

top

입력 예시
검색 문구 마지막에 파이프라인을 입력하면
오른쪽 명령의 입력으로 사용
source="tutorialdata.zip:*" host="splunk" index="test_index" | top Code limit=20
-> top에 입력된 필터를 기준으로 대상이 많은 필드부터 정렬
-> limit를 이용해 출려되는 갯수를 지정할 수 있음
-> rare를 이용할 경우 top과 반대로 희귀한 필드값 부터 정렬됨

 

검색 명령어 설명
index=test_index sourcetype=access_* status=200 action=purchase | top limit=1 clientip 구매을실행한사람들이성공메시지(200)을받은사람 들중에가장많은횟수를이용한사용자IP를조회
index=test_index sourcetype=access_* status=200 action=purchase clientip=87.194.216.51 | stats count, distinct_count(productId), values(productId) by clientip 가장많은횟수를구매한사람의IP가어떤제품에대한 정보를조회했는지통계정보로확인-Count: 전체개수-Distinct_count: 고유한데이터의개수-Values: 고유한데이터
index=test_index sourcetype=access_* status=200 action=purchase | top limit=1 clientip | table clientip 처음검색명령어에서client ip 만표기하도록테이블구
index=test_index sourcetype=access_* status=200 action=purchase [ search index=test_index sourcetype=access_* status=200 action=purchase | top limit=10 clientip | table clientip] | stats count, distinct_count(productId), values(productId) by clientip 대괄호의검색결과를먼저검색하고나온결과를사용해 다시검색해서통계를진행

 

복잡한 명령어 읽기 쉽게 만들기 [ Windows/Linux : Ctrl + \ ] [ MAC OSX : Ctrl + \ ]

 

컬럼 이름 재설정 하기

index=test_index sourcetype=access_* status=200 action=purchase [ search index=test_index sourcetype=access_* status=200 action=purchase | top limit=10 clientip | table clientip] | stats count AS "Total Purchased" , distinct_count(productId) AS "Total Products", values(productId) AS "Product IDs" by clientip | rename clientip AS "VIP Customer"

 

4. 룩업 : 데이블 정보 연결하기

prices.csv

● 관계형 테이블 연결

- RDB와 같이 서로 다른 데이터의 연결을 사용해 조회할 수 있음

- 앞서 사용한 두 데이터를 연결해 하나의 테이블로 표현

- tutorialdatalzip(제품 구매 로그 데이터) + prices.csv(제품 정보 데이터)

 

설정 > 데이터 추가 > 룩업

 

룩업 메뉴 확인

 

룩업 테이블 파일 > 새 룩업 테이블 파일

 

price.csv 파일 저장

 

파일 저장 및 권한 변경

 

룩업 정의

 

룩업(연결)에 기준이 될 sourcetype 확인

 

자동 룩업 등록

 

룩업에 기준이 될 필드(productid) 확인 및 추가될 필드 저장

 

룩업(연결) 확인 가능

 

5. 보고서 : 검색 저장 서비스

다른 이름으로 저장 > 보고서

 

보고서로 저장

 

보고서 탭에서 항상 확인 가능

 

6. 차트 생성하기

● 차트를 생성해 시가적으로 직관적으로 정보를 제공

 ○ 앞서 생성한 테이블을 사용해 다음 내용을 시각화

   - 각 제품을 본 횟수

   - 각 제품이 장바구니에 추가 된 횟수

   - 각 제품을 구매 한 횟수

첫번쨰 차트(1)

index="test_index" sourcetype=access_* status=200 | stats count AS views count(eval(action="addtocart")) AS addtocart count(eval(action="purchase")) AS purchases by productName | eval viewsToPurchases=(purchases/views)*100 | eval cartToPurchases=(purchases/addtocart)*100 | table productName views addtocart purchases viewsToPurchases cartToPurchases | rename productName AS "Product Name", views AS "Views", addtocart as "Adds To Cart", purchases AS "Purchases"

 

첫번쨰 차트(2)

 

첫번쨰 차트(3)

 

첫번쨰 차트(4)

 

두번째 차트(1)

 

두번쨰 차트(2)

 

 

세번쨰 차트(1)

 

세번쨰 차트(2)

 

3번째 차트(3)

 

3번쨰 차트(4)

 

보고서 생성 확인

 

7. 대시보드 구성하기

대시보드 시각화

index="test_index" sourcetype=access_* status=200 action=purchase | top categoryId

 

다른 이름으로 저장 > 새 대시보드

 

대시보드에 저장

 

대시보드에 추가 - 이로써 대시보드 확장 가능

 

'프로젝트 > [ESXi]인프라 구축 및 모니터링' 카테고리의 다른 글

9. 스플렁크(splunk)를 활용한 통합 로그 시스템 이해와 구축  (0) 2024.11.28
7. 방화벽에서 VLAN 인터페이스 할당  (0) 2024.11.26
6. 웹 방화벽(modsecurity) 기본 실습  (0) 2024.11.25
5. pfsense 방화벽 정책 설정(개발자 대역)  (0) 2024.11.22
4. IDS와 IPS 스노트 룰 패턴 탐지 실습  (2) 2024.11.21
'프로젝트/[ESXi]인프라 구축 및 모니터링' 카테고리의 다른 글
  • 9. 스플렁크(splunk)를 활용한 통합 로그 시스템 이해와 구축
  • 7. 방화벽에서 VLAN 인터페이스 할당
  • 6. 웹 방화벽(modsecurity) 기본 실습
  • 5. pfsense 방화벽 정책 설정(개발자 대역)
real-again
real-again
realagin 님의 블로그 입니다.
  • real-again
    또또, 다시
    real-again
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로젝트
        • AOS 모바일 앱 모의해킹
        • Spring Boot 웹 애플리케이션 구축
        • [ESXi]인프라 구축 및 모니터링
        • 인프라 취약점 진단 고도화
      • CVE 분석
      • 기반 지식
        • AWS
        • 인프라
        • 웹 어플리케이션
        • Android
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    aos정리
    pfsense
    android directory
    콘텐츠 프로바이더
    insecure authentication/authorization
    owasp mobile top10
    app intsructure
    spring boot
    splunk #esm
    diva
    vlan
    tocken
    sd스토리지
    브로트캐스트
    dvm
    EC2
    하드코드
    AWS
    통신 과정 취약점 진단
    Snort
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
real-again
8. Splunk 튜토리얼
상단으로

티스토리툴바