云原生系列docker篇【09-docker安装es】


一、简介

  • 本文介绍docker安装es和elasticsearch-head和kibana监控es;

二、安装es

2.1 创建数据卷目录

mkdir -p /home/yss/docker/volumns/es/{conf,data,plugins}
chmod 777 /home/yss/docker/volumns/es/data

2.2 创建elasticsearch.yml配置文件

vim /home/yss/docker/volumns/es/conf/elasticsearch.yml


cluster.name: elasticsearch-cluster
# 节点名称
node.name: elasticsearch-node1
# # 绑定host,0.0.0.0代表当前节点的ip
network.host: 0.0.0.0
# # 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip),因为我使用的是docker启动,不是简单127.0.0.1,要查看具体分配的ip
network.publish_host: 172.16.0.83
# # 设置对外服务的http端口,默认为9200
http.port: 9200
# # 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# # 是否支持跨域,默认为false
http.cors.enabled: true
# # 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
# # 表示这个节点是否可以充当主节点
node.master: true
# # 是否充当数据节点
node.data: true
# # 所有主从节点ip:port
discovery.seed_hosts: ["172.16.0.83:9300"]
# # 这个参数决定了在选主过程中需要 有多少个节点通信  预防脑裂
discovery.zen.minimum_master_nodes: 1
# 跨域允许设置的头信息,默认为X-Requested-With,Content-Type,Content-Lengt              
http.cors.allow-headers: Authorization
# 这条配置表示开启xpack认证机制,使用密码登录                
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

2.3 使用官方镜像后台启动

docker run -d \
--restart=always \
--name yss_es_01 \
-p 9200:9200 \
-p 9300:9300 \
-v /home/yss/docker/volumns/es/data:/usr/share/elasticsearch/data \
-v /home/yss/docker/volumns/es/plugins:/usr/share/elasticsearch/plugins \
-v /home/yss/docker/volumns/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
-e "discovery.type=single-node"  \
docker.io/elasticsearch:7.11.1

2.4 访问ip:9200端口

2.5 设置各种密码

docker exec -it yss_es_01 /bin/bash
cd /usr/share/elasticsearch/bin/
./elasticsearch-setup-passwords interactive

2.6 重启再登录需要密码

  • 账号:elastic, 密码是你设置的密码,输入后就是正常的数据

2.7 安装IK分词器

docker exec -it yss_es_01 /bin/bash
cd /usr/share/elasticsearch/bin/
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.11.1/elasticsearch-analysis-ik-7.11.1.zip
exit
docker restart yss_es_01

三、安装elasticsearch-head

3.1 运行镜像容器

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

3.2 验证 【TODO 带密码访问】

  • 访问连接IP:9100查看控制台

四、安装kibana的es界面

4.1 创建数据卷目录

mkdir -p /home/yss/docker/volumns/kibana/conf
chmod 777 /home/yss/docker/volumns/kibana/conf
cd /home/yss/docker/volumns/kibana/conf

4.2 创建kibana.yml配置文件

vim /home/yss/docker/volumns/kibana/conf/kibana.yml


server.name: kibana
# kibana的主机地址 0.0.0.0可表示监听所有IP
server.host: "0.0.0.0"
# kibana访问es的URL
elasticsearch.hosts: [ "http://172.16.0.83:9200" ]
#这里是在elasticsearch设置密码时的值
elasticsearch.username: 'elastic'
elasticsearch.password: '123456'
# # 显示登陆页面
xpack.monitoring.ui.container.elasticsearch.enabled: true
# # 语言
i18n.locale: "zh-CN"

4.3 使用官方镜像后台启动

docker run -d \
--restart=always \
--name yss_kibana_01 \
--privileged=true \
-p 5601:5601 \
-v /home/yss/docker/volumns/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml \
docker.io/kibana:7.11.1 

4.4 访问ip:5601端口