使用docker安装ElasticSearch和kibana

Posted 吹灭读书灯 一身都是月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docker安装ElasticSearch和kibana相关的知识,希望对你有一定的参考价值。

使用 Docker安装

安装ES

【先读官方文档!!!】

拉取镜像

docker pull elasticsearch:7.6.1

创建网络

docker network create elastic

加上内存限制启动 ES

docker run -d --name es01-test --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.1

安装Kibana

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板( dashboard ))实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。

官网:https://www.elastic.co/cn/kibana

(汉化。只要在kibana.yml配置文件目录,在配置文件中修改为zh-CN)

启动 Kibana

# 安装Kibana
docker pull kibana:7.6.1
# 启动
docker run -d --name kib01-test --net elastic -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://es01-test:9200" kibana:7.6.1

启动完成后,开放防火墙端口,查看是否可用访问!!!注意kibana启动会很慢而且很占CPU,我就是几次都是CPU满了,吓得我赶紧找问题…

开放防火墙的指定端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent

firewall-cmd --zone=public --add-port=5601/tcp --permanent

重启防火墙
firewall-cmd --reload

配置密码访问ES

修改Elastic配置

使用基本许可证时,默认情况下禁用Elasticsearch安全功能。由于我测试环境是放在公网上的,所以需要设置下密码访问。相关文档可以参考这里

1、进入正在运行的容器

docker exec -it 容器id /bin/bash
#安装 vim
yum -y install vim
#查看目录
[root@5c43a5b9d09a elasticsearch]# ls
LICENSE.txt  README.asciidoc  config  jdk  logs     plugins
NOTICE.txt   bin              data    lib  modules

2、更改 config/elasticsearch.yml 文件,设置 xpack.security.enabled 为 true

[root@06c5914709a5 config]# vim elasticsearch.yml
[root@06c5914709a5 config]# cat elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: true
#配置跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

3、重启elasticsearch容器

[root@VM-0-6-centos z-test]# docker restart es01-test
es01-test

4、进入容器设置各个组件的密码

[root@06c5914709a5 elasticsearch]# ./bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y


Enter password for [elastic]: 
Reenter password for [elastic]: 
Enter password for [apm_system]: 
Reenter password for [apm_system]: 
Enter password for [kibana]: 
Reenter password for [kibana]: 
Enter password for [logstash_system]: 
Reenter password for [logstash_system]: 
Enter password for [beats_system]: 
Reenter password for [beats_system]: 
Enter password for [remote_monitoring_user]: 
Reenter password for [remote_monitoring_user]: 
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

修改 Kibana 配置

1、修改 kibana.yml (find / -name kibana.yml)

进入容器docker exec -it 容器id /bin/bash并进入config目录cd config

添加最后两行配置用户和密码

bash-4.2$ vi kibana.yml
bash-4.2$ cat kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: "elastic"

2、创建kibana keystore

./bin/kibana-keystore create

3、在kibana keystore 中添加密码,并输入自己刚刚配置的ES密码

./bin/kibana-keystore add elasticsearch.password

4、重启容器

[root@VM-0-6-centos /]# docker restart  kib01-test
kib01-test

再次访问:ip:9200,则需要输入账号和密码

账号为:elastic

安装IK分词器插件

分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如“我爱中国"会被分为"我" “爱”“中”“国”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。

IK提供了两个分词算法: ik_smart和ik_max_word,其中 ik_smart为最少切分,ik_max_word为最细粒度划分!

1、进入容器

docker exec -it 容器名 /bin/bash

2、在线下载并安装

Ik分词器github链接:https://github.com/medcl/elasticsearch-analysis-ik/releases/

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip

3、退出容器并重启ES

exit 或者 Ctrl + Q + P
docker restart 容器id	

使用:

  1. ik_smart最小切分

    {
      "tokens" : [
        {
          "token" : "中国共产党",
          "start_offset" : 0,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 0
        }
      ]
    }
    
  2. ik_max_word最细力度划分,穷尽所有词。

    {
      "tokens" : [
        {
          "token" : "中国共产党",
          "start_offset" : 0,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "中国",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 1
        },
        {
          "token" : "国共",
          "start_offset" : 1,
          "end_offset" : 3,
          "type" : "CN_WORD",
          "position" : 2
        },
        {
          "token" : "共产党",
          "start_offset" : 2,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 3
        },
        {
          "token" : "共产",
          "start_offset" : 2,
          "end_offset" : 4,
          "type" : "CN_WORD",
          "position" : 4
        },
        {
          "token" : "党",
          "start_offset" : 4,
          "end_offset" : 5,
          "type" : "CN_CHAR",
          "position" : 5
        }
      ]
    }
    

注意自己需要的词,要加进到字典中。

以上是关于使用docker安装ElasticSearch和kibana的主要内容,如果未能解决你的问题,请参考以下文章

Docker安装ElasticSearch和Kibana

Docker安装ElasticSearch和Kibana

使用docker安装ElasticSearch和kibana

使用docker安装ElasticSearch和kibana

docker安装Elasticsearch

Elasticsearch 在docker和centos下的安装教程