目录导航
为什么使用docker容器部署这些应用
什么是docker
docker安装
elasticsearch安装
什么是elasticseach
安装步骤
安装kibana
什么是kibana
安装步骤
安装ik分词器插件
安装elasticsearch-head插件
参考文献
为什么使用docker容器部署这些应用
什么是docker
docker是一种容器技术,可对软件运行环境进行封装,docker容器和虚拟机模型类似,区别在于容器的运行不会独占操作系统,适应了云计算时代按需配置资源的模式。docker容器具有以下优势:
节省系统资源:运行在同一宿主机上的容器共享一个操作系统,从而节省大量系统资源(CPU、RAM、存储等); 轻量级、启动快、可移植:容器可以方便地在不同环境之间迁移,从本地迁移到云端,从物理机迁移到虚拟机等。
Linux平台是Docker原生支持平台,在Linux上使用Docker可以得到最佳的用户体验,本文的安装环境为 Ubuntu18.04虚拟机。
docker安装
1、首先对虚拟机做一些基本的配置。
输入
ifconfig
查看虚拟机ip地址,我的ip是192.168.160.128
在虚拟机内安装open-ssh服务,开启远程访问。输入如下命令:
sudo apt-get install openssh-server
安装后就可以使用远程终端工具对虚拟机进行操作了,我这里使用的是WindTerm(https://github.com/kingToolbox/WindTerm/releases/tag/2.1),一个比Xshell更好用的工具,后面会继续出文章介绍如何使用WindTerm。
关闭Ubuntu的防火墙
sudo ufw disable
2、接下来就可以进入docker的安装了。
安装apt依赖包
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加 Docker 的官方 GPG 密钥,并设置稳定版仓库
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装docker的三个包
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
检查安装情况

设置docker随系统自动启动
systemctl enable docker.service
elasticsearch安装
什么是elasticseach
elasticsearch是一款分布式的全文本搜索和分析引擎,可以在其基础上构建搜索和分析应用。现在越来越多的IT公司都采用Elasticsearch进行数据处理,包括GitHub,其代码搜索程序就是基于Elasticsearch。
安装步骤
切换到管理员账户,这样可以省去每次输入命令时都需要输入sudo的麻烦,同时也避免后续配置容器挂载目录的权限问题。如果未配置过root密码,使用 sudo passwd root
设置密码,再通过su命令切换到root账户。下载Elasticsearch镜像,去官方镜像网站(https://www.docker.elastic.co/r/elasticsearch)选择需要的版本,我这里下的是7.13.4版本
docker pull elasticsearch:7.13.4
docker images 查看下载镜像

创建一个自定义的网络,用于后续连接到该网络下的其他服务,比如kibana。
docker network create esnet
运行elasticsearch容器,单节点版本,命令如下:
docker run -d --name es \
-p 9200:9200 -p 9300:9300 \
--net esnet \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
elasticsearch:7.13.4
其中es为容器名,-p指定web应用的访问端口,最后一行表示创建容器所使用的镜像版本。
查看正在运行的容器状态,输入 docker ps

输入curl '127.0.0.1:9200',查看es容器是否启动成功。

修改elasticsearch配置文件,设置成可通过局域网访问。首先进入es容器,输入
docker exec -it es /bin/bash
再修改elasticsearch.yml文件
vi config/elasticsearch.yml
在文件末尾添加两行内容,保存。
http.cors.enabled: true
http.cors.allow-origin: "*"
输入 exit
退出容器,再输入docker restart es
重启容器。打开宿主机浏览器页面,输入“虚拟机ip:9200”,比如我这里是192.168.160.128:9200,浏览器页面出现如下内容,表示安装成功。

安装kibana
什么是kibana
kibana是与elasticsearch协同工作的开源数据可视化分析平台,可以在各种统计图、表格和地图中执行高级数据分析和数据可视化。
安装步骤
kibana版本要保持和Elasticsearch一致,这里也采用7.13.4版本。
拉取kibana镜像
docker pull kibana:7.13.4
查看下载镜像

运行kibana容器,容器名为kibana,通过刚刚创建的esnet网络连接到正在运行的es实例。
docker run -d --name kibana \
--net esnet \
-p 5601:5601 \
kibana:7.13.4
复制docker容器内的配置kibana.yml文件到虚拟机主机
docker cp kibana:/usr/share/kibana/config/kibana.yml .
修改kibana.yml文件,修改内容如下:
server.name: "kibana"
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://192.168.160.128:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
其中,192.168.160.128是我的虚拟机ip,也就是elasticsearch的web端所在地址,用户在配置时需要根据自己的实际情况修改ip地址。
将修改后的文件复制到kibana容器内的config文件夹
docker cp kibana.yml kibana:/usr/share/kibana/config/
修改完成后,重启kibana容器 docker restart kibana
。等待30秒,打开浏览器页面,在网址栏输入“虚拟机ip:5601”(我这里是192.168.160.128:5601),若出现如下界面,表示kibana安装成功。

安装ik分词器插件
ik分词器插件集成于elasticsearch,可实现中文的职能分词。ik分析器的版本必须要和elasticsearch的版本保持一致,这里同样使用7.13.4,下载地址(https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.13.4),这里采用安装包安装的方式。
将下载的安装包复制到Ubuntu虚拟机,再从虚拟机复制到es容器内/usr/share/elasticsearch/文件夹:
docker cp elasticsearch-analysis-ik-7.13.4.zip es:/usr/share/elasticsearch/
docker exec -it es /bin/bash
进入es容器,进入到/usr/share/elasticsearch/plugins/目录,输入安装命令:
elasticsearch-plugin install file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.13.4.zip
elasticsearch-plugin list
查看已安装插件。退出容器并重启es。

安装elasticsearch-head插件
elasticsearch-head是一款基于web端的elasticsearch集群管理工具,可以方便的实现数据可视化,以及对elasticsearch集群数据的增删改查。
拉取head插件镜像,创建容器并运行,端口号设置为为9100。
docker pull mobz/elasticsearch-head:5
docker run -d --name es-head -p 9100:9100 --net esnet mobz/elasticsearch-head:5

打开宿主机浏览器页面,输入“虚拟机ip:9100”,比如我这里是192.168.160.128:9100,打开后如果出现以下界面,无法连接到elasticsearch的地址,此时需要重新配置一下elasticsearch.yml文件。

输入 docker exec -it es /bin/bash
进入es容器,vi config/elasticsearch.yml
修改配置文件,追加两行内容:
http.cors.enabled: true
http.cors.allow-origin: "*"
退出容器并重启,此时在浏览器中再次输入“虚拟机ip:9100”,出现如下界面,表示安装成功,可以查看集群健康值。

同样可以在命令行中查看集群节点的健康情况,在命令行输入:
curl -X GET "localhost:9200/_cat/health?v"

绿色表示健康,由于安装的是单机版,只有1个节点。
参考文献
2020-02-29 ubuntu Docker 安装 ElasticSearch-简书(https://www.jianshu.com/p/f63440680ded) Docker 安装 ElasticSearch 和 Kibana (https://blog.csdn.net/qq_34814092/article/details/116211023) 《大数据搜索与挖掘及可视化管理方案 :Elastic Stack 5:Elasticsearch、Logstash、Kibana、X-Pack、Beats (第3版)》高凯




