Self-hosting. Cadvisor

Сadvisor программа для сбора данных о контейнерах виртуализации (в основном докер но поддерживает и альтернативные варианты) которая может легко интегрироваться с Prometheus. Программа предоставляет полноценный веб интерфейс для просмотра всех данных мониторинга.

[!danger]
Разработкой занимается Google и образ размещен на их серверах. Из за санкций возможно потребуется доступ к сайту gcr.io через VPN.

Репозиторий: GitHub - google/cadvisor: Analyzes resource usage and performance characteristics of running containers.

Пример развертывания docker compose:

type: docker-compose
tags:
aliases:
program:

  • nodeexporter
  • cadvisor
    modified: 2024-10-12T01:29:14+03:00
    dg-publish: true
    МОС: “[[Docker Compose]]”

Стек предназначен для запуска на удаленной машине для сбора данных мониторинга о хост системе и докер контейнерах:

services:
  nodeexporter:
    image: prom/node-exporter:latest
    container_name: nodeexporter
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - --path.procfs=/host/proc
      - --path.rootfs=/rootfs
      - --path.sysfs=/host/sys
      - --collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)
    restart: unless-stopped
    network_mode: host
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    container_name: cadvisor
    privileged: true
    devices:
      - /dev/kmsg:/dev/kmsg
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /cgroup:/cgroup:ro
    restart: unless-stopped
    command:
	  - '-port=8090'
    network_mode: host
networks: {}

[!bug] Внимание
Сadvisor запускается по умолчанию на порту 8080 который может быть занят в системе, для работы его может быть необходимо переопределить. В режиме bridge с указанием ports: - 8090:8080 или добавить блок изменения порта command: - '-port=8090'

Настройка Prometheus

Добавить в конфигурационный файл Prometheus новую задачу сбора данных:

  - job_name: 'nodeexporter'
    scrape_interval: 5s
    static_configs:
      - targets: ['monitoring.local:9100', 'gateway.local:9100', 'main.local:9100', 'nextcloud.local:9100', 'media.local:9100', 'immich.local:9100', 'armbian.local:9100']

  - job_name: 'cadvisor'
    scrape_interval: 5s
    static_configs:
      - targets: ['monitoring.local:8090', 'gateway.local:8090', 'main.local:8090', 'nextcloud.local:8090', 'media.local:8090', 'immich.local:8090', 'armbian.local:8090']

Мониторинг в Grafana

Для визуализации (при развертывании стека с [[Self-hosting. Nodeexpoeter|Node exporter]]) можно использовать панели Grafana:


[!urls]- Упоминания:

  • [[Self-hosting программы]]
  • [[Self-hosting. Grafana|Grafana]]
  • [[Self-hosting. Nodeexpoeter|node exporter]]
  • [[Сервер Main]]
  • [[Сервер Media]]
  • [[Сервер Immich]]
  • [[Сервер Nextcloud]]
  • [[Сервер Monitoring]]
  • [[Сервер Gateway]]
  • [[Сервер Armbian]]

[!description]- Примечание
Примечание:: Сбор данных мониторинга docker контейнеров