springboot在windows集成elk

摘要:
1.2安装elasticsearch-head插件1.2.1在谷歌浏览器的网上应用商店增加扩展插件1.2.2点击插件可查看Elasticsearch的索引文件1.3安装Logstash1.3.1下载Logstashhttps://www.elastic.co/downloads/logstash下载zip包并解压到D:elasticsearch-6.2.2logstash-6.2.21.3.2在bin目录下新建logstash.conf文件,并填入以下配置内容input{tcp{mode=˃"server"host=˃"127.0.0.1"port=˃4560codec=˃json_lines}}output{elasticsearch{hosts=˃"127.0.0.1:9200"index=˃"springboot-logstash-%{+YYYY.MM.dd}"}stdout{codec=˃rubydebug}}1.3.3测试输入消息转发到Elasticsearch在cmd命令切换到D:elasticsearch-6.2.2logstash-6.2.2in,并logstash-e"input{stdin{}}output{elasticsearch{hosts=˃['127.0.0.1:9200']}}"输入helloworld回车发送看到logstash-YYYY-MM-DD索引并能看到helloworld,说明配置成功了1.3.4运行Logstash,在cmd命令切换到D:elasticsearch-6.2.2logstash-6.2.2in,执行logstash-flogstash.conf1.4安装Kibana1.4.1下载地址https://www.elastic.co/downloads/kibana,下载zip压缩包,并解压1.4.2执行kibana.bat,访问http://localhost:5601/,如下图所示,则成功2:springboot集成logstash新建一个springboot工程pom添加依赖˂!

说明:elk指的是Elasticsearch、Logstash、Kibana的简称

Elasticsearch:是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;

Logstash:是一个用来搜集、分析、过滤日志的工具。

Kibana:是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。

elk的测试版本:6.2.2

这里简单搭建elk来收集springBoot生产的日志

1:安装elk

1.1安装elasticsearch

​ 1.1.1 下载ElasticSearch,下载地址:https://www.elastic.co/downloads/elasticsearch

​ 下载zip压缩包,并解压

​ 1.1.2 进入bin目录下,双击执行elasticsearch.bat

​ 1.1.3 启动后在浏览器上访问http://localhost:9200,如下图展示则安装启动成功。

springboot在windows集成elk第1张

1.2安装elasticsearch-head插件

​ 1.2.1在谷歌浏览器的网上应用商店增加扩展插件

springboot在windows集成elk第2张

​ 1.2.2点击插件可查看Elasticsearch的索引文件

springboot在windows集成elk第3张

1.3安装Logstash

​ 1.3.1下载Logstash https://www.elastic.co/downloads/logstash

​ 下载zip包并解压到D:elasticsearch-6.2.2logstash-6.2.2

​ 1.3.2在bin目录下新建logstash.conf文件,并填入以下配置内容

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

​ 1.3.3测试输入消息转发到Elasticsearch

​ 在cmd命令切换到D:elasticsearch-6.2.2logstash-6.2.2in,并logstash -e "input { stdin { } } output { elasticsearch { hosts => ['127.0.0.1:9200'] } }"

​ 输入hello world回车发送springboot在windows集成elk第4张

springboot在windows集成elk第5张

看到logstash-YYYY-MM-DD索引 并能看到hello world,说明配置成功了

​ 1.3.4运行Logstash,在cmd命令切换到D:elasticsearch-6.2.2logstash-6.2.2in,执行logstash -f logstash.conf

1.4安装Kibana

​ 1.4.1 下载地址 https://www.elastic.co/downloads/kibana ,下载zip压缩包,并解压

​ 1.4.2 执行kibana.bat,访问http://localhost:5601/,如下图所示,则成功

springboot在windows集成elk第6张

springboot在windows集成elk第7张

2:springboot集成logstash

新建一个springboot工程

pom 添加依赖

<dependencies>
    <!--集成logstash-->
    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>5.3</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.22</version>
    </dependency>
</dependencies>

springboot默认内置logback,不需要增加依赖

在资源的resource文件夹下新建logback-spring.xml(注意destination的地址必须要和logstash的host和port一致),配置内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    <springProperty scope="context" name="appName" source="Web Server's Default Page"/>

    <!-- 日志在工程中的输出位置 -->
    <property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${appName}"/>

    <!-- 控制台的日志输出样式 -->
    <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

    <!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <!-- 日志输出编码 -->
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!--logstash配置-->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>127.0.0.1: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>
        <!--<encoder charset="UTF-8"  />-->
    </appender>

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

</configuration>

接着在配置文件application.yml,添加配置:

logging:
  level:
    root=INFO:
  config: classpath:logback-spring.xml

增加个测试日志的controller接口

@Slf4j
@Controller
public class DemoController {

    @RequestMapping("/")
    @ResponseBody
   public String home() {
       log.info("hello world!");
      return "hello world!";
      
   }

}

重复上述的启动Elasticsearch、Logstash、Kibana过程

启动springboot项目测试,访问elasticsearch-head,若出现springboot-logstash-*对应日期的索引,说明集成logstash成功

springboot在windows集成elk第8张

打开http://localhost:5601/,添加索引,采集springboot-logstash*的索引的消息

springboot在windows集成elk第9张

springboot在windows集成elk第10张

springboot在windows集成elk第11张

使用 Discover 查询日志信息,先访问http://localhost:8081/
springboot在windows集成elk第12张

输入hello world实时查询采集的日志

springboot在windows集成elk第13张

免责声明:文章转载自《springboot在windows集成elk》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇kettle删除资源库中的转换或者作业appium+python 【Mac】UI自动化测试封装框架流程简介 &amp;lt;一&amp;gt;下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

线上日志集中化可视化管理:ELK

本文来自网易云社区作者:王贝 为什么推荐ELK: 当线上服务器出了问题,我们要做的最重要的事情是什么?当需要实时监控跟踪服务器的健康情况,我们又要拿什么去分析?大家一定会说,去看日志,去分析日志。是的,日志对于服务器开发人员来讲是最亲密的伙伴了,基本上每天都会去看各种类型的海量的日志去定位问题,去做统计分析等等。最常见的查看日志的情况,比如线上出了bug,...

Windows-ElasticSearch安装与启动

步骤一:下载ES压缩包   ElasticSearch分为Linux和Window版本,基于我们主要学习的是ElasticSearch的Java客户端的使用,所以我们课程中使用的是安装较为简便的Window版本,项目上线后,公司的运维人员会安装Linux版的ES供我们连接使用。   ElasticSearch的官方地址: https://www.elast...

解决elasticsearch报错报错“java.lang.IllegalArgumentException: Rejecting mapping update to [这里是索引名称保密] as the final mapping would have more than 1 type: [_doc, log]"”

某日在研究kibana的索引生命周期功能,感觉对于我们现在几千个索引蛮有用途,之前都是写个删除脚本呢,放到定时任务进行删除。 通过新建一个生命后期策略,设置日期15日,并通过索引模板匹配到测试索引的时候,第二天发现该索引无任何数据,显示索引大小283B,文档数0,似乎是不接受数据了 通过查看elasticsearch的logs_server.json日志,...

docker部署skywalking

一、概述 简介 skywalking是一个开放源码的,用于收集、分析,聚合,可视化来自于不同服务和本地基础服务的数据的可观察的平台, skywalking提供了一个简单的方法来让你对你的分布式系统甚至是跨云的服务有清晰的了解。 它更像是一个现代的系统性能管理,特别为分布式系统而设计。http://archive.apache.org/dist/skywal...

使用Elasticsearch的processors来对csv格式数据进行解析

来源数据是一个csv文件,具体内容如下图所示: 导入数据到es中 有两种办法,第一种是在kibana界面直接上传文件导入 第二种方法是使用filebeat读取文件导入 这里采用第二种办法 配置文件名:filebeat_covid19.yml filebeat.inputs: - type: log paths: - /covid19/covid...

ElasticSearch7.x系列二:Kibana的使用和C#的Nest客户端

目录 前言 Kibana查询ElasticSearch 使用C#的Nest查询ElasticSearch 连接 使用连接池 增加文档 批量增加文档 搜索文档 查询指定字段 全文检索 全文检索高亮 高亮查询 聚合查询 结构化: 特点,查询结果要么是true要么是false 非结构化搜索: 特点,在全文字段中搜索 组合查询 布尔查询 不好的写法 推荐...