root 7d50c013af feat(deploy): add ROSI Collector centralized log collection stack
Add production-ready Docker Compose stack for centralized log collection
and monitoring, migrated from rsyslog-do-infra/central-intern.

ROSI (RSyslog Open System for Information) Collector provides:
- rsyslog log receiver with omhttp output to Loki
- Grafana Loki for log storage (30-day retention)
- Grafana with 5 pre-built dashboards
- Prometheus for metrics collection
- Traefik reverse proxy with automatic Let's Encrypt TLS
- TLS/mTLS syslog reception on port 6514 (RFC 5425)

TLS support features:
- Optional TLS profile activated via: docker compose --profile tls up -d
- Environment variable configuration (ENABLE_TLS, TLS_CA_FILE, etc.)
- Auth modes: anon, x509/certvalid, x509/name
- generate-ca.sh: Create CA and server certificates
- generate-client-cert.sh: Generate client certs with secure one-time
  download packages, migration handling, and syslog user ownership
- Automatic UFW firewall configuration for port 6514

Management scripts installed to /usr/local/bin:
- rosi-monitor: Stack health monitoring and debugging
- rosi-generate-ca: Generate CA and server TLS certificates
- rosi-generate-client-cert: Generate client TLS certificates
- prometheus-target: Manage node exporter scrape targets

Configuration persistence via XDG-compliant config files:
- System: /etc/rsyslog/rosi-collector.conf
- User: ~/.config/rsyslog/rosi-collector.conf

Files added:
- deploy/docker-compose/rosi-collector/ (31 files)
- doc/source/deployments/rosi_collector/ (7 RST pages)
- doc/source/deployments/index.rst
- doc/source/_static/rosi-architecture.svg
- doc/source/_static/*.png (dashboard screenshots)

Updated doc/source/index.rst to include deployments in toctree.

closes: https://github.com/rsyslog/rsyslog/issues/6323
2026-01-15 16:53:45 +01:00

63 lines
1.3 KiB
YAML

auth_enabled: false
server:
http_listen_port: 3100
log_level: warn
common:
path_prefix: /loki
replication_factor: 1
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2024-01-01
store: boltdb-shipper
object_store: filesystem
schema: v13
index:
prefix: loki_index_
period: 24h
storage_config:
boltdb_shipper:
active_index_directory: /loki/index
cache_location: /loki/cache
shared_store: filesystem
filesystem:
directory: /loki/chunks
limits_config:
retention_period: 720h
# Accept timestamps up to 2 hours in the future (for clock skew)
reject_old_samples: true
reject_old_samples_max_age: 720h
creation_grace_period: 2h
# Increase concurrent query limits to handle more panels
max_concurrent_tail_requests: 250
max_query_parallelism: 64
max_query_series: 1000
max_query_length: 721h
max_query_lookback: 721h
max_streams_per_user: 10000
max_line_size: 256KB
# Split queries by interval to distribute load
split_queries_by_interval: 24h
# Increase query timeout
query_timeout: 300s
chunk_store_config:
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: true
retention_period: 720h
compactor:
working_directory: /loki/compactor
shared_store: filesystem
retention_enabled: true
compaction_interval: 1h