SpringBoot наследует LogStash для реализации сбора журналов.

Spring Boot

1. Подготовка окружающей среды

Установите Elasticsearch, kibana, logstash, ссылку на учебникРуководство по установке

2. Настройте зависимости SpringBoot

Добавьте пакет зависимостей logStash в файл pom в проекте springBoot.

    <!--logStash-->
    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>5.3</version>
    </dependency>

Добавьте файл конфигурации данных журнала журнала logback-spring.xml в папку ресурсов Springboot.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!--配置logStash 服务地址-->
        <destination>192.168.92.50:4560</destination>
        <!-- 日志输出编码 -->
        <encoder charset="UTF-8"
                 class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "logLevel": "%level",
                        "serviceName": "${springAppName:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="LOGSTASH" />
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

3. Настройте конфигурацию коллекции журналов logstash.

Добавьте информацию о конфигурации коллекции журналов в файл конфигурации logstash logstash.conf.

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
  tcp {
    mode => "server"
    host => "192.168.92.50"
    port => 4560
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => "192.168.92.50:9200"
    index => "springboot-logstash-%{+YYYY.MM.dd}"
  }
}

Обратите внимание на адрес хоста и информацию об адресе es, настроенную выше, и используйте этот файл конфигурации для запуска службы logstash.

В-четвертых, конфигурация и отображение фильтрации журнала kibana.

Запустите службу springboot и настройте перехватчик логов в кибане.

E7Yd4P.md.png
Введите имя нашей конфигурации ведения журнала logstash
E7Y2En.md.png
Перейдите к следующему шагу и выберите фильтр с отметкой времени.
E7YhCV.md.png
Нажмите на меню «Обнаружение» слева, и было обнаружено, что данные были отображены.

E7tCbd.md.png