forked from netology-code/mnt-homeworks
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
139 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# Домашнее задание к занятию "10.03. Grafana" | ||
|
||
## Задание повышенной сложности | ||
|
||
**В части задания 1** не используйте директорию [help](./help) для сборки проекта, самостоятельно разверните grafana, где в | ||
роли источника данных будет выступать prometheus, а сборщиком данных node-exporter: | ||
- grafana | ||
- prometheus-server | ||
- prometheus node-exporter | ||
|
||
За дополнительными материалами, вы можете обратиться в официальную документацию grafana и prometheus. | ||
|
||
В решении к домашнему заданию приведите также все конфигурации/скрипты/манифесты, которые вы | ||
использовали в процессе решения задания. | ||
|
||
**В части задания 3** вы должны самостоятельно завести удобный для вас канал нотификации, например Telegram или Email | ||
и отправить туда тестовые события. | ||
|
||
В решении приведите скриншоты тестовых событий из каналов нотификаций. | ||
|
||
## Обязательные задания | ||
|
||
### Задание 1 | ||
Используя директорию [help](./help) внутри данного домашнего задания - запустите связку prometheus-grafana. | ||
|
||
Зайдите в веб-интерфейс графана, используя авторизационные данные, указанные в манифесте docker-compose. | ||
|
||
Подключите поднятый вами prometheus как источник данных. | ||
|
||
Решение домашнего задания - скриншот веб-интерфейса grafana со списком подключенных Datasource. | ||
|
||
## Задание 2 | ||
Изучите самостоятельно ресурсы: | ||
- [promql-for-humans](https://timber.io/blog/promql-for-humans/#cpu-usage-by-instance) | ||
- [understanding prometheus cpu metrics](https://www.robustperception.io/understanding-machine-cpu-usage) | ||
|
||
Создайте Dashboard и в ней создайте следующие Panels: | ||
- Утилизация CPU для nodeexporter (в процентах, 100-idle) | ||
- CPULA 1/5/15 | ||
- Количество свободной оперативной памяти | ||
- Количество места на файловой системе | ||
|
||
Для решения данного ДЗ приведите promql запросы для выдачи этих метрик, а также скриншот получившейся Dashboard. | ||
|
||
## Задание 3 | ||
Создайте для каждой Dashboard подходящее правило alert (можно обратиться к первой лекции в блоке "Мониторинг"). | ||
|
||
Для решения ДЗ - приведите скриншот вашей итоговой Dashboard. | ||
|
||
## Задание 4 | ||
Сохраните ваш Dashboard. | ||
|
||
Для этого перейдите в настройки Dashboard, выберите в боковом меню "JSON MODEL". | ||
|
||
Далее скопируйте отображаемое json-содержимое в отдельный файл и сохраните его. | ||
|
||
В решении задания - приведите листинг этого файла. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
version: '3.8' | ||
|
||
services: | ||
prometheus: | ||
image: prom/prometheus:v2.24.1 | ||
container_name: prometheus | ||
volumes: | ||
- ./prometheus:/etc/prometheus:Z | ||
command: | ||
- '--config.file=/etc/prometheus/prometheus.yml' | ||
- '--storage.tsdb.path=/prometheus' | ||
- '--web.console.libraries=/etc/prometheus/console_libraries' | ||
- '--web.console.templates=/etc/prometheus/consoles' | ||
- '--storage.tsdb.retention.time=200h' | ||
- '--web.enable-lifecycle' | ||
restart: unless-stopped | ||
depends_on: | ||
- nodeexporter | ||
expose: | ||
- 9090 | ||
networks: | ||
- monitor-net | ||
|
||
nodeexporter: | ||
image: prom/node-exporter:v1.0.1 | ||
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.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)' | ||
restart: unless-stopped | ||
expose: | ||
- 9100 | ||
networks: | ||
- monitor-net | ||
|
||
|
||
grafana: | ||
image: grafana/grafana:7.4.0 | ||
container_name: grafana | ||
volumes: | ||
- grafana_data:/var/lib/grafana | ||
environment: | ||
- GF_SECURITY_ADMIN_USER=admin | ||
- GF_SECURITY_ADMIN_PASSWORD=admin | ||
- GF_USERS_ALLOW_SIGN_UP=false | ||
restart: unless-stopped | ||
depends_on: | ||
- prometheus | ||
ports: | ||
- 3000:3000 | ||
expose: | ||
- 3000 | ||
networks: | ||
- monitor-net | ||
|
||
networks: | ||
monitor-net: | ||
driver: bridge | ||
|
||
volumes: | ||
prometheus_data: {} | ||
grafana_data: {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
global: | ||
scrape_interval: 15s | ||
evaluation_interval: 15s | ||
|
||
scrape_configs: | ||
- job_name: 'nodeexporter' | ||
scrape_interval: 5s | ||
static_configs: | ||
- targets: ['nodeexporter:9100'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters