前言:最近在写一个HTTP代理服务器,记录日志使用的是ES,所以涉及到SpringBoot和ES的整合,整合完毕后又涉及到数据可视化分析,所以使用了Kibana进行管理,有些坑,需要记录一下

SpringBoot整合ES

gradle项目,在build.gradle文件中引入依赖

`dependencies {

//........

// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-elasticsearch

implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-elasticsearch'

}ES和MySQL有点像,ES中索引的概念对应MySQL中表的概念,ES中文档的概念对应MySQL中的一行数据。因此我们需要定义一个索引import java.util.Map;

@Data

@Document(indexName = "request_log", createIndex = false)

public class RequestIndex {

private Long id;

private String domain;

private String ip;

private HttpMethod method;

private String uri;

private Map<String, Object> headers;

private byte[] body;

这里有个坑,给我在后面整合Kibana的时候造成了困难,@Document注解中的createIndex的默认值为true,可省略。所以在后续插入数据时,request_log索引不存在时,会自动创建一个request_log索引,而这个默认创建的索引并没有@timestamp字段,所以导致Kibana的柱状图无法生成,影响数据可视化 因此,我建议这里直接手动设置createIndex的值为false 我们另外手动创建request_log索引,这样可以手动开启@timestamp字段 在ES7中,创建@timestamp的方法与之前的版本不同,使用的是pipeline 首先创建一个pipelinePUT _ingest/pipeline/timestamp_pipeline

{

"description": "Adds a field to a document with the time of ingestion",

"processors": [

{

"set": {

"field": "@timestamp",

"value": "{{_ingest.timestamp}}"

}

}

]

}这样我们就成功创建了一个名为timestamp_pipeline的pipeline 紧接着我们创建request_log索引,并把这个pipeline配置到这个索引上PUT request_log

{

"settings": {

"default_pipeline": "timestamp_pipeline"

}

}`

至此,我们就创建索引成功了,看一下日志



果然成功出现了@timestamp字段

Kibana搭建

Kibana的版本必须和ES的版本一致,否则无法启动

Kibana的配置文件中,主要需要配置以下几项:

server.host

server.port

elasticsearch.hosts

elasticsearch.username

elasticsearch.password

i18n.locale: "zh-CN"

其中,elasticsearch.username不能使用elastic用户,由于ES配置了xpack,所以创建了其他用户

访问 GET /_xpack/security/user

从名字看起来,可以使用kibana和kibana_system,但是看提示,kibana用户已经被弃用了,建议使用kibana_system



搭建好Kibana后,进入Stack Management,索引模式,创建索引模式



以@timestamp为时间戳字段



成功啦~

SpringBoot整合ES+Kibana的更多相关文章

  1. springboot整合es客户端操作elasticsearch(五)

    springboot整合es客户端操作elasticsearch的总结: 客户端可以进行可以对所有文档进行查询,就是不加任何条件: SearchRequest searchRequest = new ...

  2. springboot整合es客户端操作elasticsearch(二)

    在上章节中整合elasticsearch客户端出现版本问题进行了处理,这章来进行springboot整合得操作 环境:elaticsearch6.2.1,springboot 2.1.8 客户端版本采 ...

  3. ElasticSearch(三)springboot整合ES

    最基础的整合: 一.maven依赖 <parent> <groupId>org.springframework.boot</groupId> <artifac ...

  4. springboot整合es客户端操作elasticsearch(四)

    对文档查询,在实际开发中,对文档的查询也是偏多的,记得之前在mou快递公司,做了一套事实的揽件数据操作,就是通过这个来存储数据的,由于一天的数据最少拥有3500万数据 所以是比较多的,而且还要求查询速 ...

  5. SpringBoot 整合es(elasticsearch)使用elasticsearch-rest-high-level-client实现增删改

    引入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok< ...

  6. springboot整合es客户端操作elasticsearch(三)

    继续上个随笔: 那么我们只需要修改controller中文件就可以完成相关操作 本次主要是对文档得操作: 更新文档: package com.cxy.elasticsearch.controller; ...

  7. SpringBoot操作ES进行各种高级查询

    SpringBoot整合ES 创建SpringBoot项目,导入 ES 6.2.1 的 RestClient 依赖和 ES 依赖.在项目中直接引用 es-starter 的话会报容器初始化异常错误,导 ...

  8. SpringBoot整合freemarker 引用基础

    原 ElasticSearch学习笔记Ⅲ - SpringBoot整合ES 新建一个SpringBoot项目.添加es的maven坐标如下: <dependency> <groupI ...

  9. Springboot整合ElasticSearch进行简单的测试及用Kibana进行查看

    一.前言 搜索引擎还是在电商项目.百度.还有技术博客中广泛应用,使用最多的还是ElasticSearch,Solr在大数据量下检索性能不如ElasticSearch.今天和大家一起搭建一下,小编是看完 ...

随机推荐

  1. 在docker中出现的僵尸进程怎么处理

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.发现问题 小玲是一名数据库测试人员,这一天她尝试在docker环境中部署GreatDB集群,结果在对greatsqld ...

  2. 技术分享 | 浅谈MySQL闪回的实现

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 1.闪回实现原理 2.binlog文件格式初探 3.闪回实现过程 1.闪回实现原 ...

  3. 自己做一个RTOS

    什么是操作系统?其实就是一个程序, 这个程序可以控制计算机的所有资源,对资源进行分配,包括CPU时间,内存,IO端口等,按一定规则分配给所需要的进程(进程?也就是一个程序,可以单独执行),并且自动控制 ...

  4. java-流的使用完结与异常处理机制

    1.1java.io.objectInputStream 对象输入流:用于将一组字节(通过对象输出流写出对象而转换的一组字节)读取并转换为对应的对象.对象输出流将对象写出时转换为一组字节的过程,称为: ...

  5. 056_末晨曦Vue技术_处理边界情况之X-template

    处理边界情况之X-template 点击打开视频讲解更加详细 另一个定义模板的方式是在一个<script>元素中,并为其带上 text/x-template 的类型,然后通过一个 id 将 ...

  6. matery添加加载动画

    1.在主题 /layout/_partial/目录新建一个loading-pages.ejs 内容如下: <style type="text/css" lang=" ...

  7. 二叉搜索树TREE(线段树,区间DP)

    前言 线段树+区间DP题,线段树却不是优化DP的,是不是很意外? 题面 二叉搜索树是一种二叉树,每个节点都有一个权值,并且一个点的权值比其左子树里的点权值都大,比起右子树里的点权值都小. 一种朴素的向 ...

  8. 内网技巧-通过SAM数据库获得本地用户hash的方法

    内网技巧-通过SAM数据库获得本地用户hash的方法 在windows上的C:\Windows\System32\config目录保存着当前用户的密码hash.我们可以使用相关手段获取该hash. 提 ...

  9. CodeForces - 1701C

    Problem - C - Codeforces 题意: 每个位置对应一种适合的工人,适合的工人工作消耗1h,不适合2h,每个工人不能同时工作多个机器,问将所有机器工作完毕的最小时间是多少. 题解: ...

  10. Kingbase V8R6集群安装部署案例---脚本在线一键扩容

    案例说明: KingbaseES V8R6支持图形化方式在线扩容,但是在一些生产环境,在服务器不支持图形化界面的情况下 ,只能通过脚本命令行的方式执行集群的部署或在线扩容. Tips: Kingbas ...