所需环境
CentOS 7
服务器一台(云主机或虚拟机均可)- 在
CentOS 7
提前安装Docker
环境且能够连接网络(下载镜像需要网络)
安装Elasticsearch
搜索
Elasticsearch
镜像1
docker search elasticsearch
不建议使用最新版本,我这里下载6.6.1版本,和我另一篇文章中使用的版本一致。
拉取镜像
1
docker pull elasticsearch:6.6.1
国内下载镜像速度有点感人,耐心等待。。
创建用户定义的网络(用于连接到同一网络的其他服务,例如Kibana):
1
docker network create somenetwork
创建容器
需要在Docker宿主机创建
elasticsearch
配置文件挂载到容器中,方便修改配置。1
vim /etc/elasticsearch.yml
文件内容:
1
2
3
4cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 允许任何端口访问
transport.host: 0.0.0.0启动创建容器
1
docker run -di --name=myelasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /etc/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:6.6.1
查看是否成功运行
1
docker ps
成功运行如下:
页面访问elasticsearch
如果得到下面类似返回,说明启动成功。
以后修改配置文件后,重启
docker
容器即可。1
2重启elasticsearch容器
docker restart myelasticsearch安装ik分词器
1
2
3
4进入容器
docker exec -it myelasticsearch /bin/bash
运行安装命令
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.1/elasticsearch-analysis-ik-6.6.1.zip安装完毕后重启
elasticsearch
容器即可。测试ik分词器
安装Logstash
拉取
logstash
镜像注意:这里需要从elasitc官方镜像库拉取镜像哦,docker hub上的镜像我试的时候是不可用的,不知道是什么原因。
1
2
3
4docker pull docker.elastic.co/logstash/logstash:6.6.2
如果拉取速度过慢,可以拉取我传到docker hub上的镜像
与官方6.6.2的镜像是一致的
docker pull docker.io/imxushuai/logstash:6.6.2创建容器
1
docker run --rm -di docker.elastic.co/logstash/logstash:6.6.2
查看容器ID
1
docker ps
将容器中的配置文件复制到宿主机
1
2
3
4
5
6创建用于存放配置的目录
mkdir -p /etc/logstash
复制配置文件,冒号前面为容器ID
docker cp d7405af81c00:/usr/share/logstash/config /etc/logstash/config/
复制logstash管道文件
docker cp d7405af81c00:/usr/share/logstash/pipeline /etc/logstash/pipeline重新创建容器,并挂载上面两个文件夹
1
2
3
4
5
6停止原有容器,否则无法删除
docker stop d7405af81c00
删除原有容器,使用容器ID删除
docker rm d7405af81c00
创建新容器并挂载目录
docker run -di --name=mylogstash -v /etc/logstash/config:/usr/share/logstash/config -v /etc/logstash/pipeline:/usr/share/logstash/pipeline docker.elastic.co/logstash/logstash:6.6.2使用时只需要将
/etc/logstash/pipeline/logstash.conf
替换为要执行的输入输出,重启容器即可。日志查看(排错必备)
1
2logstash运行也需要一些时间,日志会持续打印
docker logs -f --tail=30 mylogstash插件安装需要进入容器内部
1
2
3
4
5
6进入容器
docker exec -it mylogstash bash
进入logstash的bin目录
cd /usr/share/logstash/bin
安装插件,我这里的示例是安装的jdbc
./logstash-plugin install logstash-input-jdbc
安装Kibana
拉取镜像
1
docker pull kibana:6.6.1
启动容器
1
docker run -di -p 5601:5601 kibana:6.6.1
查看容器ID
1
docker ps
将容器中的配置文件复制到宿主机
1
2
3
4创建存放配置文件的目录
mkdir -p /etc/kibana
复制
docker cp 3286d9b5d6b4:/usr/share/kibana/config /etc/kibana/config重新创建容器,并挂载配置文件目录
1
2
3
4
5
6停止原有容器
docker stop 3286d9b5d6b4
删除原有容器
docker rm 3286d9b5d6b4
创建新容器
docker run -di --name=mykibana --net somenetwork -p 5601:5601 -v /etc/kibana/config:/usr/share/kibana/config kibana:6.6.1修改配置文件
1
2修改kibana配置文件
vim /etc/kibana/config/kibana.yml修改后的配置文件内容如下:
1
2
3
4
5
6server.name: kibana
# 允许所有地址访问
server.host: "0.0.0.0"
# elasticsearch的地址
elasticsearch.url: http://192.168.136.104:9200
xpack.monitoring.ui.container.elasticsearch.enabled: true重启kibana
1
docker restart mykibana
访问测试
我事先在
elasticsearch
中新增了名为test
的索引库,成功查询到test
索引库。