Найти в Дзене
BecomeSysa

Docker для самых маленьких (часть 3)

Сегодня продолжим работать с Docker и развернем мониторинг с помощью NodeExporter, Prometheus и Grafana. Настроим контейнеры: nano monitoring.yml version: "3.9" services: grafana: container_name: Grafana image: grafana/grafana ports: - "3000:3000" volumes: - grafana-data:/var/lib/grafana - grafana-configs:/etc/grafana prometheus: container_name: Prometheus image: prom/prometheus ports: - "9090:9090" volumes: - prom-data:/prometheus - prom-configs:/etc/prometheus node-exporter: container_name: NodeExporter image: prom/node-exporter ports: - "9100:9100" volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - '--collector.filesystem.mount-points-exclude' - '^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|roo

Сегодня продолжим работать с Docker и развернем мониторинг с помощью NodeExporter, Prometheus и Grafana.

Настроим контейнеры:

nano monitoring.yml

version: "3.9"

services:

grafana:

container_name: Grafana

image: grafana/grafana

ports:

- "3000:3000"

volumes:

- grafana-data:/var/lib/grafana

- grafana-configs:/etc/grafana

prometheus:

container_name: Prometheus

image: prom/prometheus

ports:

- "9090:9090"

volumes:

- prom-data:/prometheus

- prom-configs:/etc/prometheus

node-exporter:

container_name: NodeExporter

image: prom/node-exporter

ports:

- "9100:9100"

volumes:

- /proc:/host/proc:ro

- /sys:/host/sys:ro

- /:/rootfs:ro

command:

- '--path.procfs=/host/proc'

- '--path.sysfs=/host/sys'

- '--collector.filesystem.mount-points-exclude'

- '^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)'

volumes:

grafana-data:

grafana-configs:

prom-data:

prom-configs:

Соберем контейнеры:

docker-compose -f monitoring.yml up -d

Переходим в браузер http://<внешний IP адрес>:3000

Стандартный логин и пароль admin

На главном меню нажимаем Add your first data source и выбираем Prometheus.

В поле Connection вводим адрес контейнера с Prometheus и сохраняем:

-2

Заходим на сайт и скачиваем JSON шаблон для dashboard.

-3

Копируем все из этого файла, переходим в Grafana, создаем Dashboard и нажимаем импорт:

-4

Вставляем код который скопировали ранее и загружаем.

В вкладке импорта выбираем Prometheus.

-5

Теперь отредактируем конфиг Prometheus чтобы он получал данные из NodeExporter.

sudo nano /var/lib/docker/volumes/altlinux_prom-configs/_data/prometheus.yml

Добавляем NodeExporter в конец файла:

-6

Перезапускаем контейнеры:

docker-compose -f monitoring.yml restart

И заходим на сайт Prometheus http://<внешний IP адрес>:9090

В вкладке Status > Targets должен появится NodeExporter

-7

Переходим в Grafana и открываем Dashboard:

-8

Основной источник: ссылка