- Этот репозиторий представляет собой на 75% задачник + необходимую теорию на 25%
- Глобально мы поднимем бэкенд мониторинга на основе Prometheus и самописного банковского приложения
- Настроим фронтенд: Grafana GUI + PromQL
- И всё это разрезе Linux (Terminal Debian)
- Открываем директорию
introduction_monitoring→README.md - Открываем директорию
linux_install→README.md→Список пакетов.md→Установка пакетов.md - Настраиваем доступ по
SSHвGitHubпо инструкции - Открываем директорию
prometheus→README.md→beginning→tasks_1.md→tasks_2.md→tasks_3.md - Открываем директорию
grafana→README.md→tasks_1.md - Открываем директорию
node-exporter→README.md→tasks_1.md - Открываем директорию
pushgateway→README.md→tasks_1.md - Открываем директорию
prometheus-federate→README.md→tasks_1.md - Открываем директорию
alertmanager→README.md→tasks_1.md - Открываем директорию
process-exporter→README.md→tasks_1.md - Открываем директорию
blackbox-exporter→README.md→tasks_1.md - Открываем директорию
custom-exporter→README.md→tasks_1.md→tasks_2.md - Открываем директорию
postgresql→README.md→tasks_1.md - Открываем директорию
postgres_exporter→README.md→tasks_1.md - Открываем директорию
mimir→README.md→tasks_1.md→tasks_2.md - Открываем директорию
nginx→README.md→tasks_1.md - Открываем директорию
nginx-exporter→README.md→tasks_1.md - Открываем директорию
grafana→README.md→tasks_2.md - После исполнения всех пунктов:
- У вас должна быть написана полная Bash-автоматизация на деплой бэкенда мониторинга
- Должны быть построены дашборды для всех экспортеров, включая глобальный дашборд с ссылками на них
- Далее нужно будет создать от своего лица публичный репозиторий в GitHub на тему мониторинга, который будет служить для вас, как портфолио для работодателя (так называемый Pet-проект)
Задания написаны с техническим уклоном в мониторинг и в Linux и таким образом, что о тех инструментах, которые в них используются спрашивают в 90% случаев на собеседованиях по части Linux у джунов:
DevOps/SREИнженеров по сопровождению ПОИнженеров по мониторингуАдминистраторов Linux
- Этот учебный репозиторий охватывает на 90% рутину вышеперечисленных должностей в базе
- Задания носят больше лабораторный характер, и я это понимаю, но они позволят наработать нужную практику для успешного прохождения собеседования. Где-то нужно будет подумать над заданиями, а где-то я даю подсказки
- Сразу всё задание со всеми пунктами через ChatGPT (Qwen) не прогоняем, иначе не пройдем собеседование
- Пользуемся Qwen только по точечным запросам, к примеру,
как работает команда на выдачу прав, потому что это сильно быстрее, чем поиск в Google - Делаем пункты строго по очереди и не перепрыгиваем
- Мы будем работать с
Git, научимся делать форк этого репозитория к себе вGitHubдля последующего клона локально на ваш ПК:- Этот репозиторий специально сделан таким образом, чтобы сделать форк для вашего будущего проекта мониторинга
- Настроим доступ по SSH до удаленного репозитория (который форкнули), иначе не получится пушить изменения на удаленный сервер
- После любых успешных изменений в ваших конфиг-файлах и в коде будем пушить их в форкнутый репозиторий, то есть будем учиться сразу, как взрослые на практике, постепенно вплетая ежедневный прогресс в
GitHub - Такая система контроля версий, как
GitHubили её аналоги в видеBitbucketиGitLabбудут использоваться на любом IT-проекте, и с этой системой надо уметь работать на практике обязательно
- Мы развернем бэкенд мониторинга в разрезе Unit-сервисов + поднимем балансир в виде Nginx
- Изучим сложные векторные схемы в разрезе мониторинга
- Поднимем Prometheus (познакомимся с моделями Pull и Push) + Node Exporter + Alertmanager + All Exporters со всего репозитория + автоматизируем процессы установки на Bash (а в дальнейшем научимся работать с Ansible)
- Напишем кастомные экспортеры (Bash) и разработаем свои самостоятельно (Golang)
- Разработаем базу данных PostgreSQL и развернем её, замониторив через Postgres Exporter
- Разберемся, как работает интерфейс API на практике, написав банковское приложение на Python, сняв с него метрики
- Горизантально смасштабируем Prometheus с помощью Prometheus Federate и Mimir
- Напишем (выпустим) тестовый блок сертификатов и замониторим их через Blackbox Exporter, а также пропингуем серверы
- Замониторим процессы с помощью Process Exporter
- Плавно перейдем от виртуализации и Unit-сервисов на контейнеризацию в разрезе Docker и поднимем наиболее сложный бэк с помощью Docker Compose
- CI/CD # (в работе)
- Kubernetes/K8S # (в работе)
- Скачаем, подгрузим, нарисуем и разработаем дашборды в формате
JSONдляGrafanaна основе метрик- Познакомимся с Data Source и с переменными в Grafana
- Изучим основы
PrometheusиPromQL(базовый язык работы с БДPrometheus)- Будем применять на практике четыре золотых сигнала и изучим типы метрик
- Выучим регулярные выражения
- А также применим различные агрегации и функции
- В настройку сети и iptables сильно углубляться не будем, так как у вас на работе будут готовые машины, на которых уже развёрнут софт и сетка уже давно растроена
- Мы идем на Juniour-Juniour+ специалиста, где по сетям особо гонять не будут, но это не значит, что не нужно знать основы, которые я даю на курсе
- Скорее всего на должности инженера по сопровождению-мониторингу вас будет ждать условный кейс по миграции системы мониторинга, либо миграции какого угодно софта с уже настроенных серверов CentOS на голые Ubuntu Server и т.д
Желаю удачи! Вы на правильном пути!