spring boot ELK搭建「建议收藏」

spring boot ELK搭建「建议收藏」ELK简介ELK是Elasticsearch+Logstash+Kibana简称Elasticsearch是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch基于Lucene开发,现在是使用最广的开源搜索引擎之一。Logstash简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的

ELK简介

ELK是Elasticsearch+Logstash+Kibana简称

Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。

Logstash 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的各种应用场景。

Kibana 是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图标、表格、地图等,kibana能够很轻易的展示高级数据分析与可视化。

流程

spring boot ELK搭建「建议收藏」

基于spring boot搭建ELK

可以去官网分别下载安装:https://www.elastic.co/cn/downloads/past-releases#(我这里下载的7.12.0)

Elasticsearch

1.下载Elasticsearch,解压,点击bin下的elasticsearch.bat

2.访问http://localhost:9200/

3.返回一串json代码,则证明安装成功

{
  "name" : "LAPTOP-Q7TNQUU9",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "RMJvT6LHRFaE-05T2NegzA",
  "version" : {
    "number" : "7.12.0",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a",
    "build_date" : "2021-03-18T06:17:15.410153305Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Logstash

1.下载解压logstash-7.12.0,在D:\ELK\logstash-7.12.0\config新增log4j_to_es.conf文件,input是输入配置,output是输出配置

input:使用tcp去做日志数据的传输,

host:从哪个端口进来的数据

port:端口号

mode:server只监听本地,如果做集群是另一种配置,这里先不解释,可以百度

codec:数据格式json

output:输出到那,我们这输出到es中

hosts:是es的地址

index:输出的名称,在kibana中查看这个名字

input{
        
		 tcp {
				host=>"127.0.0.1"
                port => 9601
				mode=>"server"
                codec => json_lines
        }

}
output{
        elasticsearch{
                hosts=>["http://127.0.0.1:9200"]
                index => "user-%{+YYYY.MM.dd}"
                }
        stdout{codec => rubydebug}
}

2.在D:\ELK\logstash-7.12.0\bin下新建run.bat,用来启动。

logstash -f ../config/log4j_to_es.conf

3.访问http://localhost:9600/,出现以下内容,在代表配置成功

{
    "host":"LAPTOP-Q7TNQUU9",
    "version":"7.12.0",
    "http_address":"127.0.0.1:9600",
    "id":"dad8f5b9-4d08-4114-a25a-27fb5d7177ed",
    "name":"LAPTOP-Q7TNQUU9",
    "ephemeral_id":"f0d4a37b-09ca-4467-b427-df12be8d641c",
    "status":"green",
    "snapshot":false,
    "pipeline":{
        "workers":8,
        "batch_size":125,
        "batch_delay":50
    },
    "build_date":"2021-03-18T05:13:33Z",
    "build_sha":"4399d72a9afe6f06db8adbaad8030e5b111e86b6",
    "build_snapshot":false
}

Kibana

1.下载Kibana,解压

2.点击bin下的kibana.bat

3.出现以下代码证明启动成功

 log   [20:28:10.143] [info][kibana-monitoring][monitoring][monitoring][plugins] Starting monitoring stats collection

4.点击访问http://localhost:5601/

spring boot ELK搭建「建议收藏」

那么我们ELK就搭建完了,我们只需要再项目中集成就可以了

我们以spring boot为例,新建spring boot项目,在配置文件新增依赖

<dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.1</version>
        </dependency>

新建logback-spring.xml文件

<?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">
        <destination>127.0.0.1:9601</destination> //logstash ip和暴露的端口,logback就是通过这个地址把日志发送给logstash
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>

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

在application.yml中引入logback-spring.xml

logging:
  config: classpath:logback-spring.xml

新建controller入口


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class LoginController {
    private Logger logger = LoggerFactory.getLogger(LoginController.class);

  

    @RequestMapping("/login1")
    public void showLogin1(){
        logger.warn("This is a warn message!");
        logger.error("This is error message!");
        try {
            int a = 1/0;
        } catch (Exception e){
            e.printStackTrace();
        }

    }

}

新建home.html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>ELK</h1>
<a href="/login1">报错日志</a>
</body>
</html>

启动项目,访问home.html,点击链接,控制台输出

spring boot ELK搭建「建议收藏」

在logstash的命令窗口看到有json数据,说明我们项目的日志已经推到logstash了

spring boot ELK搭建「建议收藏」

再去查看Kibana可视化界面,注意,首次登陆需要设置Index patterns

spring boot ELK搭建「建议收藏」

我们会看到所有的索引名称,复制我们今天的名称,点击下一步

spring boot ELK搭建「建议收藏」

选择@timestamp,点击创建

spring boot ELK搭建「建议收藏」

创建完成,点击左侧的菜单栏,点击Discover

spring boot ELK搭建「建议收藏」

就可以看到我们输出的日志信息了,左侧栏是配置列表显示的项

spring boot ELK搭建「建议收藏」

到此spring boot ELK搭建以及测试完毕

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/10890.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注