feat: Add Prometheus Unix exporter to Alloy for host metrics collection, update Docker Compose volumes, and enable Keepalived daemon mode.

This commit is contained in:
2025-11-24 22:18:51 +01:00
parent 8dfcef5eb2
commit 17fa8eb056
4 changed files with 62 additions and 16 deletions

View File

@@ -55,3 +55,23 @@ loki.write "loki" {
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"
}
}

View File

@@ -18,7 +18,7 @@ services:
ports:
- "3306:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-Ase@2025}"]
test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-Ase@2025}" ]
interval: 10s
timeout: 5s
retries: 3
@@ -29,7 +29,7 @@ services:
build: .
container_name: orchestrator-1-load
restart: unless-stopped
command: ["python", "-m", "src.load_orchestrator"]
command: [ "python", "-m", "src.load_orchestrator" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
ORCHESTRATOR_ID: 1
@@ -46,7 +46,7 @@ services:
build: .
container_name: orchestrator-2-elab
restart: unless-stopped
command: ["python", "-m", "src.elab_orchestrator"]
command: [ "python", "-m", "src.elab_orchestrator" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
ORCHESTRATOR_ID: 2
@@ -63,7 +63,7 @@ services:
build: .
container_name: orchestrator-3-send
restart: unless-stopped
command: ["python", "-m", "src.send_orchestrator"]
command: [ "python", "-m", "src.send_orchestrator" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
ORCHESTRATOR_ID: 3
@@ -80,7 +80,7 @@ services:
build: .
container_name: ftp-server-1
restart: unless-stopped
command: ["python", "-m", "src.ftp_csv_receiver"]
command: [ "python", "-m", "src.ftp_csv_receiver" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
FTP_INSTANCE_ID: 1
@@ -107,7 +107,7 @@ services:
build: .
container_name: sftp-server-1
restart: unless-stopped
command: ["python", "-m", "src.ftp_csv_receiver"]
command: [ "python", "-m", "src.ftp_csv_receiver" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
FTP_INSTANCE_ID: 11
@@ -153,7 +153,7 @@ services:
network_mode: host
volumes:
- ./keepalived-master.conf:/etc/keepalived/keepalived.conf:ro
command: sh -c "apk add --no-cache keepalived && keepalived -n -l -f /etc/keepalived/keepalived.conf"
command: sh -c "apk add --no-cache keepalived && keepalived -n -D -l -f /etc/keepalived/keepalived.conf"
alloy:
image: grafana/alloy:latest
container_name: alloy
@@ -165,6 +165,9 @@ services:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/host/root:ro
command:
- run
- --server.http.listen-addr=0.0.0.0:12345

View File

@@ -55,3 +55,23 @@ loki.write "loki" {
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"
}
}

View File

@@ -3,7 +3,7 @@ services:
build: .
container_name: orchestrator-4-load
restart: unless-stopped
command: ["python", "-m", "src.load_orchestrator"]
command: [ "python", "-m", "src.load_orchestrator" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
ORCHESTRATOR_ID: 4
@@ -20,7 +20,7 @@ services:
build: .
container_name: orchestrator-5-elab
restart: unless-stopped
command: ["python", "-m", "src.elab_orchestrator"]
command: [ "python", "-m", "src.elab_orchestrator" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
ORCHESTRATOR_ID: 5
@@ -37,7 +37,7 @@ services:
build: .
container_name: orchestrator-6-send
restart: unless-stopped
command: ["python", "-m", "src.send_orchestrator"]
command: [ "python", "-m", "src.send_orchestrator" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
ORCHESTRATOR_ID: 6
@@ -54,7 +54,7 @@ services:
build: .
container_name: ftp-server-2
restart: unless-stopped
command: ["python", "-m", "src.ftp_csv_receiver"]
command: [ "python", "-m", "src.ftp_csv_receiver" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
FTP_INSTANCE_ID: 2
@@ -81,7 +81,7 @@ services:
build: .
container_name: sftp-server-2
restart: unless-stopped
command: ["python", "-m", "src.ftp_csv_receiver"]
command: [ "python", "-m", "src.ftp_csv_receiver" ]
environment:
DB_HOST: ${VIP:-192.168.1.210}
FTP_INSTANCE_ID: 12
@@ -127,7 +127,7 @@ services:
network_mode: host
volumes:
- ./keepalived-backup.conf:/etc/keepalived/keepalived.conf:ro
command: sh -c "apk add --no-cache keepalived && keepalived -n -l -f /etc/keepalived/keepalived.conf"
command: sh -c "apk add --no-cache keepalived && keepalived -n -D -l -f /etc/keepalived/keepalived.conf"
alloy:
image: grafana/alloy:latest
container_name: alloy
@@ -139,6 +139,9 @@ services:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/host/root:ro
command:
- run
- --server.http.listen-addr=0.0.0.0:12345