zoukankan      html  css  js  c++  java
  • docker安装elasticsearch+kibana

     docker 安装ElasticSearch、Kibana,并且汉化kibana,在elasticsearch容器中安装ik中文分词器

    -------elasticsearch-----------

    elasticsearch:搜索引擎,常用语海量查询;
    kibana:它是elasticsearch的可视化界面

    1.下载镜像文件

    docker pull elasticsearch:7.6.2  //存储和检索数据
    
    docker pull kibana:7.6.2         //可视化检索数据

    2.创建elasticsearch的宿主机挂载目录,用于挂载redis的数据以及配置文件

    mkdir -p /mydata/elasticsearch/config
    mkdir -p /mydata/elasticsearch/data
    mkdir -p /mydata/elasticsearch/plugins
    echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

    3.创建容器并启动

    //--name为容器起名,-p暴露两个端口,9200以后发送http请求使用,
    //9300分布式集群状态下,节点之间的通信端口
    //-e "discovery.type=single-node" 单节点运行
    //-e ES_JAVA_OPTS="-Xms64m -Xmx128m" 指定es初始占用64m,最大占用128m
    
    docker run --name elasticsearch -p 9200:9200 -p 9300:9300 
    -e "discovery.type=single-node" 
    -e ES_JAVA_OPTS="-Xms64m -Xmx128m" 
    -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/elasticsearch.yml 
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data 
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins 
    -d elasticsearch:7.6.2

    4.连接测试,端口号9200,如果有防火墙或者安全组记得放开端口号

    -----发现不能连接,查看logs日志

    docker logs elasticsearch    //查看日志

     AccessDeniedException,拒绝访问
    原因:elasticsearch容器中的data文件挂载至宿主机外边,由于用户权限的原因导致访问禁止,授予文件夹权限即可

    rwx:root用户可读可写可执行,但其他用户只有读和执行的权限,故我们应该讲文件夹的权限均变为rwx
    使用:chmod -R 777 /mydata/elasticsearch/ //将所有人权限均变为rwx

     重新启动docker容器,在连接测试,正常

    5.安装ik中文分词器插件

    首先下载ik分词器,可以根据自己需要的版本:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.6.2  

     进入到elasticsearch容器plugins文件夹挂载的宿主机目录,我的是,/mydata/elasticsearch/plugins

    将ik分词器上传到文件夹下进行解压

    因为下载的是zip压缩包,通过unzip 压缩包,解压就可以了,然后删除压缩包,重新启动elasticsearch,测试即可

      --------------------------end---------------------------------

    -------------------kibana-------------------

    1.安装kibana,创建容器并启动

    // -e ELASTICSEARCH_HOSTS=http://ip:9200 映射的elasticsearch的访问url
    
    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://ip:9200 -p 5601:5601 -d kibana:7.6.2 

    2.访问测试, 成功!

    3.汉化kibana

      ①进入运行的kibana容器中

    docker exec -it kibana bash

      ②修改kibana配置文件

    vi config/kibana.yml
    // 在配置文件最后一行加上
    i18n_locale: "zh-CN"     //注意中间有空格

      ③退出容器,重启kibana,成功!

    ------------end---------------

    方式二:

    编辑kibana.yml配置文件

    kibana.yml配置文件放在宿主机/mydata/kibana/config目录下,内容如下:

    elasticsearch.hosts 地址是es的地址

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

    运行 Kibana

    docker run -d --restart=always 
    --log-driver json-file 
    --log-opt max-size=100m 
    --log-opt max-file=2 --name kibana 
    -e "I18N_LOCALE=zh-CN" 
    -e "ELASTICSEARCH_HOSTS=http://localhost:9200" 
    -p 5601:5601 
    -v /mydata/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml 
    kibana:7.6.2
    • -d 不打印日志启动 去掉 -d 会打印日志
    • -e 汉化启动 && 指定es访问ip
    • -p 指定端口号
    • -v 挂在文件启动

    kibana脚本,操作es

    # 创建索引
    PUT goods_index
    # 查询索引
    GET goods_index
    # 删除索引
    DELETE goods_index
    
    # 添加映射
    PUT goods_index/_mapping
    {
      "properties":{
        "age":{
          "type":"integer"
        },
        "name":{
          "type":"keyword"
        },
        "desc":{
          "type":"text"
        }
      }
    }
    
    # 创建索引并且添加映射
    PUT goods_index1
    {
      "mappings": {
        "properties": {
           "age":{
          "type":"integer"
          },
          "name":{
            "type":"keyword"
          },
          "desc":{
            "type":"text"
          }
        }
      }
    }
    
    # 添加文档,指定id
    PUT goods_index/_doc/1
    {
      "name":"张三",
      "age":34,
      "desc":"北京人深圳来"
    }
    
    # 添加文档,不指定id
    POST goods_index/_doc
    {
      "name":"李四",
      "age":25,
      "desc":"四川妹子真辣"
    }
    # 修改文档
    PUT goods_index/_doc/1
    {
      "name":"张三1111",
      "age":34,
      "desc":"北京人深圳来"
    }
    
    # 删除文档
    DELETE goods_index/_doc/1
    
    # 查询文档 指定id
    GET goods_index/_doc/OuR3y3wB4XY5Ck55qC97
    # 查询所有文档
    GET goods_index/_doc/_search
    # ik分词器,ik_smart粗粒度
    GET _analyze
    {
      "analyzer": "ik_smart",
      "text": "我爱你亲爱的菇凉"
    }
    
    # ik分词器,ik_max_word细粒度
    GET _analyze
    {
      "analyzer": "ik_max_word",
      "text": "我爱你亲爱的菇凉"
    }
    # 查询文档,默认使用的是standard分词器,应当在创建映射时,指定分词器
    GET goods_index/_search
    {
      "query": {
        "term": {
          "desc": {
            "value": "北"
          }
        }
      }
    }
    
    # 创建索引并且添加映射
    PUT goods_index1
    {
      "mappings": {
        "properties": {
           "age":{
          "type":"integer"
          },
          "name":{
            "type":"keyword"
          },
          "address":{
            "type":"text",
            "analyzer": "ik_max_word"
          }
        }
      }
    }

     

     

  • 相关阅读:
    工作五年,后面四年重复着第一年的活儿?
    ECMAScript 6 扫盲
    当前端也拥有 Server 的能力
    简述 OAuth 2.0 的运作流程
    近几年前端技术盘点以及 2016 年技术发展方向
    NodeJS的代码调试和性能调优
    新应用上线 Snippet
    这两天说到的苹果软件中毒是个什么情况?
    网站的SEO以及它和站长工具的之间秘密
    博客搬家通知
  • 原文地址:https://www.cnblogs.com/ljl5921/p/15423562.html
Copyright © 2011-2022 走看看