readd promtail
All checks were successful
Deploy Containers / Prepare (push) Successful in 41s

This commit is contained in:
2025-12-28 16:46:46 -05:00
parent 21e8d6f6f9
commit b986c2a395
2 changed files with 99 additions and 15 deletions

View File

@@ -1,19 +1,4 @@
---
- name: Deploy Loki
include_role:
name: docker
vars:
name: monitoring_loki
volume_name: grafana-loki
image:
name: grafana/loki
tag: latest
volumes:
- "{{ data_dir }}/monitoring/loki/loki-config.yaml:/etc/loki/local-config.yaml"
- "grafana-loki:/loki"
networks:
- name: "monitoring"
- name: Deploy Prometheus
include_role:
name: docker
@@ -47,6 +32,42 @@
template:
src: templates/monitoring/loki.yaml.j2
dest: "{{ data_dir }}/monitoring/loki/loki-config.yaml"
- name: Create Promtail Configuration
template:
src: templates/monitoring/promtail.yaml.j2
dest: "{{ data_dir }}/monitoring/promtail/promtail-config.yaml"
- name: Deploy Promtail
include_role:
name: docker
vars:
name: monitoring_promtail
image:
name: grafana/promtail
tag: latest
networks:
- name: monitoring
command: -config.file=/etc/promtail/config.yaml
volumes:
- "{{ data_dir }}/monitoring/promtail/promtail-config.yaml"
- "/var/log:/var/log:ro"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "/var/lib/docker/containers:/var/lib/docker/containers:ro"
- name: Deploy Loki
include_role:
name: docker
vars:
name: monitoring_loki
volume_name: grafana-loki
image:
name: grafana/loki
tag: latest
volumes:
- "{{ data_dir }}/monitoring/loki/loki-config.yaml:/etc/loki/local-config.yaml"
- "grafana-loki:/loki"
networks:
- name: "monitoring"
- name: Deploy Node Exporter
include_role:

View File

@@ -0,0 +1,63 @@
server:
http_listen_port: 9080
positions:
filename: /tmp/positions.yaml
clients:
- url: http://monitoring_loki:3100/loki/api/v1/push
scrape_configs:
- job_name: docker
docker_sd_configs:
- host: unix:///var/run/docker.sock
refresh_interval: 5s
relabel_configs:
# Keep only running containers
- source_labels: ['__meta_docker_container_id']
target_label: container_id
# Container name (strips leading slash)
- source_labels: ['__meta_docker_container_name']
regex: '/(.+)'
target_label: container_name
# Compose project name
- source_labels: ['__meta_docker_container_label_com_docker_compose_project']
target_label: compose_project
# Compose service name
- source_labels: ['__meta_docker_container_label_com_docker_compose_service']
target_label: compose_service
# Image name
- source_labels: ['__meta_docker_container_image']
target_label: image
# Custom labels - grab any label starting with "logging."
# e.g. logging.env=production becomes env=production
- regex: '__meta_docker_container_label_logging_(.+)'
action: labelmap
replacement: '$1'
# Drop containers with logging=disabled label
- source_labels: ['__meta_docker_container_label_logging']
regex: 'disabled'
action: drop
pipeline_stages:
# Docker JSON log format parsing
- json:
expressions:
output: log
stream: stream
timestamp: time
# Use Docker's timestamp
- timestamp:
source: timestamp
format: RFC3339Nano
# Output just the log line
- output:
source: output