Elasticsearch7.x(二)——详细的记录一个简易的 Spring boot 2.x 集成 ELK的demo


前言

本打算记录es学习使用过程中的知识点,但感觉无论怎么写都觉得毫无意义。毕竟,最好最全的学习文档就是es的官网了,所以我打算以后只记录和分享一下es使用。至于深入的剖析原理,源码之类的,以后弄懂了再说。


一、Springboot + ELK执行流程图

在这里插入图片描述
简述一下整个流程:
1. 启动Elasticsearch 服务
2. 启动Kibina 服务,连接Elasticsearch。提供可视化界面,操作es
3. 启动logstach 服务,连接Elastisearch 。可以通过logstash ,向ES写入数据
4. 启动spring boot app服务,以http方式(还有其他多种方式,ws等)写入日志数据到logstash
5. logstach 接收到app的日志后,在写入ES中。最后,用户在Kibana界面,查看操作ES中的日志数据。

二、安装Elasticsearch

1.下载

前往官网下载

https://www.elastic.co/cn/elasticsearch/

2. 解压

在这里插入图片描述

3. 启动

在这里插入图片描述
启动后
在这里插入图片描述

3. 测试

浏览器输入:http://localhost:9200/
在这里插入图片描述

三、安装kibana

1.下载

https://www.elastic.co/cn/downloads/kibana

2. 解压

在这里插入图片描述

3. 修改配置

在这里插入图片描述

启动

在这里插入图片描述

3. 测试

浏览器输入: http://localhost:5601/

在这里插入图片描述

四、安装Logstash

1.下载

https://artifacts.elastic.co/downloads/logstash/logstash-7.3.2.zip

2.解压

在这里插入图片描述

3.添加配置

新增配置文件 ( logstash_test.conf)
在这里插入图片描述
添加如下内容:

input {
stdin{}
}

output {
stdout{}
elasticsearch {
	hosts=> ["127.0.0.1:9200"]
}
}

4. 启动测试

打开命令行: .\logstash -f .\logstash_test.conf
启动成功后,输入内容:hello haha
在这里插入图片描述
kibana上查看数据
在这里插入图片描述
查询一下:
在这里插入图片描述
到此,我们已经完成单机版,ELK 的简单安装使用了。

五、使用springboot 集成logstash

logstash 配置

1.新增配置

在这里插入图片描述
添加如下内容:

input { stdin { } }
input {
    
    tcp {
    host => "127.0.0.1"
    port => 9900
    codec => json_lines
  }
}

output {
    stdout { codec => rubydebug }
	elasticsearch {
		hosts => ["127.0.0.1:9200"] 
	}
}

2. 启动

打开命令行: .\logstash -f .\logstash.conf
在这里插入图片描述

springboot 配置

1.引入依赖

compile group: 'net.logstash.logback', name: 'logstash-logback-encoder', version: '6.5'

2. application.yml 配置

#日志配置
logging:
  config: classpath:logback.xml

3.logback.xml 配置

<!--开启tcp格式的logstash传输,通过TCP协议连接Logstash-->
	<property name="springAppName" value="springboot-demo"/>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!--配置logStash 服务地址-->
        <destination>127.0.0.1:9900</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}",
                        "message": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

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

4.编写测试接口

    /**
     * 测试不同格式的message过滤处理之后写入不同的elasticsearch-index
     *
     * @param type
     * @return
     */
    @GetMapping("/testlog")
    @ResponseBody
    public Boolean test(int type) {
        switch (type) {
            case 1:
                log.info("{} {} {} {}", "HTTP", "GET", "/api/test", "接口GET 请求");
                break;
            case 2:
                log.info("{} {} {} {}", "HTTP", "POST", "/api/test", "接口POST 请求");
                break;
            case 3:
                log.warn("{} {} {}", "HTTP", "POST", "警告日志");
                break;
            default:
                log.error("{} {} {} ", "HTTP", "GET", "异常日志");
                break;
        }
        return true;
    }

六、操作Kibana,查看测试结果

1.配置kibana

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.浏览日志

在这里插入图片描述
到此!单机版的整个安装使用的流程,都已经操作完毕~

本章主要内容是为了让读者,能对整个ELK 的流程熟悉。已经搭建一个简单的demo,也方便以后自己测试使用。


总结

  1. 对Elasticsearch 有最基本了解
  2. 安装elasticsearch和kibana
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值