vlambda博客
学习文章列表

阿里云使用docker部署elasticsearch+kibana+ik全部搞定

阿里云使用docker部署elasticsearch+kibana+ik全部搞定


前言: 越用越爽的docker值得你去体验,企业搜索王者elasticsearch值得你去玩耍,流行的kibana值得你去探索,后续搭配的logstash用来同步数据更是助你一臂之力。本文采用阿里云服务器(centos7.8),使用docker容器部署全新elasticsearch7.8.1。

1. Elasticsearch安装

  1. 下载镜像
docker pull elasticsearch:7.8.1
  1. 创建网络
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.8.1
  1. 创建容器
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.8.1

以上操作参照官方文档:https://hub.docker.com/_/elasticsearch?tab=description

阿里云使用docker部署elasticsearch+kibana+ik全部搞定
开发环境下--官网截图
  1. 启动容器闪退bug解决

    如果你出现以下错误,或者日后碰到以下类似错误,请按照以下方式解决。

  docker logs -f 容器id/或者别名
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
内存不足
jvm分配的内存大于系统可用内存数,所以没有足够的空间分配新空间了

前往jvm.options文件修改jvm启动参数
使用命令find / -name jvm.options找到
jvm.options文件位置
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
查询jvm.options
通过vi 文件位置命令进入该文件
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
jvm.options
找到xms参数位置,默认是1g,将分配空间修改小一些,减小值到系统可用的值,如
  -Xms256m
  -Xmx256m
还可能会报max_map_count [65530] is too low之类的
错误,表示分配给ES的内存太小了
需要重置max_map_count大小

sysctl -w vm.max_map_count=262144

查看max_map_count

sysctl -a|grep vm.max_map_count

阿里云使用docker部署elasticsearch+kibana+ik全部搞定
vm
  1.   输入 http://8.131.72.130:9200/

    或者

    curl localhost:9200

阿里云使用docker部署elasticsearch+kibana+ik全部搞定
es启动成功
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
控制台访问

这里顺便贴出springboot整合elasticsearch的配置

spring:
  application:
    name: bailis_search
  elasticsearch:
    rest:
      uris: http://8.131.72.130:9200
server:
  port: 9006
  1. 设置允许跨域,便于后续head或者kibana的连接

    进入容器,修改elsaticsearch.yml 文件,文件末尾增加下面配置:
http.cors.enabled: true
http.cors.allow-origin: "*"  
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
elasticsearch.yml

2.IK分词器安装

  1. Ik分词器版本要和ES和Head或Kibana版本保持一致,进入elasticsearch容器
docker exec -it elasticsearch /bin/bash
  1. 下载安装ik分词器,此命令需要在容器中运行
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.1/elasticsearch-analysis-ik-7.8.1.zip
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
安装步骤
  1. 退出容器,重启容器,即可加载IK分词器
docker restart elasticsearch
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
重启
  1. 使用postman进行分词测试
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
ik分词

3.Kibana插件安装

由于head插件在docker容器中已经停止更新多年,因此这里不再使用,采用通用十分流行的Kibana插件监控elasticsearch。

阿里云使用docker部署elasticsearch+kibana+ik全部搞定
head
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
kibana
  1. Kibana版本要和ES版本保持一致,下载镜像
docker pull kibana:7.8.1
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
下载kibana镜像
  1. 运行容器
 docker run -d --name kibana -p 5601:5601 kibana:7.8.1
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
run
  1. 拷出配置文件,后面用来做目录挂载
docker cp kibana:/usr/share/kibana/config/ /usr/local/share/kibana/
vi kibana.yml
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
kibana.yml
  1. 将kibana下的文件放到下级目录config目录下

     如果你的配置拷贝后已经在config目录下,此步骤可忽略
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
  1. 挂载运行

    docker rm -f kibana
    docker run -d --name kibana -p 5601:5601 -v /usr/local/share/kibana/config:/usr/share/kibana/config kibana:7.8.1
    • 浏览器访问 http://8.131.72.130:5601/app/kibana
    • 运行容器
    • 先销毁容器
阿里云使用docker部署elasticsearch+kibana+ik全部搞定
英文欢迎页
  1. 设置中文界面

    编辑kibana.yml,在最后面加上如下语句i18n.locale: "zh-CN"

    重启

阿里云使用docker部署elasticsearch+kibana+ik全部搞定
中文欢迎页

下篇:kibana插件使用--待更新






精彩推荐