Splunk/Splunk Python SDK

[Splunk] Splunk Python SDK 로 Splunk Enterprise 에 연결하기

코딩하는라민 2025. 4. 29. 08:30
728x90
반응형
BIG

[Splunk] Splunk Python SDK 로 Splunk Enterprise 에 연결하기

 

 

Splunk python SDK 로 Splunk 에 연결하려면 우선 연결에 필요한 인증 정보가 필요하다.

인증 정보는 `세션 키`, `토큰` 또는 `사용자명/비밀번호` 중 하나가 필요하다.

 

Splunk 와 연결하기

사용자명(username)/비밀번호(password)로 연결

가장 간단한 방법으로 Splunk 를 설치했던 username 과 password 로 로그인하는 방법이다. 간단한 테스트를 할 때 주로 사용한다.

import splunklib.client as client

HOST = "localhost"
PORT = 8089
USERNAME = "admin"
PASSWORD = "yourpassword"

service = client.connect(
    host=HOST,
    port=PORT,
    username=USERNAME,
    password=PASSWORD
)

 

 

Bearer Token 로 연결

Bearer Token 방식은 토큰의 유효기간을 설정할 수 있어 가장 안전하고 유연한 방법이다.

아래와 같이 터미널에서 토큰을 발급받을 수도 있지만, Splunk 웹에서도 간단히 GUI 로 발급받을 수도 있다.

Bearer Token 은 한번 발급받은 토큰은 토큰 정보 창을 닫으면 다시 확인할 수 없다.

 

Bearer Token 생성

먼저 인증 토큰을 활성하고, 토큰을 생성해야한다.

 

인증 토큰 활성화
curl -k -u admin:패스워드 -X POST https://localhost:8089/services/admin/token-auth/tokens_auth -d disabled=false

 

 

토큰 생성
curl -k -u <사용자명>:<비밀번호> -X POST https://<호스트>:<포트>/services/authorization/tokens?output_mode=json --data name=<사용자명> --data audience=<역할> --data-urlencode expires_on=+30d

위의 명령어에서 사용자명, 비밀번호 등을 입력 후 실행하면 토큰에 대한 정보가 담긴 객체가 반환된다.

이 중 `token` 항목에 반환된 값을 인증 정보에 사용하면 된다.

 

 

Bearer Token 으로 Splunk 에 연결하기

ximport splunklib.client as client

HOST = "localhost"
PORT = 8089 
BEARER_TOKEN = "<bearer_token>"

service = client.connect(
    host=HOST,
    port=PORT,
    splunkToken=BEARER_TOKEN
)

 

 

Session Key 로 연결

Session Key 방식은 유효 기간이 짧아서 자주 재로그인해줘야 한다는 단점이 있다.

 

Session Key 생성

curl -k -u <사용자명>:<비밀번호> https://<호스트>:<포트>/services/auth/login -d username=<사용자명> -d password=<비밀번호>

위의 명령어에서 사용자명, 비밀번호 등을 입력하고 실행하면 xml 형식으로 응답이 온다. sessionKey 태그 안의 세션 키 값을 인증 정보에 사용하면 된다.

 

 

Session Key 로 Splunk 연결하기

import splunklib.client as client

HOST = "localhost"
PORT = 8089
SESSION_KEY = "<session_key>"

service = client.connect(
    host=HOST,
    port=PORT,
    token=SESSION_KEY
)
728x90
반응형
BIG