Docker 部署ElasticSearch + Kibana

2.1 安装ElasticSearch

2.11 Windows安装

声明:JDK1.8 ,最低要求! ElasticSearch 客户端,界面工具!官网:Free and Open Search: The Creators of Elasticsearch, ELK & Kibana | Elastic

下载地址:https://www.elastic.co/cn/downloads/elasticsearch 官网下载巨慢,FQ,网盘中下载即可!

Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat)

Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat) - 万能付博 - 博客园

Docker部署ElasticSearch以及使用 - 风不辞 - 博客园

rabbitmq:安装基于 Docker 安装 RabbitMQ - 应用笔记 - php中文网博客

1.下载完解压就可以使用了!

Docker 部署ElasticSearch + Kibana_第1张图片

2.目录结构

Docker 部署ElasticSearch + Kibana_第2张图片

3.启动,访问9200;

kibana启动同上述操作一样,不在赘述。

2.12 Docker安装

1.下载镜像

docker pull elasticsearch:7.6.2

2.创建挂载的目录

mkdir -p /mydata/elasticsearch/config 
mkdir -p /mydata/elasticsearch/data 
#echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml BUG

坑记录:

docker部署elasticsearch报错None of the configured nodes are available处理

之前一直都是通过yum安装es,最近使用docker-compose部署了一个单节点es,java调用9300端口的时候,总是报错:None of the configured nodes are available,网上找了很多文档,都说cluster.name不一致导致,或者端口不正确,但是程序和es的name都是一致,端口也是正确的。

都有点想放弃的时候,终于找到一篇有用的文章,被坑了两周的问题,终于得到了解决。

主要原因:spring-boot项目中使用了client.transport.sniff为true,使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中。这样做的好处是,一般你不用手动设置集群里所有集群的ip到连接客户端,它会自动帮你添加,并且自动发现新加入集群的机器。

处理方式:

1、把client.transport.sniff修改为false关闭嗅探;或者直接使用addTransportAddress方法把集群中其它机器的ip地址加到客户端中。

2、修改ES服务器配置,将publish_host改为服务器的ip而不是docker分配的内部IP

elasticsearch.yml

cluster.name: elasticsearch
network.host: 0.0.0.0
network.publish_host: 192.168.1.200
http.port: 9200
discovery.type: single-node

3.创建容器并启动

docker run --name elasticsearch \
-p 9200:9200 -p 9300:9300  \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.2

其中elasticsearch.yml是挂载的配置文件,data是挂载的数据,plugins是es的插件,如ik,而数据挂载需要权限,需要设置data文件的权限为可读可写,需要下边的指令。

chmod -R 777 要修改的路径 -e "discovery.type=single-node" 设置为单节点

特别注意: -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \ 测试环境下,设置ES的初始内存和最大内存,否则导致过大启动不了ES

4.Kibana启动

docker pull kibana:7.6.2

docker run --name kibana -d -p 5601:5601 --link es -e "ELASTICSEARCH_URL=http://119.91.71.164:9200" kibana:6.8.18

--link 自定义容器的名字:es

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://自己的IP地址:9200 -p 5601:5601 -d kibana:7.6.2
//docker run --name kibana -e ELASTICSEARCH_URL=http://自己的IP地址:9200 -p 5601:5601 -d kibana:7.6.2

vi /opt/kibana/config/kibana.yml
进入容器修改相应内容
server.port: 5601
server.host: 0.0.0.0
elasticsearch.hosts: [ "http://自己的IP地址:9200" ]
i18n.locale: "Zh-CN"


然后访问页面
http://自己的IP地址:5601/app/kibana

你可能感兴趣的:(后,elasticsearch,docker)