78 lines
1.7 KiB
Plaintext
78 lines
1.7 KiB
Plaintext
// Grafana Alloy configuration for VM1
|
|
// 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"
|
|
}
|
|
}
|