monitoring setup

This commit is contained in:
2026-03-22 12:04:37 +01:00
parent cf57bc163f
commit c563e9de5f
3 changed files with 95 additions and 0 deletions

6
monitoring/.env.example Normal file
View File

@@ -0,0 +1,6 @@
# Grafana Cloud credentials (find these at grafana.com -> My Account -> Grafana Cloud)
GRAFANA_CLOUD_LOKI_URL=https://logs-prod-XXX.grafana.net/loki/api/v1/push
GRAFANA_CLOUD_LOKI_USER=123456
GRAFANA_CLOUD_PROMETHEUS_URL=https://prometheus-prod-XXX.grafana.net/api/prom/push
GRAFANA_CLOUD_PROMETHEUS_USER=123456
GRAFANA_CLOUD_API_KEY=glc_CHANGE_ME

66
monitoring/config.alloy Normal file
View File

@@ -0,0 +1,66 @@
// ============================================================
// Docker log collection -> Grafana Cloud Loki
// ============================================================
discovery.docker "containers" {
host = "unix:///var/run/docker.sock"
}
discovery.relabel "containers" {
targets = discovery.docker.containers.targets
rule {
source_labels = ["__meta_docker_container_name"]
target_label = "container"
}
rule {
source_labels = ["__meta_docker_container_name"]
target_label = "job"
}
}
loki.source.docker "containers" {
host = "unix:///var/run/docker.sock"
targets = discovery.relabel.containers.output
forward_to = [loki.write.grafana_cloud.receiver]
}
loki.write "grafana_cloud" {
endpoint {
url = env("GRAFANA_CLOUD_LOKI_URL")
basic_auth {
username = env("GRAFANA_CLOUD_LOKI_USER")
password = env("GRAFANA_CLOUD_API_KEY")
}
}
}
// ============================================================
// Node exporter metrics -> Grafana Cloud Prometheus
// ============================================================
prometheus.exporter.unix "node" {
procfs_path = "/host/proc"
sysfs_path = "/host/sys"
rootfs_path = "/host/root"
}
prometheus.scrape "node" {
targets = prometheus.exporter.unix.node.targets
forward_to = [prometheus.remote_write.grafana_cloud.receiver]
scrape_interval = "60s"
}
prometheus.remote_write "grafana_cloud" {
endpoint {
url = env("GRAFANA_CLOUD_PROMETHEUS_URL")
basic_auth {
username = env("GRAFANA_CLOUD_PROMETHEUS_USER")
password = env("GRAFANA_CLOUD_API_KEY")
}
}
}

View File

@@ -0,0 +1,23 @@
services:
alloy:
image: grafana/alloy:latest
container_name: alloy
restart: unless-stopped
env_file: .env
volumes:
- ./config.alloy:/etc/alloy/config.alloy:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/host/root:ro
command:
- run
- /etc/alloy/config.alloy
- --storage.path=/var/lib/alloy/data
pid: host
networks:
- monitoring
networks:
monitoring:
driver: bridge