Skip to content

MikhailRyzhkin/monitoring_logging

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

monitoring_logging

Спринт 3

ЗАДАЧА

1. Настройка сборки логов.

Представьте, что вы разработчик, и вам нужно оперативно получать информацию с ошибками работы приложения.
Выберите инструмент, с помощью которого такой функционал можно предоставить. 
Нужно собирать логи работы пода приложения. Хранить это всё можно либо в самом кластере Kubernetes, либо на srv-сервере.

2. Выбор метрик для мониторинга.

Так, теперь творческий этап. Допустим, наше приложение имеет для нас некоторую важность. 
Мы бы хотели знать, когда пользователь не может на него попасть — время отклика, сертификат, статус код и так далее. 
Выберите метрики и инструмент, с помощью которого будем отслеживать его состояние.
Также мы хотели бы знать, когда место на srv-сервере подходит к концу.
Важно! Весь мониторинг должен находиться на srv-сервере, чтобы в случае падения кластера мы все равно могли узнать об этом.

3. Настройка дашборда.

Ко всему прочему хотелось бы и наблюдать за метриками в разрезе времени. 
Для этого мы можем использовать Grafana и Zabbix — что больше понравилось.

4. Алертинг.

А теперь добавим уведомления в наш любимый мессенджер, точнее в ваш любимый мессенджер. 
Обязательно протестируйте отправку уведомлений. Попробуйте «убить» приложение самостоятельно, и засеките время от инцидента до получения уведомления. 
Если время адекватное, то можно считать, что вы справились с этим проектом!

РЕШЕНИЕ

  • Я отказался от loghouse по причине отсутствия развития проекта. Я отказался от стэка ELK по причине его "тяжеловестности" и ограничений для РФ
  • Для сборки логов будем использовать Loki: https://artifacthub.io/packages/helm/grafana/loki?modal=install

Loki-архитектура

  • Loki хорошо вписывается и интегрируется в предполагаемый стэк мониторинга prometheus. Логи и мониторинг будет в одной grafana.
  • Добавляем репозиторий Loki и перечитываем репозитории:
helm repo add bitnami https://charts.bitnami.com/bitnami -n logging-monitoring && helm repo update

Устанавливаем Loki в кластер k8s из helm chart:

helm install --namespace logging-monitoring loki bitnami/grafana-loki --set global.dnsService=coredns --set spec.type=NodePort --set loki.auth_enabled=false

logging-loki-0

Prometheus архитектура

  • Так как, по условию задачи, весь мониторинг должен находиться на srv-сервере, а не в кластере k8s, то наиболее простой вариант развернуть кластер мониторинга в docker на этом сервере srv вне кластера k8s. Стэк мониторинга - Grafana\Prometheus\Blackbox\Node Exporter\Alertmanager\Loki
  • В каталоге prometheus_stack описываем через docker compose весь наш стэк мониторинга
  • Находясь в каталоге prometheus_stack с файлом docker-compose.yml запускаем развёртывание стэка:
docker compose up -d 
  • При удачном развёртывании стэка увидем контейнеры компонентов:
docker ps -a 

docker-prometheus-1

  • Подключаем как сервер srv, так и кластер k8s к визуализации метрик и логирования в единой Grafana:

Prometheus - Data sources

Dashboards

Dashboards-1

Dashboards-2

  • Смотрим логи нашего приложения в нэймспейсе diplom из этой же самой grafana:

logging-loki

  • Адрес grafana для просмотра логов и визуализированных метрик:
http://51.250.80.225:3000/
  • В docker-compouse.yaml файле на сервере srv вносим свои данные телеграмм, перезапускаем контейнер и моделируем срабатывание аллерта

токены телеги

telegramm-allert

Оповещение в телеграм

About

DevOps diplom skillfactory

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published