Files
netology-devops/src/homework/10-monitoring/10.3
2022-10-05 14:54:33 +07:00
..
2022-10-05 14:54:33 +07:00

Выполнение домашнего задания по теме "10.3. Grafana"

Q/A

Задание 1

Cамостоятельно разверните grafana, где в роли источника данных будет выступать prometheus, а сборщиком данных node-exporter:

  • grafana
  • prometheus-server
  • prometheus node-exporter

Запустите связку prometheus-grafana. Зайдите в веб-интерфейс Grafana, используя авторизационные данные, указанные в манифесте docker-compose. Подключите поднятый вами prometheus как источник данных. Решение домашнего задания - скриншот веб-интерфейса grafana со списком подключенных Datasource. В решении к домашнему заданию приведите также все конфигурации/скрипты/манифесты, которые вы использовали в процессе решения задания.

docker-compose и остальная конфигурация расположена в директории stack. При поднятии контейнеров в grafana автоматически создаётся data-source к prometheus, а так же dashboard по мониторингу контейнера prometheus.

grafana_datasource

Задание 2

Изучите самостоятельно ресурсы:

Создайте Dashboard и в ней создайте следующие Panels:

  • Утилизация CPU для nodeexporter (в процентах, 100-idle)
  • CPULA 1/5/15
  • Количество свободной оперативной памяти
  • Количество места на файловой системе

Для решения данного ДЗ приведите promql запросы для выдачи этих метрик, а также скриншот получившейся Dashboard.

Метрики и текст запросов для них

  • Утилизация CPU для nodeexporter (в процентах, 100-idle)
100 * (1 - avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[1m])))
  • CPULA 1/5/15
avg(node_load1{})
avg(node_load5{})
avg(node_load15{})
  • Количество свободной оперативной памяти
node_memory_MemTotal_bytes - node_memory_Active_bytes
  • Количество места на файловой системе
node_filesystem_avail_bytes{mountpoint="/"}

grafana_node_exporter_dashboard

Задание 3

Создайте для каждой Dashboard подходящее правило alert (можно обратиться к первой лекции в блоке "Мониторинг"). Дополнительно нужно завести удобный для вас канал нотификации, например Telegram или Email и отправить туда тестовые события.

Для решения ДЗ - приведите скриншот вашей итоговой Dashboard и скриншоты тестовых событий из каналов нотификаций.

Dashboard с настроенными alerts:

grafana_node_exporter_dashboard_alerts

Тестовая нотификация в discord:

grafana_discord_test_alert

Задание 4

Сохраните ваш Dashboard.

Для этого перейдите в настройки Dashboard, выберите в боковом меню "JSON MODEL".

Далее скопируйте отображаемое json-содержимое в отдельный файл и сохраните его.

В решении задания - приведите листинг этого файла.

Файл с dashboard: stack/grafana/dashboard_backup.json