Требуемые условия завершения
Задание:
7. Настройте мониторинг с помощью NodeExporter, Prometheus и Grafana.
- 1. Создайте в домашней директории пользователя altlinux файл monitoring.yml для Docker Compose
- 1. Используйте контейнеры NodeExporter, Prometheus и Grafana для сбора, обработки и отображения метрик.
- 2. Настройте Dashboard в Grafana, в котором будет отображаться загрузка CPU, объём свободной оперативной памяти и места на диске.
- 3. Интерфейс Grafana должен быть доступен по внешнему адресу на порту 3000.
Выполнение:
- В домашней директории пользователя altlinux создаём файл monitoring.yml:
vim ~/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:
Данный файл представляет описание трёх контейнеров: grafana, prometheus и node-exporter:
-
- grafana - это то, что мы будем видеть в браузере, это визуализатор метрик;
- prometheus - это своего рода база данных в которой хранятся метрики;
- node-exporter - это контейнер, который будет собирать метрики и отдавать на порту 9100
Схема работы получается следующая: prometheus забирает метрики с node-exporter, а grafana забирает метрики с prometheus
- Выполняем сборку и запуск стека контейнеров описанных в файле monitoring.yml:
docker-compose -f monitoring.yml up -d
- Проверяем:
- Переходим в браузер http://<внешний IP адрес ControlVM>:3000
- для доступа в веб-интерфейс Grafana - стандартный логин и пароль "admin":
- Задаём новый пароль:
- Добавляем в Grafana - Prometheus:
- на главном меню нажимаем Add your first data source
- выбираем Prometheus:
- вводим адрес контейнера с Prometheus:
- Затем внизу на этой де странице нажимаем Save and Test:
-
- результат теста:
- Далее необходимо экспортировать grafana dashboard:
- grafana dashboard node_exporter
- переходим на сайт и нажимаем Download JSON
- grafana dashboard node_exporter
- Открываем скаченный файл и копируем его содержимое, затем переходим в наш веб-интерфейс grafana:
- нажимаем Create your first dashboard:
- Нажимаем Import dashboard:
- Вставляем скопированное содержимое из скаченного файла и нажимаем Load:
- Затем выбираем наш Prometheus и нажимаем Import:
- Результат:
На данном этапе пока ещё результатов нет, так как необходимо добавить node-exporter в prometheus.yml расположенный в volumes docker
- Открываем на редактирование файл по пути /var/lib/docker/volumes/altlinux_prom-configs/_data/prometheus.yml:
sudo vim /var/lib/docker/volumes/altlinux_prom-configs/_data/prometheus.yml
-
- добавляем в конец информацию о нашем контейнере с node-exporter:
- Далее переходим в веб-интерфейс prometheus по http://<внешний IP адрес ControlVM>:9090
- перейти в раздел Status -> Targets
- Должен появиться новый Targets который мы добавили в файле prometheus.yml
- Чтобы он появился необходимо перезапустить контейнеры:
docker-compose -f monitoring.yml restart
-
- результат:
- Возвращаемся в веб-интерфейс prometheus:
- Переходим в веб-интерфейс Grafana:
- наблюдаем необходимую по заданию информация - CPU, объём свободной оперативной памяти и места на диске:
Последнее изменение: четверг, 15 февраля 2024, 20:20