Docker安装Elasticsearch相关软件安装
本文将介绍通过 Docker 的方式安装 Elasticsearch 相关的软件。
1、Docker安装Elasticsearch
1.1 搜索镜像
$ docker search elasticsearch
$ docker search elasticsearch:7.12.1
1.2 拉取镜像
$ docker pull elasticsearch:7.12.1
1.3 创建挂载目录
$ mkdir -p /home/zhangshixing/es/{config,data,logs}
1.4 赋予权限
$ chown -R 1000:1000 /home/zhangshixing/es
1.5 创建配置文件
$ cd /home/zhangshixing/es/config
$ touch elasticsearch.yml
$ vim elasticsearch.yml
# 配置内容
cluster.name: "my-es"
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.enabled: true
:此步为允许elasticsearch跨域访问,默认是false。
http.cors.allow-origin: "*"
:表示跨域访问允许的域名地址(*表示任意)。
1.6 启动 elasticsearch 容器
# 9200端口(Web管理平台端口),9300(服务默认端口)
$ docker run -it -d -p 9200:9200 -p 9300:9300 --name es -e ES_JAVA_OPTS="-Xms1g -Xmx1g" -e "discovery.type=single-node" --restart=always -v /home/zhangshixing/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/zhangshixing/es/data:/usr/share/elasticsearch/data -v /home/zhangshixing/es/logs:/usr/share/elasticsearch/logs elasticsearch:7.12.1
–name:表示容器名称
-d:后台运行容器,并返回容器ID
-e:指定容器内的环境变量
-p:指定端口映射,格式为主机(宿主)端口:容器端口
1.7 测试
浏览器输入地址访问:http://192.168.2.186:9200/
如果启动失败可以通过docker logs -f 容器id
查看日志信息进行解决。
2、安装ElasticSearch-Head
2.1 搜索镜像
$ docker search elasticsearch-head
$ docker search mobz/elasticsearch-head:5
2.2 获取镜像
$ docker pull mobz/elasticsearch-head:5
2.3 创建容器
$ docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
2.4 启动
$ docker start 容器id
2.5 测试
3、IK分词器安装
IK分词器下载地址 https://github.com/medcl/elasticsearch-analysis-ik/releases
$ unzip elasticsearch-analysis-ik-7.12.1.zip
$ mv elasticsearch-analysis-ik-7.12.1 ik
$ docker cp ./ik es:/usr/share/elasticsearch/plugins
# 重启容器
$ docker restart 56359ee1a6f8
进行测试:
解决:
安装包路径下的 _site/vendor.js
6886行
contentType: "application/x-www-form-urlencoded",
改成
contentType: "application/json;charset=UTF-8",
7573行
var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
改成
var inspectData = s.contentType === "application/json;charset=UTF-8" &&
# 进入容器
$ docker exec -it a4a0678c53b8 /bin/bash
也可以不进入容器,在外面修改:
# 将容器中的配置文件复制到宿主机进行修改
$ docker cp 容器ID:/usr/src/app/_site/vendor.js /usr/local/
# 将宿主机中修改后的文件复制到容器中
$ docker cp /usr/local/vendor.js 容器ID:/usr/src/app/_site/
# 安装vim编辑器
$ apt-get update
$ apt-get install vim
然后进行修改文件,进行重新启动。
4、Kibana下载安装
4.1 查看镜像
$ docker search kibana
$ docker search kibana:7.12.1
4.2 获取镜像
$ docker pull kibana:7.12.1
4.3 获取elasticsearch容器 ip
$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' es
4.4 创建 kibana 配置文件
$ mkdir -p /home/zhangshixing/kibana/
$ vim /home/zhangshixing/kibana/kibana.yml
配置内容:
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: ["http://172.17.0.4:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
4.5 运行 kibana
$ docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kibana -p 5601:5601 -v /home/zhangshixing/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.12.1
4.6 测试
访问http://192.168.2.186:5601
5、Docker安装ElasticHD
5.1 搜索镜像
$ docker search ElasticHD
5.2 获取镜像
$ docker pull containerize/elastichd
5.3 启动
$ docker run -d -p 9800:9800 --restart=always --name elastichd containerize/elastichd
5.4 测试
访问 http://192.168.2.186:9800/
6、Docker安装Logstash
6.1 搜索镜像
$ docker search logstash
$ docker search logstash:7.12.1
6.2 获取镜像
$ docker pull logstash:7.12.1
6.3 启动logstash
$ docker run -d --restart=always --name logstash logstash:7.12.1
6.4 验证
$ docker logs -f logstash
6.5 错误解决
# 拷贝目录
$ docker cp logstash:/usr/share/logstash /home/zhangshixing/
$ chmod 777 -R /home/zhangshixing/logstash
$ vim /home/zhangshixing/logstash/config/logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.2.186:9200" ]
6.6 重启
$ docker rm -f logstash
$ docker run -d --restart=always --name logstash -v /home/zhangshixing/logstash:/usr/share/logstash logstash:7.12.1
$ docker logs -f logstash
我们进入到 Logstash 安装目录,并修改 config/logstash.yml
文件。我们把 config.reload.automatic
设置为 true
。
$ docker restart logstash
$ docker logs -f logstash
另外一种运行 Logstash 的方式,也是一种最为常见的运行方式,运行时指定 logstash 配置文件。
7、Docker安装Filebeat
7.1 搜索镜像
$ docker search filebeat
7.2 拉取镜像
$ docker pull docker.elastic.co/beats/filebeat:7.12.1
7.3 启动
$ mkdir -p /home/zhangshixing/filebeat
$ chmod 777 -R /home/zhangshixing/filebeat
$ cd /home/zhangshixing/filebeat
$ vim filebeat.yml
编辑的内容如下:
# 配置文件
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/beat.log
output.elasticsearch:
hosts: ["192.168.94.186:9200"]
$ docker run -d --name filebeat -v /home/zhangshixing/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml -v /var/log/beat.log:/var/log/beat.log docker.elastic.co/beats/filebeat:7.12.1
$ docker logs -f c281f896b487