Это сообщение в блоге совместно написано Жюльеном Дю Буа (Microsoft) и Чарли Кляйном (Logz.io), чтобы пользователи Spring Boot могли лучше понять преимущества использования инструмента приема и анализа журналов, например Logz.io .
Как работает ведение журнала в классическом приложении Spring Boot
Приложения Spring Boot обычно используют Logback ( официальная документация ) или Log4J 2 ( официальная документация ) для управления журналами приложений.
Эта конфигурация обычно изменяется в зависимости от использования каждого проекта или компании, и это обычная (и хорошая) практика следовать главе двенадцатифакторного приложения о ведении журнала и выводить все на консоль.
Продвинутые пользователи, использующие, например JHipster , как правило, использует некоторую настроенную версию Logback, которая обычно настраивается тремя различными способами:
- Используя
src/main/resources/logback-spring.xmlфайл. Например, вот конфигурация JHipster по умолчанию: https://github.com/jhipster/jhipster-sample-app/blob/master/src/main/resources/logback-spring.xml . - Используя файл конфигурации Spring Boot в разделе
ведение журнала. *ключи свойств. Это задокументировано на https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html и вы также можете найти пример в файле конфигурации загрузки Hipsters по умолчанию Spring для разработки: https://github.com/jhipster/jhipster-sample-app/blob/master/src/main/resources/config/application-dev.yml . - Во время выполнения, поскольку вход в систему может быть программно перенастроен. Например, это то, что пользователи JHipster делают со своей пользовательской конфигурацией
LoggingConfiguration.javaфайл или когда они используют свой экран управления журналами.
Настройка журналов – это здорово, но как только они отправляются на консоль, начинается по-настоящему интересная работа: вам нужна система для их объединения и анализа! В этой статье мы будем использовать Logz.io чтобы понять, что необходимо настроить, и, самое главное, какую выгоду мы можем ожидать от такого решения.
Отправка журналов в Logz.io
Первый шаг для отправки ваших журналов в Logz.io добавляет ли Logz.io зависимость от вашего Maven pom.xml файл:
io.logz.logback logzio-logback-appender 1.0.22
Затем вам нужно настроить свой src/main/resources/logback-spring.xml файл для использования этой библиотеки:
https:// :8071 java-application INFO
Хороший способ убедиться, что ваши журналы попали на платформу, – это открыть вкладку “Живой хвост” в Logz.io платформа. После нажатия кнопки воспроизведения вы должны увидеть поток журналов, отображаемых в приложении. Если вы этого не сделаете, посетите Logz.io доставка журнала страница устранения неполадок .
Если вам нужна дополнительная информация, вы должны следовать этому более подробному учебному пособию (написанному в соавторстве с Жюльеном Дю Буа) по адресу https://docs.microsoft.com/en-us/azure/java/java-get-started-with-logzio .
Анализ журналов с помощью Logz.io
После отправки ваших журналов в Logz.io , начинается самое интересное.
Logz.io предоставляет стек ELK и Grafana – самые популярные решения для мониторинга с открытым исходным кодом в мире – в качестве полностью управляемой службы, позволяющей инженерам использовать известные им открытые исходные коды без необходимости создавать или поддерживать масштабируемые конвейеры ведения журналов или показателей самостоятельно. Пользователи могут запрашивать и визуализировать свои журналы и показатели для отслеживания производственных проблем, инцидентов безопасности, активности пользователей и многих других пользовательских случаев. В этом разделе мы сосредоточимся на Logz.io возможности ведения журнала.
Logz.io пользователи взаимодействуют с журналами в мощной версии Kibana (“K” в “Стеке ELK”), которая предлагает инженерам широкую гибкость для нарезки и обработки данных своих журналов. Logz.io пользователи получают выгоду от полной функциональности Kibana с дополнительными расширенными аналитическими функциями, которые делают Kibana более быстрой, интегрированной и простой в использовании. Следующий урок будет проходить на вкладке “Кибана” на верхней панели инструментов (вставка А).
Открыв Kibana, вы сможете просмотреть все журналы, созданные вашей средой. Согласно нашим запросам ниже (вставка B), за последние 2 дня “сервис-10” сгенерировал 1,7 миллиона журналов.
Очевидно, что сортировка этого списка журналов для выявления производственных проблем или мониторинга активности пользователей невозможна. Нажатие на вкладку “Шаблоны” (поле C) объединит похожие группы журналов вместе, чтобы вы могли быстро понять, какие данные журнала генерирует ваша служба, без необходимости прокручивать весь список журналов. Для каждого шаблона вы можете увидеть время, количество, соотношение (процент журналов, попадающих под шаблон) и сам шаблон.
Просматривая шаблоны журналов, вы можете быстро запросить наиболее важные данные журнала, нажав кнопки “отфильтровать” или “отфильтровать” справа от каждого шаблона (поле D). В этом случае, прокручивая страницу вниз, мы обнаруживаем шаблон, указывающий на “ошибку библиотеки SSL” – то, что явно стоит исследовать.
После открытия шаблона ошибок SSL мы видим, что он был помечен как “Когнитивное понимание”. Cognitive Insights использует ИИ для сопоставления входящих журналов с онлайн-форумами, такими как StackOverflow и GitHub, для выявления критически важных зарегистрированных событий в вашей среде.
Эта функция помогает нам найти иголку в стоге сена. Открыв Insight, мы видим контекстную информацию о событии и ссылки на форумы, на которых обсуждается ошибка SSL.
Команды могут открыть эти ссылки, чтобы посмотреть, как другие инженеры решали эту проблему.
Последняя информация, которую вы, возможно, захотите узнать об этой ошибке SSL, – это ее происхождение. Другими словами, каков фактический код, создающий эту проблему? Чтобы получить эту информацию, вы можете перейти на вкладку “Аналитика” в правом верхнем углу.
Этот график помогает нам сопоставлять проблемы с конкретными развертываниями. Цветные линии представляют производственные проблемы, а серые пунктирные линии представляют недавние развертывания. Как вы можете видеть, ошибка SSL, представленная синей точкой, появилась только после развертывания “Обновления сертификата марионетки” в 3:20 вечера 4 декабря. Таким образом, мы можем сделать вывод, что это развертывание привело к ошибке SSL, поэтому ее можно быстро устранить.
Обладая когнитивными знаниями и способностью отображать проблемы на графике развертывания, вы можете замкнуть цикл с инженерами, показав им первопричину и происхождение проблемы.
Убедитесь в этом сами!
В дополнение к возможностям, описанным выше, вы можете отслеживать показатели в Grafana, создавать собственные визуализации Kibana, устанавливать оповещения и делать многое другое.
Узнайте больше о Logz.io здесь или попробуйте сами здесь .
Оригинал: “https://dev.to/azure/using-logz-io-to-make-logging-spring-boot-applications-easier-and-faster-4k7a”