springboot整合elk-windows版本

下载三个资源:

elasticsearch-6.2.2     主要存储数据

logstash-6.2.2            存储日志信息并传给elasticsearch

kibana-6.2.2-windows-x86_64       用于可视化展示

一、配置elasticsearch

 config/elasticsearch.yml

network.host: 127.0.0.1
http.port: 9200

上面默认的就是localhost,可以修改具体的es地址

启动双击即可

访问:http://localhost:9200/

二、配置logstash

下载完后修改配置文件 config/logstash.yml

http.host: "127.0.0.1"

上面默认的就是localhost,可以修改具体的地址

在bin目录下创建文件logstash.conf

input {
  tcp {
    #模式选择为server
    mode => "server"
    #ip和端口根据自己情况填写,端口默认4560,对应下文logback.xml里appender中的destination
    host => "localhost"
    port => 4560
    #格式json
    codec => json_lines
  }
}
filter {
  #过滤器,根据需要填写
}
output {
  elasticsearch {
    action => "index"
    #这里是es的地址,多个es要写成数组的形式
    hosts  => "localhost:9200"
    #用于kibana过滤,可以填项目名称
    index  => "applog"
  }
}

启动logstash

logstash -f logstash.conf

启动过程可能会报错如下:

是因为在创建文件的时候编码设置问题,用编辑器修改为UTF-8即可

http://localhost:9600/

三、配置kibana

修改配置文件kibana.yml

server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"

上面默认的就是localhost,可以修改具体的地址

访问地址:http://localhost:5601

Management --> Index Patterns,填入Logstash配置中index的值,此处为applog,点击下一步选择"@timestamp"

——>点击Create Index pattern——>Discover找到索引applog

以上的界面是在所有工作做完以后才会出现的

四、项目中配置

添加依赖

<dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>${logstash.version}</version>
</dependency>

修改logback.xml配置文件

    <!-- 输出到logstash的appender -->
   <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
       <!-- logstash的IP和端口,从环境变量注入 ${ELK_DESTINATION}-->
       <destination>127.0.0.1:4560</destination>
       <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
   </appender>

    <!-- Level: FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7 -->
    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="debug"/>
        <appender-ref ref="error"/>
        <appender-ref ref="logstash"/>
    </root>

完整配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
    <springProperty scop="context" name="spring.application.name" source="spring.application.name"
                    defaultValue="content-microservice-questions"/>
    <property name="log.path" value="logs/${spring.application.name}"/>
    <!-- Console log output -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log file debug output -->
    <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/debug.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/%d{yyyy-MM}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log file error output -->
    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
    </appender>

    <!-- 输出到logstash的appender -->
   <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
       <!-- logstash的IP和端口,从环境变量注入 ${ELK_DESTINATION}-->
       <destination>127.0.0.1:4560</destination>
       <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
   </appender>

    <!-- Level: FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7 -->
    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="debug"/>
        <appender-ref ref="error"/>
        <appender-ref ref="logstash"/>
    </root>
</configuration>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot可以很容易地集成ElasticSearch作为日志存储,然后使用Logstash将日志从Spring Boot应用程序传输到ElasticSearch,最后可以使用Kibana进行数据可视化。 以下是实现Spring Boot整合ELK的基本步骤: 1. 安装ElasticSearchLogstashKibana。 2. 当Spring Boot应用程序运行时,将日志记录到文件中。 3. 使用Logstash配置文件来监控日志文件,并将数据发送到ElasticSearch。 4. 在Kibana中创建一个索引模式来解析ElasticSearch中的数据。 5. 创建仪表板和可视化,以显示日志数据。 下面是一个简单的Logstash配置文件,将日志文件发送到ElasticSearch: ``` input { file { path => "/path/to/spring-boot-app.log" sincedb_path => "/dev/null" start_position => "beginning" } } filter { grok { match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} \[%{DATA:thread}\] %{DATA:class} - %{GREEDYDATA:logmessage}" } } } output { elasticsearch { hosts => [ "localhost:9200" ] index => "spring-boot-app-logs-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } } ``` 这个配置文件使用Grok来解析日志文件中的日志条目,并将其发送到ElasticSearch中的名为“spring-boot-app-logs”索引的索引中。stdout输出是可选的,它允许将数据输出到控制台进行调试。 在使用Logstash转发日志数据之前,确保运行ElasticSearchKibana,并且ElasticSearch集群和索引模式已经设置好。在Kibana中,您可以通过“索引模式”页面创建新的索引模式。在这个页面上,您需要指定ElasticSearch索引的名称模式,并为每个字段定义Type。 创建模式后,您可以使用可视化编辑器创建仪表板和可视化,以显示日志数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值