splunk_local/docker-compose.yml

158 lines
3.9 KiB
YAML

services:
splunk:
image: splunk/splunk:latest
container_name: splunk_local
environment:
- SPLUNK_START_ARGS=--accept-license
- SPLUNK_PASSWORD=admin123
- SPLUNK_HEC_TOKEN=00000000-0000-0000-0000-000000000000
ports:
- "8000:8000" # Splunk Web UI
- "8088:8088" # HTTP Event Collector (HEC)
- "9997:9997" # Splunk2Splunk
- "8089:8089" # Splunk Management Port
- "514:514/udp" # Syslog
volumes:
- splunk_etc:/opt/splunk/etc
- splunk_var:/opt/splunk/var
- ./config:/tmp/defaults
- ./logs:/opt/splunk/logs
restart: unless-stopped
# Optional: Universal Forwarder for testing log forwarding
splunk_forwarder:
image: splunk/universalforwarder:latest
container_name: splunk_forwarder
environment:
- SPLUNK_START_ARGS=--accept-license
- SPLUNK_PASSWORD=admin123
- SPLUNK_FORWARD_SERVER=splunk:9997
volumes:
- ./logs:/var/log/app
- splunk_uf_etc:/opt/splunkforwarder/etc
- splunk_uf_var:/opt/splunkforwarder/var
depends_on:
- splunk
restart: unless-stopped
profiles:
- forwarder
# Log Generators for testing various log formats
log_generator_web:
image: python:3.11-slim
container_name: log_generator_web
working_dir: /app
command: python web_logs.py
volumes:
- ./generators:/app
- ./logs:/var/log/app
restart: unless-stopped
profiles:
- generators
log_generator_syslog:
image: python:3.11-slim
container_name: log_generator_syslog
working_dir: /app
command: python syslog_generator.py
volumes:
- ./generators:/app
- ./logs:/var/log/app
restart: unless-stopped
profiles:
- generators
log_generator_json:
image: python:3.11-slim
container_name: log_generator_json
working_dir: /app
command: python json_logs.py
volumes:
- ./generators:/app
- ./logs:/var/log/app
restart: unless-stopped
profiles:
- generators
log_generator_hec:
image: python:3.11-slim
container_name: log_generator_hec
working_dir: /app
command: sh -c "pip install requests && python hec_sender.py"
volumes:
- ./generators:/app
environment:
- SPLUNK_HEC_URL=http://splunk:8088/services/collector
- SPLUNK_HEC_TOKEN=00000000-0000-0000-0000-000000000000
depends_on:
- splunk
restart: unless-stopped
profiles:
- generators
# Security-focused log generators
log_generator_windows:
image: python:3.11-slim
container_name: log_generator_windows
working_dir: /app
command: python windows_events.py
volumes:
- ./generators:/app
- ./logs:/var/log/app
restart: unless-stopped
profiles:
- security
log_generator_firewall:
image: python:3.11-slim
container_name: log_generator_firewall
working_dir: /app
command: python firewall_logs.py
volumes:
- ./generators:/app
- ./logs:/var/log/app
restart: unless-stopped
profiles:
- security
log_generator_dns:
image: python:3.11-slim
container_name: log_generator_dns
working_dir: /app
command: python dns_logs.py
volumes:
- ./generators:/app
- ./logs:/var/log/app
restart: unless-stopped
profiles:
- security
log_generator_auth:
image: python:3.11-slim
container_name: log_generator_auth
working_dir: /app
command: python auth_logs.py
volumes:
- ./generators:/app
- ./logs:/var/log/app
restart: unless-stopped
profiles:
- security
log_generator_cloud:
image: python:3.11-slim
container_name: log_generator_cloud
working_dir: /app
command: python cloud_logs.py
volumes:
- ./generators:/app
- ./logs:/var/log/app
restart: unless-stopped
profiles:
- security
volumes:
splunk_etc:
splunk_var:
splunk_uf_etc:
splunk_uf_var: