Skip to content

lamjob1993/linux-monitoring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Добро пожаловать на практикум по сопровождению ПО

Описание практикума / Всего будет несколько репозиториев

  • Каждый репозиторий представляет из себя: теорию, практику и задачник - которые разложены по соответствующим директориям
  • Глобально мы поднимем бэкенд на основе самописного банковского Java-приложения (несколько микросервисов в разрезе Kubernetes) с завязанной на него базой данных
  • Замониторим бэкенд системой на основе Grafana + Prometheus + основные экспортеры
  • Настроим фронтенд: Grafana GUI + PromQL в разрезе Linux (Terminal Debian)
  • Будем использовать Git на постоянной основе
  • Будем создавать и изменять виртуальные машины с помощью Terraform
  • Научимся практикам автоматизации и развертывания приложений с помощью Ansible
  • Научимся быстро и качественно деплоить Backend с помощью Docker Compose
  • Научимся практикам CI/CD
  • Поднимем кластер Kubernetes и замониторим его
  • В финале у вас будет личный репозиторий на GitHub, который пойдет в портфолио в качестве pet-проекта
  • Пример схемы бэкенда после прохождения финального репозитория Kubernetes / Схемы постоянно обновляются, указаны приблизительные макеты

О теории и практике в заданиях

Задания написаны с техническим уклоном в мониторинг и в Linux и таким образом, что о тех инструментах, которые в них используются спрашивают в 90% случаев на собеседованиях по части Linux у джунов:

  • DevOps/SRE
  • Инженеров по сопровождению ПО
  • Инженеров по мониторингу
  • Администраторов Linux

  • Этот учебный репозиторий охватывает на 90% рутину вышеперечисленных должностей в базе
  • Задания носят больше лабораторный характер, и я это понимаю, но они позволят наработать нужную практику для успешного прохождения собеседования. Где-то нужно будет подумать над заданиями, а где-то я даю подсказки
  • Теория и практика идут последовательно и сложены в отдельных папках к кажому инструменту и ПО, всё доступно и понятно
  • Сразу все задания со всеми пунктами через ChatGPT (DeepSeek) не прогоняем, иначе не пройдем собеседование
  • Пользуемся DeepSeek только по точечным запросам, к примеру, как работает команда на выдачу прав, потому что это сильно быстрее, чем поиск в Google
  • Делаем пункты строго по очереди в соответствии с содержанием и не перепрыгиваем

Окружение мониторинга

Backend

  • Мы развернем бэкенд мониторинга в разрезе Unit-сервисов + поднимем балансир в виде Nginx
  • Изучим сложные векторные схемы в разрезе мониторинга
  • Поднимем Prometheus (познакомимся с моделями Pull и Push) + Node Exporter + Alertmanager + All Exporters со всего репозитория + автоматизируем процессы установки на Bash (а в дальнейшем научимся работать с Ansible)
  • Напишем кастомные экспортеры (Bash) и разработаем свои самостоятельно (Golang)
  • Разработаем базу данных PostgreSQL и развернем её, замониторив через Postgres Exporter
  • Разберемся, как работает интерфейс API на практике, написав банковское приложение на Java, сняв с него метрики
  • Горизантально смасштабируем Prometheus с помощью Prometheus Federation и Mimir
  • Напишем (выпустим) тестовый блок сертификатов и замониторим их через Blackbox Exporter, а также пропингуем серверы
  • Замониторим процессы с помощью Process Exporter
  • И так далее по основным экспортерам
  • Плавно перейдем от виртуализации и Unit-сервисов на контейнеризацию в разрезе Docker и поднимем сложный бэк с помощью Docker Compose
  • Далее Terraform, Ansible, CI/CD и в финале Kubernetes

Frontend

  • Скачаем, подгрузим, нарисуем и разработаем дашборды в формате JSON для Grafana на основе метрик
    • Познакомимся с Data Source и с переменными в Grafana
  • Изучим основы Prometheus и PromQL (базовый язык работы с БД Prometheus)
    • Будем применять на практике четыре золотых сигнала и изучим типы метрик
    • Выучим регулярные выражения
    • Применим различные агрегации и функции
    • Будем использовать сложные переменные и строить кастомные дашборды
  • В финале сделаем дипломную работу на основе мониторинга микросервисного Java-приложения в кластере Kubernetes

Вывод

  • В настройку сети сильно углубляться не будем, так как у вас на работе будут готовые машины, на которых уже развёрнут софт и сетка уже давно настроена
  • Всё же мы сразу идем на должность продвинутого Juniour+ специалиста, где по сетям особо гонять не будут, но это не значит, что не нужно знать основы
  • Скорее всего на должности инженера по сопровождению-мониторингу вас будет ждать условный кейс по миграции системы мониторинга, либо миграции какого угодно софта с уже настроенных серверов CentOS на голые Ubuntu Server и т.д, где сетку настраивать не нужно

Пожелания

Желаю удачи! Вы на правильном пути!

About

linux-monitoring

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published