Splunk 환경에서 로컬 LLM(Ollama)을 활용하여 보안 분석 자동화를 구성하는 전체 과정을 정리한 글이다.
📌 전체 구성 요약
- Ollama → Host 설치 (GPU 직접 사용)
- 모델 → Foundation-Sec-8B Q4 GGUF
- Splunk → AITK 연동
- Open WebUI → Docker (선택)
🔥 Phase 1 — Ollama + 모델 실행
1️⃣ Ollama 설치
dnf install -y zstd
# Ollama를 자동으로 설치하는 원라인 명령어
curl -fsSL https://ollama.com/install.sh | sh

✔ 설치 확인 및 서비스 등록
# 설치 확인
ollama --version
# 부팅 시 자동 실행 등록
systemctl enable ollama
# 서비스 실행 >> API 서버 역할 수행 (localhost:11434)
systemctl start ollama
# 상태 확인
systemctl status ollama
# 실행 파일 위치 확인 (/usr/local/bin/ollama)
which ollama
2️⃣ 테스트 모델 실행
ollama run llama3


한국말로 답해달라고 하면 답해준다.

현재 나의 GPU는 GTX1080 (8GB)
따라서 두 개 이상의 모델을 동시에 실행하기엔 VRAM이 부족해서 성능 저하 또는 OOM 발생 가능성이 존재함
그래서 테스트한 모델은 삭제해 주겠음
👉 정상 동작 확인 후 테스트 모델은 삭제 권장 (VRAM 절약)
ollama list
# 결과
NAME ID SIZE MODIFIED
llama3:latest 365c0bd3c000 4.7 GB 8 minutes ago
# 삭제
ollama rm llama3
3️⃣ 실제 사용할 모델 실행
ollama run hf.co/fdtn-ai/Foundation-Sec-8B-Q4_K_M-GGUF:Q4_K_M
모델 고르는 법
https://huggingface.co/fdtn-ai/Foundation-Sec-8B
fdtn-ai/Foundation-Sec-8B · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
huggingface.co
위 링크로 접속한 후, 우측 하단의 Collection including 클릭

Foundation-Sec-8B에서 파생된 모델 리스트를 확인할 수 있다.
원하는 모델을 골라 클릭!

우측 상단의 Use this model > Ollama


ollama run hf.co/fdtn-ai/Foundation-Sec-8B-Q4_K_M-GGUF:Q4_K_M


✅ 실시간 테스트
watch -n 1 nvidia-smi
👉 그 상태에서:
ollama run hf.co/fdtn-ai/Foundation-Sec-8B-Q4_K_M-GGUF:Q4_K_M
결과
Every 1.0s: nvidia-smi splunk-poc: Wed Apr 1 16:29:10 2026
Wed Apr 1 16:29:10 2026
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.288.01 Driver Version: 535.288.01 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce GTX 1080 Off | 00000000:82:00.0 Off | N/A |
| 47% 73C P2 177W / 180W | 5322MiB / 8192MiB | 93% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 505159 C /usr/local/bin/ollama 5320MiB |
+---------------------------------------------------------------------------------------+
1️⃣ GPU-Util 93%
👉 거의 풀로드
→ 실제 inference가 GPU에서 돌고 있음
2️⃣ Power 177W / 180W
👉 GPU 거의 최대 출력
→ 연산 제대로 태우는 상태
3️⃣ Perf: P2
👉 고성능 상태 진입
→ 정상적인 compute workload
4️⃣ VRAM 5.3GB 사용
👉 모델 올라가 있음 + 일부 여유 있음
→ q4 모델 잘 선택한 상태
🎯 결론
👉 지금 상태는:
- GPU 정상 인식 ✔
- Ollama GPU 연동 ✔
- 모델 GPU inference ✔
- 성능 상태 최상 ✔

💡 왜 Q4 모델을 선택했는가
- GTX 1080 (8GB) 환경
- Q8 / FP16 → OOM 위험
- Splunk와 같이 사용 → 안정성 중요
👉 결론: Q4 GGUF = 가장 현실적인 선택
🔥 Phase 2 — Splunk AITK 연동
1️⃣ 권한 설정
Splunk web 화면 > 설정 > 역할 : admin 역할에 mltk_admin 권한 부여
2️⃣ Connection 설정
- Provider: Ollama
- Endpoint: http://localhost:11434
- Token: 필요 없음
- Response Variability: 여기선 0.2
📌 Response Variability 기준
- 0.1 ~ 0.3 → 로그 요약 (추천)
- 0.4 ~ 0.7 → 분석 코멘트
- 0.8+ → 창의적 생성
: Set as default 로 설정하면 ai command 사용시 기본으로 사용하는 LLM으로 지정됨


Test Connection 클릭 후 Success 확인 후 저장 클릭

3️⃣ 연동 테스트
splunk search & reporting에서 ai command로 확인
# SPLUNK SPL
| makeresults
| ai prompt="log4j 취약점에 대해 간략히 설명 및 심각도 점수 표시. 한국어로 답변" provider=Ollama model=hf.co/fdtn-ai/Foundation-Sec-8B-Q4_K_M-GGUF:Q4_K_M
| table ai_result_1
👉 결과 나오면 성공


⚠ 성능 참고
- 응답 느림 (약 80초)
- GPU 사용량 높음
👉 이유: GTX1080 + 8B 모델 한계



🔥 Phase 3 — Open WebUI
1️⃣ Docker 설치
# Docker 패키지를 설치할 수 있는 “공식 저장소”를 등록
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# dnf config-manager : DNF 저장소 설정 관리 도구
# --add-repo : 새로운 패키지 저장소 추가
# URL : Docker 공식 yum repo
# Docker 패키지 설치
dnf install -y docker-ce docker-ce-cli containerd.io
# 서버 재부팅 시 Docker 자동으로 시작되도록 설정
systemctl enable docker
# 지금 바로 Docker 데몬 실행
systemctl start docker
# 정상 설치 확인
docker --version
# 권한 설정 (선택) 난 root로 설치해서 필요 없을 무
usermod -aG docker $USER
🔥설치되는 구성요소
1️⃣ docker-ce
👉 Docker 엔진 (핵심)
- 컨테이너 실행 담당
2️⃣ docker-ce-cli
👉 Docker 명령어 도구
- docker run, docker ps 등
3️⃣ containerd.io
👉 컨테이너 런타임
- 실제 컨테이너 생성/관리
- Docker 내부에서 사용
2️⃣ Open WebUI 실행
docker run -d \
--name open-webui \
-p 3000:8080 \
-v open-webui:/app/backend/data \
--add-host=host.docker.internal:host-gateway \
ghcr.io/open-webui/open-webui:main
접속:
http://서버IP:3000

3️⃣ Ollama 연결
화면 우측 상단 동그라미 클릭 > 관리자 패널 > 설정 > 연결 > Ollama API 연결 관리
WebUI에서 Ollama 주소를 직접 설정 (기본 설정으로 되어 있음)
4️⃣ 모델 확인
정상 시 자동 표시됨
hf.co/fdtn-ai/Foundation-Sec-8B-Q4_K_M-GGUF:Q4_K_M
5️⃣ 모델 안 보일 때 (트러블슈팅)
👉 바로 이거 실행:
docker exec -it open-webui curl http://host.docker.internal:11434/api/tags
# 결과
curl: (7) Failed to connect to host.docker.internal port 11434 after 0 ms: Couldn't connect to server
# 바인딩 확인
ss -tulnp | grep 11434
tcp LISTEN 0 4096 127.0.0.1:11434 0.0.0.0:* users:(("ollama",pid=368028,fd=3))
## >> Ollama를 0.0.0.0으로 열어줘야 함
# Ollama 서비스 수정
vi /etc/systemd/system/ollama.service
# ExecStart 수정
## 기존
ExecStart=/usr/local/bin/ollama serve
## 아래처럼 수정
ExecStart=/usr/bin/env OLLAMA_HOST=0.0.0.0 /usr/local/bin/ollama serve
# 서비스 재적용
systemctl daemon-reexec
systemctl daemon-reload
systemctl restart ollama
# 바인딩 다시 확인
ss -tulnp | grep 11434
## 결과
[root@splunk-poc ~]# ss -tulnp | grep 11434
tcp LISTEN 0 4096 *:11434 *:* users:(("ollama",pid=657045,fd=3))
# 모델 다시 확인
docker exec -it open-webui curl http://host.docker.internal:11434/api/tags
## 결과 >> 정상
{"models":[{"name":"hf.co/fdtn-ai/Foundation-Sec-8B-Q4_K_M-GGUF:Q4_K_M","model":"hf.co/fdtn-ai/Foundation-Sec-8B-Q4_K_M-GGUF:Q4_K_M","modified_at":"2026-04-01T16:15:24.8630286+09:00","size":4921462772,"digest":"3a7c33a0ba0d15b8aa1e3f7e768e6a92edc2d7b24b715e8beb16a42993724efd","details":{"parent_model":"","format":"gguf","family":"llama","families":["llama"],"parameter_size":"8.03B","quantization_level":"unknown"}}]}[root@splunk-poc ~]#
🎯 최종 결론
Ollama는 Host에서 단순하게, 나머지는 Docker로 분리한다
- Ollama → GPU 직접 사용
- Splunk → localhost 연동
- WebUI / DSDL → 컨테이너 분리
🚀 다음 단계 (예고)
지금까지는 LLM을 실행하고 Splunk와 연동하는 단계였습니다.
하지만 여기서 끝이 아닙니다. 진짜 핵심은 이제부터입니다.
🔥 다음 단계: DSDL 기반 자동화
- 자연어 → SPL 자동 생성
- Splunk REST API 호출
- LLM 분석 자동화
예를 들어:
"최근 로그인 실패 공격 보여줘"
👉 이 한 문장으로
- SPL 자동 생성
- 검색 실행
- 결과 분석
까지 자동으로 처리하는 구조를 만들게 됩니다.
📌 다음 글에서 다룰 내용
- DSDL 구조 설계
- Splunk REST API 연동
- Ollama API 파이프라인 구성
- 자연어 기반 보안 분석 자동화
'Splunk > Splunk Project' 카테고리의 다른 글
| Splunk Project | Ollama / AITK 모델 연동 시 발생하는 원인 박멸하기 (0) | 2026.04.14 |
|---|---|
| Splunk Project | Ollama / AITK 모델 연결 문제 해결 과정 정리 (0) | 2026.04.14 |
| Splunk Project | Splunk 서버에 Ollama 연동 시, 아키텍처 선택 이유 (0) | 2026.04.01 |
| Splunk | Foundation-Sec-8B 모델 구조와 선택 가이드 (Ollama 기반) (0) | 2026.04.01 |
| [Splunk ES] Splunk ES Lab을 위한 간단 OS 세팅 (0) | 2026.01.23 |