本次和大家分享的主要是docker搭建es和springboot操作es的内容,也便于工作中或将来使用方便,因此从搭建es环境开始到代码插入信息到es中;主要节点如下:

  1. elasticsearch启动
  2. mobz/elasticsearch-head启动
  3. kibana启动
  4. springboot操作es

1.elasticsearch启动

  我本机环境是windows10,要挂载es的配置文件需要在本机上创建配置文件,因此这里创建配置文件C:UsersAdministratoreses-master.yml,配置文件内容如:

 #集群名称
cluster.name: "shenniu_elasticsearch"
#本节点名称
node.name: master
#是否master节点
node.master: true
#是否存储数据
node.data: true
#head插件设置
http.cors.enabled: true
http.cors.allow-origin: "*"
http.port:
transport.tcp.port:
#可以访问的ip
network.bind_host: 0.0.0.0

  这里配置一个es的cluster的master节点,集群名称shenniu_elasticsearch,有了配置下面就是启动es命令:

 docker pull elasticsearch
docker run -d --name es-master -p : -p : -v C:/Users/Administrator/es/es-mast
er.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch

  启动完后在浏览器浏览 http://192.168.183.9:9200/ 得到如下成功信息:

  

2.mobz/elasticsearch-head启动

  elasticsearch-head做为es集群状态查看插件工具,用起来还是挺方便的,启动命令如:

 docker pull mobz/elasticsearch-head
docker run -d -p : --name mobz-es mobz/elasticsearch-head

  然后在浏览器录入 http://192.168.183.9:9100/ ,能够看到插件的操作界面,其中包含了索引,数据,基本查询等功能很是方便

  

  为了博客内容充实性,这里我添加了一些日志到es中,通过head工具能够看到如:

    

3.kibana启动

  kibana是专门针对es内容的一款查看工具,和elasticsearch-head不同的是前者主要是内容显示,通常有elk的组合,这里同样通过docker来启动下

 docker pull kibana
docker run --name kibana -e ELASTICSEARCH_URL=http://192.168.183.9:9200 -p 5601:5601 -d kibana

  这里需要配置关联的es的地址,否则kibana界面无法正常使用,倘若es停了,kibana界面也会变成如下

  

  如果es和kibana都正常的话,就能够进入到如下界面

  

4.springboot操作es

  要说springboot中使用es有很多方式,这里使用的是它集成的包,通过maven添加如下依赖:

 <!--es-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

  然后需要在配置文件中增加关于es的的相关配置,由于这里采用的是resposity操作es,所以这里需要设置为启动状态:

 spring:
data:
elasticsearch:
cluster-name: shenniu_elasticsearch
cluster-nodes: 192.168.183.9:
repositories:
enabled: true

  cluster-name对应的是上面启动es时集群配置的名称,cluster-nodes对应集群访问的ip和端口;一般往es中存储的都是对象形式,所以这里需要定义一个实体类,这里是 MoEsLog:

 @Document(indexName = "eslog")
public class MoEsLog {
private String message; public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} private String dateTime; public String getDateTime() {
return dateTime;
} public void setDateTime(String dateTime) {
this.dateTime = dateTime;
} @Id
private String _id;
}

  通过注解@Document里面的indexName来创建es索引名,然后通过继承ElasticsearchRepository来使用里面的增删改查方法,这里创建一个es工厂接口如:

 @Repository
public interface IEsRepository extends ElasticsearchRepository<MoEsLog, String> {
}

  到此基本的配置和底层的工厂接口都完成了,剩下的就是怎么调用和简单的封装了,这里以save方法为例:

 @Service
public class EsLogServiceImpl implements EsLogService { @Autowired
private IEsRepository esRepository; @Override
public void addEsLog(String message) { Executors.newFixedThreadPool().submit(new Runnable() {
@Override
public void run() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); MoEsLog esLog = new MoEsLog();
esLog.setMessage(message);
esLog.setDateTime(simpleDateFormat.format(new Date()));
esRepository.save(esLog);
}
});
} @Override
public <T> void addEs(T t) {
addEsLog(JsonUtil.toJson(t));
}
}

  值得主要的是里面对datetime属性赋值的是一个时间字符串,格式如:yyyy-MM-dd'T'HH:mm:ss.SSSZ,这里匹配es的时间格式,不出意外的运行程序后,能够在kibana中看到如下信息:

  

  这里再转到9100端口的mobz/elasticsearch-head界面,也能够看到如下的记录:

  

docker+es+kibana和springboot中使用es的更多相关文章

  1. Elasticsearch核心技术(1)--- Docker容器中运行ES、Kibana、Cerebro

    Docker容器中运行ES,Kibana,Cerebro和Logstash安装与数据导入ES 想加强ES有关的知识,看了阮一鸣老师讲的<Elasticsearch核心技术与实战>收获很大, ...

  2. Docker中Nginx,部署Tomcat,部署es + kibana,Docker的可视化,Commit镜像

    docker安装使用Nginx # 搜索信息 docker search nginx # 下载镜像 docker pull nginx # 运行测试 # --name给容器命名 # -p 宿主机端口: ...

  3. SpringBoot整合ES+Kibana

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

  4. Docker(40)- docker 实战三之安装 ES+Kibana

    背景 参考了狂神老师的 Docker 教程,非常棒! https://www.bilibili.com/video/BV1og4y1q7M4?p=16 es 前言 es 暴露的端口很多 es 十分耗内 ...

  5. docker efk(filebeat+logstash+es+kibana)

    ​ 1.系统架构 ​ 通常我们说的elastic stack,也就是elk,通过es 收集日志数据,存到elasticsearch,最后通过kibana进行统计分析,但是elastic公司后续又推出了 ...

  6. docker-compose搭建单机多节点es + kibana

    docker-compose.yml配置如下: version: '2.2' services: elasticsearch: image: docker.elastic.co/elasticsear ...

  7. Spring Cloud全链路追踪实现(Sleuth+Zipkin+RabbitMQ+ES+Kibana)

    简介 在微服务架构下存在多个服务之间的相互调用,当某个请求变慢或不可用时,我们如何快速定位服务故障点呢?链路追踪的实现就是为了解决这一问题,本文采用Sleuth+Zipkin+RabbitMQ+ES+ ...

  8. SpringBoot支持SpringData es

    ElasticSearch CRUD 1.springboot springData es spring data 是spring对数据访问抽象.这些数据可以放入db,index,nosql等包含以下 ...

  9. 在SpringBoot中使用Docker(利用dockerfile-maven-plugin插件)

    周末在家做了一个实验: 将Docker通过插件的方式集成到SpringBoot中 然后通过Maven命令根据项目中的Dockerfile自动生成Docker镜像,同时将镜像推送到远程Linux服务器( ...

随机推荐

  1. 关于Google 圆角 高光 高宽 自适应 按钮

    最近看了张鑫旭老师关于Google搜索按钮的博客,感觉启示颇多.下面我就详说一下这个按钮的代码,由于W3C新版本的更新,之前的代码会有部分累赘, 在此,我做了些修改.当然,想观摩原版的可以,狠狠的戳链 ...

  2. 连接Redis后执行命令错误 MISCONF Redis is configured to save RDB snapshots

    今天在redis中执行setrange name 1 chun 命令时报了如下错误提示: (error) MISCONF Redis is configured to save RDB snapsho ...

  3. BZOJ_2006_[NOI2010]超级钢琴_贪心+堆+ST表

    BZOJ_2006_[NOI2010]超级钢琴_贪心+堆+ST表 Description 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的 音乐 ...

  4. 虚拟机console基础环境配置——安装VMware Tools

    1. 虚拟机设置中点击安装2. 虚拟机中挂载VMware Tools镜像3. 解压安装4. 配置共享目录5. 有关VMware Tools 1. 虚拟机设置中点击安装 VMware workstati ...

  5. springboot redis多数据源

    springboot中默认的redis配置是只能对单个redis库进行操作的. 那么我们需要多个库操作的时候这个时候就可以采用redis多数据源. 本代码参考RedisAutoConfiguratio ...

  6. Chapter1:基础

    整本书的核心:语言的设计与实现 我们所看到的设计是显示的,语法定义的, 而实现是隐式的,决定了编译或运行时的行为. 了解设计的目的,可以推测实现的细节,也可以自己实现设计. 学习具体的实现,更充分的达 ...

  7. 我的微服务观,surging 2.0将会带来多大的改变

    Surging 自2017年6月16日开源以来,已收到不少公司的关注或者使用,其中既有以海克斯康超大型等外企的关注,也不乏深圳泓达康.重庆金翅膀等传统行业的正式使用,自2019年年初,surging2 ...

  8. Android编译自己的程序到/system/bin

    背景 有时候我们想创建一个程序,放在系统中,供其他APP执行.我们知道,在生成system.img的时候,编译系统会将out/target/product/[product]/system/bin目录 ...

  9. Java8新特性之三:Stream API

    Java8的两个重大改变,一个是Lambda表达式,另一个就是本节要讲的Stream API表达式.Stream 是Java8中处理集合的关键抽象概念,它可以对集合进行非常复杂的查找.过滤.筛选等操作 ...

  10. [Leetcode]724. Find Pivot Index

    Given an array of integers nums, write a method that returns the "pivot" index of this arr ...