前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

Logstash采集Springboot控制台日志并推送至Elasticsearch

qiguaw 2024-12-05 15:29:06 资源文章 18 ℃ 0 评论

一、集成 springboot

1、pom文件添加上Logstash依赖

    <!-- logback 推送日志文件到logstash -->
    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>6.5</version>
    </dependency>

2、修改 logback-spring.xml

1)在原有的 logback-spring.xml XML文件中添加以下代码

    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!--logstaship地址-->
        <destination>192.168.0.100:5045</destination>
        <!-- 日志输出编码 -->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "logLevel": "%level",
                        "serviceName": "web-test",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

注意:<destination>192.168.0.100:5045</destination>中 ip 为 logstash 服务器的 ip,端口号是向 logstash 发送请求的端口,需要与 logstash 监控配置相同,端口号可随意指定,但端口号不能被占用

2)在 logback-spring.xml 添加以下配置,使其 LOGSTASH 连接信息生效

    <root level="info">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="DEBUG_FILE"/>
        <appender-ref ref="INFO_FILE"/>
        <appender-ref ref="WARN_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
        <appender-ref ref="LOGSTASH"/>
    </root>

二、Logstash配置信息

logstash/conf.d 配置目录下新建 log_springboot.conf,新增以下配置信息:

input {
    tcp {
        mode => "server"
		type => "web"
        host => "0.0.0.0"
        port => 5045
        codec => json_lines
    }
}

output {
    if [type] == "web" {
        elasticsearch {
            hosts => "192.168.0.100:9200"
            index => "web-log-%{+YYYY.MM.dd}"
        }
        stdout{codec => rubydebug}
    }
}

查看结果

访问 Kibana 配置相关的索引模式并查询日志信息,如下图:

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表