Skip to the content.

Техническое задание для инженера мониторинга

Часть 1: Развертывание стека мониторинга

Задача: Самостоятельно развернуть полноценный стек мониторинга на своей машине или виртуальной машине.

Требования:

  1. Развернуть через Docker Compose следующие компоненты:
    • Prometheus
    • Grafana
    • Alertmanager
    • Node Exporter (для мониторинга самой системы)
  2. Предоставить:
    • docker-compose.yml файл
    • Все конфигурационные файлы (prometheus.yml, alertmanager.yml)
    • Скриншоты работающих контейнеров (docker ps)

Часть 2: Настройка мониторинга и алертинга

Задача: Настроить мониторинг тестового окружения с правилами алертинга.

Требования:

  1. В Prometheus настроить:
    • Scrape-конфиги для Node Exporter
    • 3 правила алертинга (rules):
      • High CPU usage (>80% в течение 2 минут)
      • High Memory usage (>85%)
      • Disk space critical (<10% свободного места)
  2. В Alertmanager настроить:
    • Отправку уведомлений в Telegram
    • Группировку алертов по severity
  3. Предоставить:
    • Файлы конфигураций с комментариями
    • Скриншот интерфейса Prometheus с видимыми targets (UP статус)
    • Скриншот страницы Alerts в Prometheus

Часть 3: Создание дашборда в Grafana

Задача: Создать информативный дашборд для дежурного инженера.

Требования:

Создать дашборд с минимум 6 панелями:

  1. Общее состояние системы - статус всех targets (up/down)
  2. CPU Usage - график использования CPU за последний час
  3. Memory Usage - график использования памяти
  4. Disk Space - текущее свободное место на диске

Предоставить:


Часть 4: Симуляция и диагностика инцидента

Задача: Провести диагностику и задокументировать инцидент.

Сценарий:

  1. Искусственно создать инцидент (на выбор):
    • Запустить скрипт, создающий нагрузку на CPU
    • Заполнить диск файлами
  2. Действия:
    • Зафиксировать момент возникновения алерта (скриншот)
    • Провести диагностику:
      • Проверить метрики в Prometheus
      • Определить root cause
    • Устранить инцидент
    • Зафиксировать восстановление сервиса
  3. Предоставить:
    • Хронологию инцидента в формате таблицы:
      Время | Событие | Действие | Результат
      
    • Скриншоты: алерт → логи → метрики → восстановление
    • Краткий постмортем (3-5 предложений): что произошло, как обнаружили, как устранили, как предотвратить

Часть 5: Автоматизация и документация

Задача: Создать runbook и простой скрипт.

Требования:

  1. Написать Runbook для одного из алертов (на выбор) в формате Markdown:
    • Описание проблемы
    • Как проверить (команды для диагностики)
    • Шаги по устранению
    • Контакты для эскалации
    • Примеры команд должны быть готовы к copy-paste
  2. Написать Bash-скрипт healthcheck.sh, который:
    • Проверяет доступность всех сервисов (curl к Prometheus, Grafana, Alertmanager)
    • Проверяет, что все Docker-контейнеры запущены
    • Выводит статус в читаемом формате (OK/FAIL для каждого компонента)
    • Возвращает exit code 0 если все ОК, 1 если есть проблемы

Предоставить:


Формат сдачи результатов

Создать 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

Прислать ссылку на репозиторий.