Docker 搭建 ElasticSearch、Kibana 以及基础使用

这篇具有很好参考价值的文章主要介绍了Docker 搭建 ElasticSearch、Kibana 以及基础使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、介绍

Elasticsearch: 权威指南 | Elastic

二、使用Docker 搭建ES以及Kibana环境

拉取ES以及Kibana镜像:

// es和kibana保持一致,这里选择7.8.1版本
docker pull elasticsearch:7.8.1
docker pull kibana:7.8.1

ES部分搭建:

创建目录、配置文件、其他配置以及启动

docker kibana,elasticsearch,docker,java

1、目录部分:

// 创建配置项目录
-p ES/config
cd ES

// 创建数据存储目录
mkdir data1
mkdir data2
mkdir data3

// 这里是7.8.1版本,所以需要开启data1 data2 data3 777权限
chmod 777 data1 data2 data3

2、端口部分:

// 开启防火墙端口 
firewall-cmd --add-port=9300/tcp
firewall-cmd --add-port=9301/tcp
firewall-cmd --add-port=9302/tcp

3、配置文件创建

// 使用vim命令分别创建es1.yml、es2.yml、es3.yml配置

// es1
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 宿主机IP
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["宿主机IP:9300","宿主机IP","宿主机IP:9302"]
discovery.zen.minimum_master_nodes: 2

// 指定主节点,可选择性配置
cluster.initial_master_nodes: es-node1

// es2
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 宿主机IP
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["宿主机IP:9300","宿主机IP","宿主机IP:9302"]
discovery.zen.minimum_master_nodes: 2

// es3
cluster.name: elasticsearch-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 宿主机IP
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["宿主机IP:9300","宿主机IP","宿主机IP:9302"]
discovery.zen.minimum_master_nodes: 2

4、其他注意事项

// 由于ES运行时有内存不足的问题,这里需要增加虚拟机的预设内存
vim /etc/sysctl.conf
// 加入配置
vm.max_map_count=262144
// 启用配置
sysctl -p

5、启动容器

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /home/soft/ES/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/soft/ES/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch:7.8.1

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /home/soft/ES/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/soft/ES/data2:/usr/share/elasticsearch/data --name ES02 elasticsearch:7.8.1

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9202:9202 -p 9302:9302 -v /home/soft/ES/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/soft/ES/data3:/usr/share/elasticsearch/data --name ES03 elasticsearch:7.8.1

访问http://宿主机IP:9200/_cat/nodes?pretty

节点名称带表示为主节点*,这里作示范仅启动2个容器

docker kibana,elasticsearch,docker,java

Kibana部分搭建:

创建目录、配置文件、其他配置以及启动

docker kibana,elasticsearch,docker,java

 1、配置文件创建

// 目录、配置文件创建同ES,不再进行说明

// kibana.yml配置

server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://宿主机IP:9200"]

2、启动容器

docker run --name kibana --link=ES01:ES01 --privileged=true -p 5601:5601  -v /home/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml -d kibana:7.8.1

访问Elastichttp://宿主机IP:5601/app/kibana#/homeElastic

三、Kibana基本使用

点击控制台进行基本使用 

docker kibana,elasticsearch,docker,java

新增

docker kibana,elasticsearch,docker,java

 查询

docker kibana,elasticsearch,docker,java

其他使用可参考 ES基础语法整理

Es基础语法整理_es 语法_Q z1997的博客-CSDN博客

四、ES基本使用

添加依赖

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>7.8.1</version>
</dependency>

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>7.8.1</version>
</dependency>

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.8.1</version>
</dependency>

测试类

public class ESTest {


    @Test
    public void testCreateIndex() throws IOException {
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("124.222.24.128", 9200, "http")));

        // 创建索引请求
        CreateIndexRequest request = new CreateIndexRequest("my_test");
        // 客户端执行请求IndicesClient,执行create方法创建索引,请求后获得响应
        CreateIndexResponse response=
                client.indices().create(request, RequestOptions.DEFAULT);
        System.out.println(response);
    }

    @Test
    public void testExistIndex() throws IOException {
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("124.222.24.128", 9200, "http")));

        // 查询索引请求
        GetIndexRequest request = new GetIndexRequest("hotel");
        // 执行exists方法判断是否存在
        boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
        System.out.println(exists);
    }

    @Test
    public void testDeleteIndex() throws IOException {
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("124.222.24.128", 9200, "http")));

        // 删除索引请求
        DeleteIndexRequest request=new DeleteIndexRequest("my_test");
        // 执行delete方法删除指定索引
        AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);
        System.out.println(delete.isAcknowledged());
    }


    @Test
    public void testSearch() throws IOException {
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("124.222.24.128", 9200, "http")));
        SearchRequest searchRequest = new SearchRequest("hotel"); //里面可以放多个索引
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); //构造搜索条件

        // 此处可以使用QueryBuilders工具类中的方法
        // 查询所有
        sourceBuilder.query(QueryBuilders.matchAllQuery());
        // 查询city中含有青岛的
        sourceBuilder.query(QueryBuilders.multiMatchQuery("青岛","city"));
        // 分页查询
        sourceBuilder.from(0).size(5);
        // 按照score正序排列
        sourceBuilder.sort(SortBuilders.scoreSort().order(SortOrder.ASC));

        searchRequest.source(sourceBuilder);
        SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

        // 获取总条数
        System.out.println(searchResponse.getHits().getTotalHits().value);
        // 输出结果数据(如果不设置返回条数,大于10条默认只返回10条)
        SearchHit[] hits = searchResponse.getHits().getHits();
        for (SearchHit hit : hits) {
            Map<String,Object> source = hit.getSourceAsMap();
            System.out.println("index->" + hit.getIndex());
            System.out.println("id->" + hit.getId());
            for(Map.Entry<String, Object> s:source.entrySet()){
                System.out.println(s.getKey() + "--" + s.getValue());
            }
        }
    }
}

创建

docker kibana,elasticsearch,docker,java

查询

docker kibana,elasticsearch,docker,java

 删除

docker kibana,elasticsearch,docker,java

综合查询

docker kibana,elasticsearch,docker,java

docker kibana,elasticsearch,docker,java

五、ES复杂查询以及封装

持续更新,敬请期待文章来源地址https://www.toymoban.com/news/detail-763370.html

到了这里,关于Docker 搭建 ElasticSearch、Kibana 以及基础使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)

    ELK 是指 Elasticsearch、Logstash 和 Kibana 这三个开源软件的组合。 Elasticsearch 是一个分布式的搜索和分析引擎,用于日志的存储,搜索,分析,查询。 Logstash 是一个数据收集、转换和传输工具,用于收集过滤和转换数据,然后将其发送到 Elasticsearch 或其他目标存储中。 Kibana 是一个数

    2024年01月20日
    浏览(54)
  • Docker搭建elasticsearch+kibana测试

    最近需要做大数据画像,所以先简单搭建一个es+kibana学习使用,记录一下搭建过程和遇到的问题以及解决办法 1.拉取es和kibana镜像 在拉取镜像之前先搜索一下 elasticsearch 发现是存在elasticsearch镜像的,我一般习惯性拉取最新镜像,这一次拉取了8.8.0也是比较新的镜像了 同样的

    2024年02月11日
    浏览(32)
  • 利用docker compose 搭建 elasticsearch 和kibana

    本文介绍了从docker compose 搭建 elasticsearch 并安装IK 分词插件,然后再用kibana测试的详细步骤。 1.1 下载镜像 1.2 下载IK分词插件 从官方网站 Releases · medcl/elasticsearch-analysis-ik · GitHub 下载对应版本的分词插件,因为我们的 elasticsearch 为 7.17.1 所以下载 elasticsearch-analysis-ik-7.17.1.z

    2024年02月11日
    浏览(42)
  • docker 搭建 Elasticsearch和Kibana 8.x版本

    参考: docker入门:单机elasticsearch安装记录,保证无坑_8月日更_小鲍侃java_InfoQ写作社区 同上文所述相同,需要在宿主机上挂载配置文件与数据文件。 xpack.security 配置后,elasticsearch 需要账号密码使用,建议安排上。如果使用 springboot 查询,那一定要设置,否者会报错! 可以跳

    2024年02月03日
    浏览(41)
  • Docker安装ElasticSearch、Kibana、IK分词器以及设置ES账户密码

    版本声明: 系统 :CentOS 7.9(云服务器) ES版本 :7.6.1 Kibana :7.6.1 Ik分析器版本 :7.6.1 1、拉取镜像 2、创建挂载目录 设置所有用户读写执行权限 : sudo chmod -R 777 /docker_config/elasticsearch/ 3、创建elasticsearch.yml 配置文件 4、创建容器 参数说明 : -p 端口映射 -e discovery.type=single

    2023年04月09日
    浏览(71)
  • 【docker】使用docker安装部署elasticsearch+Kibana

    elasticsearch安装之后,十分消耗内存资源,需要手动配置限制内存大小。 elasticsearch和Kibana安装时,版本号需要一致。 本实验采用的Linux系统是 CentOS Linux release 7.9.2009 (Core) ,docker版本是 20.10.14 elasticsearch和kibana版本都是 8.2.0 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分

    2024年02月02日
    浏览(53)
  • docker-compose 搭建 elasticsearch8.2.0 + kibana 8.2.0

    最近研究es,搭建环境的时候发现网上的很多文档大部分都是用来记录自己操作的,不过中间还是出现了很多问题,单独的文档还不能解决这些问题。我决定记录下来中间发生的问题,还有解决方案。还有在windows上docker-compose搭建的,原理一样不过不好操作中间很多问题可能和

    2024年02月03日
    浏览(53)
  • 使用 Docker Compose 部署 Elasticsearch + Kibana

    本篇文章主要介绍了使用 Docker Compse 部署 Elasticsearch + Kibana,并整合到 Spring Boot 项目中的详细步骤。 Elasticsearch + Kibana 版本: 7.17.0(7 的最新版本);Spring Boot 版本:2.7.5 。 Kibana 官方文档、Elasticsearch官方文档 在 config 目录下,编写 elasticsearch.yml 配置文件,内容如下。 在 ki

    2024年02月06日
    浏览(47)
  • Linux 中使用 Docker 安装 Elasticsearch 及 Kibana

    查看当前运行的镜像及本地已经下载的镜像,确认之前没有安装过 ES 和 Kibana 镜像 从远程镜像仓库拉取 ES 镜像到本地 从远程镜像仓库拉取 Kibana 镜像到本地 查看本地仓库中的镜像 查看内存空间使用情况 创建后续挂载的文件夹 添加 elasticsearch.yml 配置 修改 /mydata/elasticsearch

    2024年04月16日
    浏览(53)
  • docker搭建最新ELFK分布式日志收集系统(elasticsearch+logstash+filebeats+kibana7.16.1)

    随着分布式项目的集群部署,日志的存储也分散开来,在日后出现问题进行日志定位时就会出现很困难,服务器很多会做负载均衡,这样最终请求所落在的服务器也随机起来,所以好的方式就是集中收集起来,不需要一台一台服务器去查,方便查看。 ELFK是Elasticsearch+Logstash+F

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包