added loki to our monitoring stack and updated the docs

This commit is contained in:
rezayaghobi-dev
2026-07-26 10:38:26 +03:30
parent 36ad36848b
commit 1c5997246a
6 changed files with 120 additions and 11 deletions

View File

@@ -0,0 +1,40 @@
// Discover all running Docker containers
discovery.docker "containers" {
host = "unix:///var/run/docker.sock"
}
// Extract a clean "container" label from the container name
discovery.relabel "containers" {
targets = discovery.docker.containers.targets
rule {
source_labels = ["__meta_docker_container_name"]
regex = "/(.*)"
target_label = "container"
}
rule {
source_labels = ["__meta_docker_container_name"]
regex = "/(.*)"
target_label = "container_name"
}
rule {
target_label = "instance"
replacement = constants.hostname
}
}
// Tail logs from every discovered container
loki.source.docker "containers" {
host = "unix:///var/run/docker.sock"
targets = discovery.relabel.containers.output
forward_to = [loki.write.default.receiver]
}
// Ship to the local Loki instance
loki.write "default" {
endpoint {
url = "http://loki:3100/loki/api/v1/push"
}
}

View File

@@ -16,6 +16,7 @@ services:
networks:
- monitoring
grafana:
image: grafana/grafana:latest
container_name: grafana
@@ -24,6 +25,7 @@ services:
- "3000:3000"
volumes:
- ./grafana/data:/var/lib/grafana
- ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources:ro
networks:
- monitoring
@@ -54,10 +56,42 @@ services:
networks:
- monitoring
loki:
image: grafana/loki:3.7.3
container_name: loki
restart: unless-stopped
command: -config.file=/etc/loki/local-config.yaml
ports:
- "3100:3100"
volumes:
- ./data/loki:/loki
mem_limit: 400m
cpus: 1
networks:
- monitoring
alloy:
image: grafana/alloy:v1.17.1
container_name: alloy
restart: unless-stopped
command:
- "run"
- "--server.http.listen-addr=0.0.0.0:12345"
- "--storage.path=/var/lib/alloy/data"
- "/etc/alloy/config.alloy"
ports:
- "12345:12345"
volumes:
- ./alloy/config.alloy:/etc/alloy/config.alloy:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/alloy:/var/lib/alloy/data
mem_limit: 300m
cpus: 0.5
depends_on:
- loki
networks:
- monitoring
networks:
monitoring:
driver: bridge

View File

@@ -0,0 +1,9 @@
apiVersion: 1
datasources:
- name: Loki
type: loki
access: proxy
url: http://loki:3100
isDefault: false
editable: false