121 lines
2.7 KiB
TOML
121 lines
2.7 KiB
TOML
# LogWisp Multi-Stream Configuration
|
|
# Location: ~/.config/logwisp.toml
|
|
|
|
# Global monitor defaults
|
|
[monitor]
|
|
check_interval_ms = 100
|
|
|
|
# Stream 1: Application logs (public access)
|
|
[[streams]]
|
|
name = "app"
|
|
|
|
[streams.monitor]
|
|
targets = [
|
|
{ path = "/var/log/myapp", pattern = "*.log", is_file = false },
|
|
{ path = "/var/log/myapp/app.log", pattern = "", is_file = true }
|
|
]
|
|
|
|
[streams.httpserver]
|
|
enabled = true
|
|
port = 8080
|
|
buffer_size = 2000
|
|
stream_path = "/stream"
|
|
status_path = "/status"
|
|
|
|
[streams.httpserver.heartbeat]
|
|
enabled = true
|
|
interval_seconds = 30
|
|
format = "comment"
|
|
|
|
# Stream 2: System logs (authenticated)
|
|
[[streams]]
|
|
name = "system"
|
|
|
|
[streams.monitor]
|
|
check_interval_ms = 50 # More frequent checks
|
|
targets = [
|
|
{ path = "/var/log", pattern = "syslog*", is_file = false },
|
|
{ path = "/var/log/auth.log", pattern = "", is_file = true }
|
|
]
|
|
|
|
[streams.httpserver]
|
|
enabled = true
|
|
port = 8443
|
|
buffer_size = 5000
|
|
stream_path = "/logs"
|
|
status_path = "/health"
|
|
|
|
# SSL placeholder
|
|
[streams.httpserver.ssl]
|
|
enabled = true
|
|
cert_file = "/etc/logwisp/certs/server.crt"
|
|
key_file = "/etc/logwisp/certs/server.key"
|
|
min_version = "TLS1.2"
|
|
|
|
# Authentication placeholder
|
|
[streams.auth]
|
|
type = "basic"
|
|
|
|
[streams.auth.basic_auth]
|
|
realm = "System Logs"
|
|
users = [
|
|
{ username = "admin", password_hash = "$2y$10$..." }
|
|
]
|
|
ip_whitelist = ["10.0.0.0/8", "192.168.0.0/16"]
|
|
|
|
# TCP server also available
|
|
[streams.tcpserver]
|
|
enabled = true
|
|
port = 9443
|
|
buffer_size = 5000
|
|
|
|
[streams.tcpserver.heartbeat]
|
|
enabled = false
|
|
|
|
# Stream 3: Debug logs (high-volume, no heartbeat)
|
|
[[streams]]
|
|
name = "debug"
|
|
|
|
[streams.monitor]
|
|
targets = [
|
|
{ path = "./debug", pattern = "*.debug", is_file = false }
|
|
]
|
|
|
|
[streams.httpserver]
|
|
enabled = true
|
|
port = 8082
|
|
buffer_size = 10000
|
|
stream_path = "/stream"
|
|
status_path = "/status"
|
|
|
|
[streams.httpserver.heartbeat]
|
|
enabled = false # Disable for high-volume
|
|
|
|
# Rate limiting placeholder
|
|
[streams.httpserver.rate_limit]
|
|
enabled = true
|
|
requests_per_second = 100.0
|
|
burst_size = 1000
|
|
limit_by = "ip"
|
|
|
|
# Usage Examples:
|
|
#
|
|
# 1. Standard mode (each stream on its own port):
|
|
# ./logwisp
|
|
# - App logs: http://localhost:8080/stream
|
|
# - System logs: https://localhost:8443/logs (with auth)
|
|
# - Debug logs: http://localhost:8082/stream
|
|
#
|
|
# 2. Router mode (shared port with path routing):
|
|
# ./logwisp --router
|
|
# - App logs: http://localhost:8080/app/stream
|
|
# - System logs: http://localhost:8080/system/logs
|
|
# - Debug logs: http://localhost:8080/debug/stream
|
|
# - Global status: http://localhost:8080/status
|
|
#
|
|
# 3. Override config file:
|
|
# ./logwisp --config /etc/logwisp/production.toml
|
|
#
|
|
# 4. Environment variables:
|
|
# LOGWISP_MONITOR_CHECK_INTERVAL_MS=50
|
|
# LOGWISP_STREAMS_0_HTTPSERVER_PORT=8090 |