Prometheus в Docker

Рассмотрим легковесный мониторинг Prometheus + Grafana на Docker контейнерах. У меня появилась необходимость мониторинга своих виртуальных машин расположенных на домашнем сервере Начнем с создания docker-compose.yml файла. В нем будет перечислены все необходимые контейнеры: Prometheus - система агрегации метрик Grafana - визуализатор данных, к ней будет подлюкчен наш Prometheus-сервер Node-exporter - контейнер считывающий данные с хост-системы и передающий в Prometheus Alertmanager - менеджер уведомлений, для оповещения о возникновении проблем и их решений Docker Compose version: '3' services: prometheus: container_name: prometheus hostname: prometheus image: prom/prometheus restart: unless-stopped user: root volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml - ./prometheus/alert_rules.yml:/etc/prometheus/alert_rules.yml - ./prometheus/prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.retention=200h' ports: - 9090:9090 grafana: container_name: grafana hostname: grafana image: grafana/grafana restart: unless-stopped user: root volumes: - ./grafana/grafana_datasources.yml:/etc/grafana/provisioning/datasources/all.yaml - ./grafana/grafana_config.ini:/etc/grafana/config.ini - ./grafana/grafana_data:/var/lib/grafana ports: - 3000:3000 node-exporter: image: prom/node-exporter container_name: node-exporter restart: unless-stopped volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - '--collector.filesystem.ignored-mount-points' - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)" #ports: #- 9100:9100 alertmanager: image: prom/alertmanager container_name: alertmanager restart: unless-stopped volumes: - ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml - ./alertmanager/templates:/etc/alertmanager/templates command: --config.file=/etc/alertmanager/alertmanager.yml --log.level=debug #ports: #- 9093:9093 Рассмотрим каждый контейнер и начнем с самого Prometheus ...

15/01/2024 · vikngr