From c23c1912cc54416257c3a8528c811e67785c018d Mon Sep 17 00:00:00 2001 From: Manuel Raimann Date: Sun, 20 Oct 2024 20:15:38 +0200 Subject: [PATCH] Add loki log-monitoring --- monitoring/docker-compose.yaml | 28 +++++++++++----- monitoring/grafana/datasource.yaml | 7 +++- monitoring/loki.yaml | 52 ++++++++++++++++++++++++++++++ monitoring/promtail.yaml | 18 +++++++++++ 4 files changed, 96 insertions(+), 9 deletions(-) create mode 100644 monitoring/loki.yaml create mode 100644 monitoring/promtail.yaml diff --git a/monitoring/docker-compose.yaml b/monitoring/docker-compose.yaml index 046bbbb..aae0938 100644 --- a/monitoring/docker-compose.yaml +++ b/monitoring/docker-compose.yaml @@ -37,7 +37,7 @@ services: prometheus: condition: service_healthy networks: - - monitoring + - default - webserver node-exporter: @@ -55,8 +55,6 @@ services: depends_on: prometheus: condition: service_healthy - networks: - - monitoring prometheus: image: prom/prometheus @@ -68,8 +66,6 @@ services: interval: 10s timeout: 3s retries: 3 - networks: - - monitoring watchtower: image: containrrr/watchtower @@ -83,8 +79,6 @@ services: - /var/run/docker.sock:/var/run/docker.sock - /config.json:/config.json:ro command: --interval 60 --cleanup --rolling-restart - networks: - - monitoring autoheal: image: willfarrell/autoheal @@ -95,11 +89,29 @@ services: environment: AUTOHEAL_CONTAINER_LABEL: all + loki: + image: grafana/loki + restart: always + command: -config.file=/etc/loki/loki.yaml + volumes: + - ./loki.yaml:/etc/loki/loki.yaml + + promtail: + image: grafana/promtail + restart: always + volumes: + - ./promtail.yaml:/etc/promtail/docker-config.yaml + - /var/lib/docker/containers:/var/lib/docker/containers:ro + - /var/run/docker.sock:/var/run/docker.sock + command: -config.file=/etc/promtail/docker-config.yaml + depends_on: + - loki + volumes: grafana-data: networks: - monitoring: + default: name: monitoring webserver: external: true diff --git a/monitoring/grafana/datasource.yaml b/monitoring/grafana/datasource.yaml index 69cb206..e5e81d0 100644 --- a/monitoring/grafana/datasource.yaml +++ b/monitoring/grafana/datasource.yaml @@ -7,4 +7,9 @@ datasources: uid: main-prometheus isDefault: true access: proxy - editable: true + editable: false +- name: Loki + type: loki + url: http://loki:3100 + uid: main-loki + editable: false diff --git a/monitoring/loki.yaml b/monitoring/loki.yaml new file mode 100644 index 0000000..9c4d49a --- /dev/null +++ b/monitoring/loki.yaml @@ -0,0 +1,52 @@ +auth_enabled: false + +server: + http_listen_port: 3100 + grpc_listen_port: 9096 + +common: + instance_addr: 127.0.0.1 + path_prefix: /tmp/loki + storage: + filesystem: + chunks_directory: /tmp/loki/chunks + rules_directory: /tmp/loki/rules + replication_factor: 1 + ring: + kvstore: + store: inmemory + +frontend: + max_outstanding_per_tenant: 2048 + +pattern_ingester: + enabled: true + +limits_config: + max_global_streams_per_user: 0 + ingestion_rate_mb: 50000 + ingestion_burst_size_mb: 50000 + volume_enabled: true + +query_range: + results_cache: + cache: + embedded_cache: + enabled: true + max_size_mb: 100 + +schema_config: + configs: + - from: 2020-10-24 + store: tsdb + object_store: filesystem + schema: v13 + index: + prefix: index_ + period: 24h + +ruler: + alertmanager_url: http://localhost:9093 + +analytics: + reporting_enabled: false diff --git a/monitoring/promtail.yaml b/monitoring/promtail.yaml new file mode 100644 index 0000000..4438c8d --- /dev/null +++ b/monitoring/promtail.yaml @@ -0,0 +1,18 @@ +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: +- job_name: docker + static_configs: + - targets: + - localhost + labels: + job: docker_logs + __path__: /var/lib/docker/containers/*/*-json.log