Loki — это высокодоступная, масштабируемая, многопользовательская система агрегирования журналов с открытым исходным кодом, разработанная Grafana Labs. Он вдохновлен Prometheus и использует аналогичный механизм, используя метки для пометки журналов с функциями, а затем выполняя агрегирование статистики.
Loki спроектирован так, чтобы быть экономичным и простым в использовании. Он не создает полнотекстовые индексы для содержимого журнала. Вместо этого он сжимает и хранит данные журнала, а индексирует только метаданные данных журнала (такие как метки времени, метки и т. д.). и т. д.). Такая конструкция дает Loki преимущества с точки зрения стоимости хранения и эффективности запросов.
Loki4j — это средство добавления журналов, разработанное для приложений Java, которое позволяет приложениям Java отправлять журналы непосредственно на сервер Loki. Loki4j особенно подходит для сред Spring Boot, поскольку его можно легко интегрировать в системы с помощью Logback или Log4j2, предоставляя разработчикам Java простое, но мощное решение для управления журналами.
Grafana — мощная платформа визуализации и мониторинга данных с открытым исходным кодом. Он поддерживает несколько источников данных, включая Loki, что позволяет пользователям создавать динамические и настраиваемые информационные панели для визуализации данных журналов. Гибкость и богатая функциональность Grafana делают его идеальным для мониторинга и анализа данных журналов.
Сначала нам нужно установить Loki и Grafana. В этой статье для их быстрого развертывания используется Docker.
# УстановитьLoki
docker run -d --name loki -p 3100:3100 grafana/loki:latest -config.file=/etc/loki/local-config.yaml
# УстановитьGrafana
docker run -d --name grafana -p 3000:3000 grafana/grafana:latest
В проекте Spring Boot мы будем использовать Loki4j для отправки логов в Loki.
Сначала добавьте зависимость Loki4j в файл pom.xml:
<dependency>
<groupId>com.github.loki4j</groupId>
<artifactId>loki-logback-appender</artifactId>
<version>1.4.1</version>
</dependency>
Затем настройте Журнал регистрации, в src/main/resources
Создать в каталоге logback.xml файл и добавьте следующую конфигурацию:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Представляем названия приложений Spring -->
<springProperty name="name" source="spring.application.name"/>
<!-- консольный вывод -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [thread %thread] %-5level %logger{35}.%method - %msg%n</pattern>
</encoder>
</appender>
<!-- Локи Экспортер -->
<appender name="LOKI" class="com.github.loki4j.logback.Loki4jAppender">
<http>
<url>http://localhost:3100/loki/api/v1/push</url>
</http>
<format>
<label>
<pattern>application=${name},level=%level</pattern>
<readMarkers>true</readMarkers>
</label>
<message>
<pattern>
{"timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}", "level": "%level", "logger": "%logger{36}.%method", "method":"%M", "line":"%line", "thread": "%thread", "message": "%msg%n"}
</pattern>
</message>
<sortByTime>true</sortByTime>
</format>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="LOKI"/>
</root>
</configuration>
Открыть Grafana из Web интерфейс(Адресhttp://localhost:3000
),Первая учетная запись и пароль admin, смените пароль после входа, добавьте Loki В качестве источника данных и конфигурации он указывает на проектирование. Loki Служить.
бегатьтыиз Spring Boot приложение, теперь все существование будет избревно отправлено на Локи, его можно найти в Grafana Посмотреть в.
существовать Grafana , вы можете создавать информационные панели для отображения данных журнала. выбирать Loki в качестве источника данных, а затем использовать Loki изсинтаксис запроса для фильтрацииивыставкабревно。
Сделайте один ниже Простой Посмотреть журнализ операции, нажмите explore ,Выберите Локи в качестве источника данных,существоватьLabel Выберите метку (приложение) и значение (muqing-api) в параметрах фильтров и нажмите «Выполнить» в правом верхнем углу. Запросите поиск для просмотра журнала.
Пройдите вышеуказанные шаги,Мы успешно построили Простойиз Java система регистрации, которая сочетает в себе Loki Мощные возможности бревной агрегации, Loki4j из Удобная функция бревно отправки, Grafana из可视化выставка。В этой статье объясняется, как быстроизпостроить Простойизбревносистема,При фактическом развитии необходимо учитывать множество факторов.,Такие как безопасность и другие аспекты.
В будущем мы также концентрируемся на Локи из Объясняется еще один сборщик бревно Promtail, он поддерживает любой формат.、Может быть развернут независимо、Больше гибкости из Служить.