split docker-compose into core and observability stacks; add ntfy, alertmanager, blackbox exporter, and otel-collector services; configure prometheus alerting pipeline
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
perses:
|
||||
image: persesdev/perses:latest
|
||||
volumes:
|
||||
- persesdata:/perses
|
||||
networks:
|
||||
- prometheus_network
|
||||
- wireguard_network
|
||||
|
||||
blackbox_exporter:
|
||||
image: prom/blackbox-exporter:v0.28.0
|
||||
configs:
|
||||
- source: blackbox_config
|
||||
target: /etc/blackbox_exporter/config.yml
|
||||
networks:
|
||||
- prometheus_network
|
||||
|
||||
alertmanager:
|
||||
image: prom/alertmanager:v0.33.1
|
||||
configs:
|
||||
- source: alertmanager_config
|
||||
target: /etc/alertmanager/alertmanager.yml
|
||||
volumes:
|
||||
- alertmanagerdata:/alertmanager
|
||||
networks:
|
||||
- prometheus_network
|
||||
|
||||
ntfy:
|
||||
image: binwiederhier/ntfy
|
||||
command:
|
||||
- serve
|
||||
environment:
|
||||
TZ: Europe/Paris
|
||||
volumes:
|
||||
- ntfydata:/var/lib/ntfy
|
||||
networks:
|
||||
- prometheus_network
|
||||
- reverse_network
|
||||
|
||||
otel-collector:
|
||||
image: otel/opentelemetry-collector-contrib:0.156.0
|
||||
configs:
|
||||
- source: otel_collector_config
|
||||
target: /etc/otelcol-contrib/config.yaml
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 256M
|
||||
networks:
|
||||
- prometheus_network
|
||||
|
||||
prometheus:
|
||||
image: prom/prometheus:v3.9.1
|
||||
command:
|
||||
- --config.file=/etc/prometheus/prometheus.yml
|
||||
- --storage.tsdb.path=/prometheus
|
||||
- --web.enable-remote-write-receiver
|
||||
configs:
|
||||
- source: prometheus_config
|
||||
target: /etc/prometheus/prometheus.yml
|
||||
- source: prometheus_rules_config
|
||||
target: /etc/prometheus/alert.rules.yml
|
||||
volumes:
|
||||
- prometheusdata:/prometheus
|
||||
networks:
|
||||
- prometheus_network
|
||||
- wireguard_network
|
||||
|
||||
cadvisor:
|
||||
image: gcr.io/cadvisor/cadvisor:latest
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /var/run:/var/run:rw
|
||||
- /sys:/sys:ro
|
||||
- /var/lib/docker/:/var/lib/docker:ro
|
||||
networks:
|
||||
- prometheus_network
|
||||
|
||||
configs:
|
||||
prometheus_config:
|
||||
name: prometheus_config_${DATETIME}
|
||||
file: ./prometheus/prometheus.yml
|
||||
blackbox_config:
|
||||
name: blackbox_config_${DATETIME}
|
||||
file: ./blackbox/blackbox.yml
|
||||
alertmanager_config:
|
||||
name: alertmanager_config_${DATETIME}
|
||||
file: ./prometheus/alertmanager/alertmanager.yml
|
||||
prometheus_rules_config:
|
||||
name: prometheus_rules_config_${DATETIME}
|
||||
file: ./prometheus/alert.rules.yml
|
||||
otel_collector_config:
|
||||
name: otel_collector_config_${DATETIME}
|
||||
file: ./otel-collector/config.yaml
|
||||
|
||||
volumes:
|
||||
persesdata:
|
||||
prometheusdata:
|
||||
ntfydata:
|
||||
alertmanagerdata:
|
||||
|
||||
networks:
|
||||
reverse_network:
|
||||
external: true
|
||||
wireguard_network:
|
||||
external: true
|
||||
prometheus_network:
|
||||
external: true
|
||||
Reference in New Issue
Block a user