// Grafana Alloy configuration for VM2 // Replaces Promtail for log collection and forwarding to Loki // Discover Docker containers with the logging=promtail label discovery.docker "containers" { host = "unix:///var/run/docker.sock" refresh_interval = "5s" filter { name = "label" values = ["logging=alloy"] } } // Scrape logs from discovered containers loki.source.docker "docker_logs" { host = "unix:///var/run/docker.sock" targets = discovery.docker.containers.targets forward_to = [loki.write.loki.receiver] relabel_rules = loki.relabel.docker.rules } // Relabel configuration to extract useful labels from Docker metadata loki.relabel "docker" { forward_to = [] rule { source_labels = ["__meta_docker_container_name"] regex = "/(.*)" target_label = "container" } rule { source_labels = ["__meta_docker_container_label_logging_jobname"] target_label = "job" } // Add external labels rule { target_label = "environment" replacement = "production" } rule { target_label = "cluster" replacement = "myapp-cluster" } } // Write logs to Loki loki.write "loki" { endpoint { url = "http://192.168.1.200:3100/loki/api/v1/push" } } // Collect system metrics prometheus.exporter.unix "host" { procfs_path = "/host/proc" sysfs_path = "/host/sys" rootfs_path = "/host/root" } // Scrape metrics from the unix exporter prometheus.scrape "host" { targets = prometheus.exporter.unix.host.targets forward_to = [prometheus.remote_write.mimir.receiver] } // Write metrics to Mimir/Prometheus prometheus.remote_write "mimir" { endpoint { url = "http://192.168.1.200:9090/api/v1/write" } }