monitoring setup
This commit is contained in:
6
monitoring/.env.example
Normal file
6
monitoring/.env.example
Normal 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
66
monitoring/config.alloy
Normal 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")
|
||||
}
|
||||
}
|
||||
}
|
||||
23
monitoring/docker-compose.yml
Normal file
23
monitoring/docker-compose.yml
Normal 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
|
||||
Reference in New Issue
Block a user