基于Centos7,Docker安装Elasticsearch、Kibana、Elasticsearch-head

文章目录

      • 1. 基础环境
      • 2. 安装Elasticsearch
      • 3. 安装Kibana
      • 4. 安装Elasticsearch-head

1. 基础环境

基础环境:centos7.0+ 、 docker18.0+

2. 安装Elasticsearch

## 获取elasticsearch镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.1

## 运行
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.6.1  

## 运行时可指定映射数据目录
-v /dockerdata/es/master:/usr/share/elasticsearch/data

运行成功后,可访问ip:9200访问elasticsearch的基本信息,如下:

基于Centos7,Docker安装Elasticsearch、Kibana、Elasticsearch-head_第1张图片

3. 安装Kibana

## 获取kibana镜像
docker pull docker.elastic.co/kibana/kibana:7.6.1

## 运行, YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID是elasticsearch的容器id 
docker run --link YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID:elasticsearch -p 5601:5601 {docker-repo}:{version}

## 例如:
docker run --link 427bd087359e:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.6.1

## 运行时可指定kibana插件的映射目录
-v /home/elasticsearch-data/kibana-plugins:/usr/share/kibana/plugins:rw

运行成功后,可访问ip:5601,如下:

基于Centos7,Docker安装Elasticsearch、Kibana、Elasticsearch-head_第2张图片

4. 安装Elasticsearch-head

## 获取elasticsearch-head镜像
docker pull mobz/elasticsearch-head:5

## 运行
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5

问题1:运行成功如连接elasticsearch会报跨域问题,解决如下:

##  进入容器内
docker exec -it elasticsearch的CONTAINER ID  bash
## 进入config
cd ./config 
## 修改elasticsearch.yml
echo "
http.cors.enabled: true
http.cors.allow-origin: '*'" >> elasticsearch.yml
## 退出容器
exit elasticsearch的CONTAINER ID
## 重启elasticsearch
docker restart elasticsearch的CONTAINER ID

再次访问ip:9100,连接elastic search,即可连接成功,如下:

基于Centos7,Docker安装Elasticsearch、Kibana、Elasticsearch-head_第3张图片

问题2:访问elasticsearch-head的浏览数据可能查看不到数据列表,解决如下:

问题:{"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}

解决方法:

1、进入elasticsearch-head安装目录 docker exec -it elasticsearch-head容器ID  bash
2、cd _site/
3、编辑vendor.js  共有两处
      ①. 6886行   contentType: "application/x-www-form-urlencoded
           改成
         contentType: "application/json;charset=UTF-8"
      ②. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
        改成
            var inspectData = s.contentType === "application/json;charset=UTF-8" &&

你可能感兴趣的:(ElasticStack)