Техническое задание для инженера мониторинга
Часть 1: Развертывание стека мониторинга
Задача: Самостоятельно развернуть полноценный стек мониторинга на своей машине или виртуальной машине.
Требования:
- Развернуть через Docker Compose следующие компоненты:
- Prometheus
- Grafana
- Alertmanager
- Node Exporter (для мониторинга самой системы)
- Предоставить:
docker-compose.ymlфайл- Все конфигурационные файлы (
prometheus.yml,alertmanager.yml) - Скриншоты работающих контейнеров (
docker ps)
Часть 2: Настройка мониторинга и алертинга
Задача: Настроить мониторинг тестового окружения с правилами алертинга.
Требования:
- В Prometheus настроить:
- Scrape-конфиги для Node Exporter
- 3 правила алертинга (rules):
- High CPU usage (>80% в течение 2 минут)
- High Memory usage (>85%)
- Disk space critical (<10% свободного места)
- В Alertmanager настроить:
- Отправку уведомлений в Telegram
- Группировку алертов по severity
- Предоставить:
- Файлы конфигураций с комментариями
- Скриншот интерфейса Prometheus с видимыми targets (UP статус)
- Скриншот страницы Alerts в Prometheus
Часть 3: Создание дашборда в Grafana
Задача: Создать информативный дашборд для дежурного инженера.
Требования:
Создать дашборд с минимум 6 панелями:
- Общее состояние системы - статус всех targets (up/down)
- CPU Usage - график использования CPU за последний час
- Memory Usage - график использования памяти
- Disk Space - текущее свободное место на диске
Предоставить:
- Экспортированный JSON дашборда
- Скриншоты дашборда с данными
Часть 4: Симуляция и диагностика инцидента
Задача: Провести диагностику и задокументировать инцидент.
Сценарий:
- Искусственно создать инцидент (на выбор):
- Запустить скрипт, создающий нагрузку на CPU
- Заполнить диск файлами
- Действия:
- Зафиксировать момент возникновения алерта (скриншот)
- Провести диагностику:
- Проверить метрики в Prometheus
- Определить root cause
- Устранить инцидент
- Зафиксировать восстановление сервиса
- Предоставить:
- Хронологию инцидента в формате таблицы:
Время | Событие | Действие | Результат - Скриншоты: алерт → логи → метрики → восстановление
- Краткий постмортем (3-5 предложений): что произошло, как обнаружили, как устранили, как предотвратить
- Хронологию инцидента в формате таблицы:
Часть 5: Автоматизация и документация
Задача: Создать runbook и простой скрипт.
Требования:
- Написать Runbook для одного из алертов (на выбор) в формате Markdown:
- Описание проблемы
- Как проверить (команды для диагностики)
- Шаги по устранению
- Контакты для эскалации
- Примеры команд должны быть готовы к copy-paste
- Написать Bash-скрипт
healthcheck.sh, который:- Проверяет доступность всех сервисов (curl к Prometheus, Grafana, Alertmanager)
- Проверяет, что все Docker-контейнеры запущены
- Выводит статус в читаемом формате (OK/FAIL для каждого компонента)
- Возвращает exit code 0 если все ОК, 1 если есть проблемы
Предоставить:
- Файл
runbook.md - Файл
healthcheck.sh - Скриншот выполнения скрипта
Формат сдачи результатов
Создать Git-репозиторий (GitHub/GitLab) со структурой:
monitoring-test/
├── README.md (краткое описание и инструкция по запуску)
├── docker-compose.yml
├── configs/
│ ├── prometheus.yml
│ ├── alert.rules.yml
│ └── alertmanager.yml
├── grafana/
│ └── dashboard.json
├── scripts/
│ └── healthcheck.sh
├── docs/
│ ├── runbook.md
│ └── incident-report.md
└── screenshots/
├── 01-containers.png
├── 02-prometheus-targets.png
├── 03-alerts.png
├── 04-grafana-dashboard.png
├── 05-incident-alert.png
├── 06-incident-logs.png
└── 07-healthcheck.png
Прислать ссылку на репозиторий.