Add complete centralized logging solution for all Docker containers. New services: - Loki: Log aggregation backend (loki.fig.systems) - Promtail: Log collection agent - Grafana: Log visualization (logs.fig.systems) Features: - Automatic Docker container discovery - 30-day log retention (configurable) - Powerful LogQL querying - Pre-configured Grafana datasource - Comprehensive documentation Resources: - ~400-700MB RAM for 20 containers - Automatic labeling by container/project/service - SSO protection for Loki API Documentation: - Complete setup guide - Query examples and patterns - Troubleshooting steps - Best practices
70 lines
1.8 KiB
YAML
70 lines
1.8 KiB
YAML
server:
|
|
http_listen_port: 9080
|
|
grpc_listen_port: 0
|
|
|
|
positions:
|
|
filename: /tmp/positions.yaml
|
|
|
|
clients:
|
|
- url: http://loki:3100/loki/api/v1/push
|
|
|
|
scrape_configs:
|
|
# Docker containers logs
|
|
- job_name: docker
|
|
docker_sd_configs:
|
|
- host: unix:///var/run/docker.sock
|
|
refresh_interval: 5s
|
|
filters:
|
|
- name: label
|
|
values: ["logging=promtail"]
|
|
|
|
relabel_configs:
|
|
# Use container name as job
|
|
- source_labels: ['__meta_docker_container_name']
|
|
regex: '/(.*)'
|
|
target_label: 'container'
|
|
|
|
# Use image name
|
|
- source_labels: ['__meta_docker_container_image']
|
|
target_label: 'image'
|
|
|
|
# Use container ID
|
|
- source_labels: ['__meta_docker_container_id']
|
|
target_label: 'container_id'
|
|
|
|
# Add all docker labels as labels
|
|
- action: labelmap
|
|
regex: __meta_docker_container_label_(.+)
|
|
|
|
# All Docker containers (fallback)
|
|
- job_name: docker_all
|
|
docker_sd_configs:
|
|
- host: unix:///var/run/docker.sock
|
|
refresh_interval: 5s
|
|
|
|
relabel_configs:
|
|
- source_labels: ['__meta_docker_container_name']
|
|
regex: '/(.*)'
|
|
target_label: 'container'
|
|
|
|
- source_labels: ['__meta_docker_container_image']
|
|
target_label: 'image'
|
|
|
|
- source_labels: ['__meta_docker_container_log_stream']
|
|
target_label: 'stream'
|
|
|
|
# Extract compose project and service
|
|
- source_labels: ['__meta_docker_container_label_com_docker_compose_project']
|
|
target_label: 'compose_project'
|
|
|
|
- source_labels: ['__meta_docker_container_label_com_docker_compose_service']
|
|
target_label: 'compose_service'
|
|
|
|
# System logs
|
|
- job_name: system
|
|
static_configs:
|
|
- targets:
|
|
- localhost
|
|
labels:
|
|
job: varlogs
|
|
__path__: /var/log/*log
|