docker运行elasticsearch+kibana+head集群全过程

 更新时间:2026年03月23日 09:46:24   作者:醉卧码场君莫笑  
这篇文章主要介绍了docker运行elasticsearch+kibana+head集群全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

概述

安装环境以及版本

  • Elasticsearch:6.6.0
  • kibana:6.5.3
  • logstash:6.2.4
  • elasticsearch-head:5

巨坑提醒

ES和kibana的版本尽可能的保证一致,否则要去修改很多配置信息,而且不一定能安装成功,现象:ES安装成功了但是kibana链接到ES报错:

Elasticsearch plugin is red

ElasticSearch安装

Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

1.拉取镜像

docker pull elasticsearch:6.6.0

下载需要一段时间,完毕后可以查看镜像

docker images

2.启动容器

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.6.0
  • -d: 后台运行容器,并返回容器ID;
  • –name es: 为容器指定一个名称为es;
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口;
  • -e discovery.type=single-node: 设置环境变量,正在使用单个节点开发,避开引导检查;

ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为es

3.配置跨域

进入容器

docker exec -it es /bin/bash
  • -i :即使没有附加也保持STDIN 打开
  • -t :分配一个伪终端
  • es :容器名称/容器ID

修改 elasticsearch.yml

# 显示文件
ls
结果如下:
LICENSE.txt  README.textile  config  lib   modules
NOTICE.txt   bin             data    logs  plugins
cd config
# 修改配置文件
vi elasticsearch.yml

elasticsearch.yml 新增如下代码:

# 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"

4.安装中文分词器

下载安装中文分词器,分词器的版本最好跟你的es版本一致

/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip

退出容器.重启es

exit

5.重启容器

docker restart es

6.访问测试

http://localhost:9200/

显示效果如下就成功了

{
  "name" : "SJ4VjWi",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "CIsOgErHSLGVDxHTzVNesw",
  "version" : {
    "number" : "6.6.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "a9861f4",
    "build_date" : "2019-01-24T11:27:09.439740Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

ElasticSearch-Head安装

安装kibana可以不安装这个容器,作用:视图化ElasticSearch,管理界面进行查看ElasticSearch相关信息

1.拉取镜像

docker pull mobz/elasticsearch-head:5

2.启动容器

docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

3.访问测试

http://localhost:9100/

显示效果如下就成功了

创建索引报错406

解决方案:

docker exex -it 容器id /bin/bash
apt-get update
apt-get install vim
vim _site/vendor.js
1. 6886行 /contentType: "application/x-www-form-urlencoded 
    改成 contentType: "application/json;charset=UTF-8" 
2. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded"
    改成 var inspectData = s.contentType === "application/json;charset=UTF-8" 
exit
docker restart 容器id

logstash安装

Logstash 是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用

1.拉取镜像

docker pull docker.elastic.co/logstash/logstash:6.2.4

2.启动容器

docker run --name es_logstash docker.elastic.co/logstash/logstash:6.2.4

3.修改logstash.yml文件

进入容器:

docker exec -it es_logstash /bin/bash

进入目录cd config ,打开并修改配置文件

vi logstash.yml

修改内容为:

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: http://192.168.0.104:9200
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changme

注意,一定是宿主机的IP4地址。xpack.monitoring.elasticsearch.url: http://192.168.0.104:9200

4. 修改pipeline下的logstash.conf文件

cd ../pipeline
vi logstash.conf

修改内容如下:

#原来的
#========================================
#input {
#  beats {
#    port => 5044
#  }
#}

#output {
#  stdout {
#    codec => rubydebug
#  }
#}
#========================================
#添加的部分
input {
        file {
            codec=> json
                path => "/usr/local/*.json"
        }
}
filter {
  #定义数据的格式
  grok {
    match => { "message" => "%{DATA:timestamp}\|%{IP:serverIp}\|%{IP:clientIp}\|%{DATA:logSource}\|%{DATA:userId}\|%{DATA:reqUrl}\|%{DATA:reqUri}\|%{DATA:refer}\|%{DATA:device}\|%{DATA:textDuring}\|%{DATA:duringTime:int}\|\|"}
  }
}
output {
   elasticsearch{
     hosts=> "http://192.168.0.104:9200"
   }
}

注意,一定是宿主机的IP4地址, hosts=> “http://192.168.0.104:9200”

安装kibana

kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志

1.拉取镜像

docker pull kibana:6.5.3

2.启动容器

docker run --name es_kibana -p 5601:5601 -d -e ELASTICSEARCH_URL=http://192.168.2.153:9200 kibana:6.5.3

3.访问测试

http://localhost:5601/

显示效果如下就成功了

报错 “Kibana server is not ready yet”

原因:kibana版本与ES的版本不兼容

解决方案:统一kibana版本与ES的版本 或 kibana版本低于ES的版本

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 优化docker镜像体积的方法详解

    优化docker镜像体积的方法详解

    镜像的本质是镜像层和运行配置文件组成的压缩包,构建镜像是通过运行 Dockerfile 中的 RUN 、COPY 和 ADD 等指令生成镜像层和配置文件的过程,本文给大家介绍了如何优化 docker 镜像体积,需要的朋友可以参考下
    2025-03-03
  • Docker exec 的实现原理介绍

    Docker exec 的实现原理介绍

    这篇文章主要介绍了Docker exec的实现原理,详细解读了docker exec这个操作背后,Linux Namespace更具体的工作原理,这种通过操作系统进程相关的知识,逐步剖析Docker容器的方法,需要的朋友可以参考一下
    2022-04-04
  • Dockerfile建立一个自定义的镜像执行自定义进程详细过程

    Dockerfile建立一个自定义的镜像执行自定义进程详细过程

    这篇文章主要介绍了Dockerfile建立一个自定义的镜像执行自定义进程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • centos6使用docker部署kafka项目的方法分析

    centos6使用docker部署kafka项目的方法分析

    这篇文章主要介绍了centos6使用docker部署kafka项目的方法,结合实例形式分析了centos6环境下使用docker部署kafka项目的相关命令与使用技巧,需要的朋友可以参考下
    2020-02-02
  • Docker环境下快速部署Ollama与Open-WebUI的详细指南

    Docker环境下快速部署Ollama与Open-WebUI的详细指南

    在本篇文章中,我们将深入探讨如何在Docker中高效部署 Ollama 和 Open-WebUI,并解决在实际使用中常见的问题,有需要的小伙伴可以跟随小编一起学习一下
    2026-03-03
  • 如何使用Docker部署Go Web应用的实现

    如何使用Docker部署Go Web应用的实现

    这篇文章主要介绍了如何使用Docker部署Go Web应用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Docker安装部署rocketmq-console工具教程

    Docker安装部署rocketmq-console工具教程

    这篇文章主要介绍了Docker安装部署rocketmq-console工具教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Docker镜像指南之从核心命令到离线迁移实战

    Docker镜像指南之从核心命令到离线迁移实战

    Docker镜像为只读分层文件,包含应用及依赖,通过联合文件系统实现高效共享和构建,其不可变特性确保跨环境一致性,简化标准化交付,提升部署效率,支持离线迁移,接下来通过本文给大家介绍Docker镜像指南之从核心命令到离线迁移实战,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • 通过提前bake Docker镜像加快基础设施的启动速度

    通过提前bake Docker镜像加快基础设施的启动速度

    这篇文章主要介绍了通过提前bake Docker镜像加快基础设施的启动速度的相关资料,需要的朋友可以参考下
    2017-01-01
  • docker容器下配置jupyter notebook的操作

    docker容器下配置jupyter notebook的操作

    这篇文章主要介绍了docker容器下配置jupyter notebook的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03

最新评论