SC24EP14 Централизованный сбор логов с Grafana Loki - Разработка проектов со Spring
Вставка
- Опубліковано 9 лют 2025
- Логгирование является важной составляющей процесса мониторинга сервисов. Однако стандартный вывод логов в консоль или файл неудобен тем, что при необходимости анализа логов нужно подключаться к серверу, на котором запущен сервис. Хорошим решением является централизованное хранение логов, и в данном ролике для этого будет использован Grafana Loki, а так же будет продемонстрирована настройка Logback для интеграции с Grafana Loki.
В цикле роликов "Разработка проектов со Spring" я рассказываю на простых примерах о процессе разработки веб-приложений и REST-сервисов на языке программирования Java с использованием экосистемы Spring. Данный цикл охватывает разработку классических и реактивных проектов, вопросы их сопровождения, такие как документация и мониторинг, адаптацию их к облачной инфраструктуре и процесс их развёртывания в Docker и Kubernetes.
Репозиторий проекта: github.com/ale...
#java #spring #logging #loki #grafana #howto
Мои ресурсы:
Сайт: alexkosarev.name
Канал на UA-cam: / @shurik_codes
Канал в Telegram: t.me/+TZCuO38v...
Группа для обсуждений в Telegram: t.me/+UFAkw187...
Паблик в VK: shurik....
Канал в Дзене: dzen.ru/shurik...
Канал на Rutube: rutube.ru/chan...
Страница в Boosty: boosty.to/akos...
Поддержать проект:
Доны в VK: donut/s...
Донаты в Boosty: boosty.to/akos...
Через Tinkoff: www.tinkoff.ru...
Большое спасибо за видео!
Спасибо за твои ролики, очень помогают
ваш канал просто находка, спасибо огромное
Привет! Спасибо, нужная информация. Один Из старых проектов собираюсь переписать на spring, когда обучение закончится. Вовремя.
Спасибо, полезно
А вопрос такой, больше теоретический, а почему на проде лучше делать в json формате? Я вообще не особо понимаю сейчас смысл elk стека, т.е он по факту нужен только чтобы у нас был полнотекстовый поиск и возможность выгрузить логи за какие-то старые даты получается
Чтобы на стороне хранилища логов, будь то Grafana Loki или Elastic Search/OpenSearch, лог-сообщение было не простой строкой, а JSON-объектом с сопутствующими оптимизациями для индексации и других манипуляций
@@shurik_codes аа, спасибо!)
А почему адрес не локалхост, а 173.17.01? Не понял из предыдущего видео
Потому что localhost - это локальный адрес, и для контейнера localhost - это локальный адрес самого контейнера, а не хост-системы. А нам необходимо обеспечить доступ приложения в контейнере к приложению, запущенному в другом контейнере, либо в хост-системе. 172.17.0.1 - это адрес хост-системы, приложения, запускаемые в хост-системе доступны по этому адресу, так же как и приложения в контейнерах, порты которых пробрасываются при помощи флага -p при запуске контейнера.
@@shurik_codes понял, спасибо
Я кажется docker -internal для этого прописывал
Очень полезные видео, спасибо:) Есть небольшой вопросик про докер (тот, что selmag-metrics), собственно выдает такую ошибку, хотя конфигурация точно такая же как у вас, только в некоторых названиях отличия:
warn VictoriaMetrics/lib/promscrape/scrapework.go:387 cannot scrape target "172.17.0.1:8085/actuator/prometheus" ({application="test_admin_service",instance="172.17.0.1:8085",job="test_admin_service"}) 1 out of 1 times during -promscrape.suppressScrapeErrorsDelay=0s; the last error: error when scraping "172.17.0.1:8085/actuator/prometheus": dial tcp 172.17.0.1:8085: connect: connection refused
Буду благодарен за наводку
Запущен ли сервис на порте 8085, имеет ли хост система ip-адрес 172.17.0.1?