• ElasticSearch & kibana安装


    ElasticSearch

    ElasticSearch 简介

    Elasticsearch是一个分布式、可扩展、实时的搜索与数据分析引擎。它可以让您快速且近实时地存储,检索以及分析海量数据。它通常用作那些具有复杂搜索功能和需求的应用的底层引擎或者技术。

    全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选。

    Elasticsearch的底层是开源库吧Lucene。但是,你没法直接用,必须自己写代码调用它的接口,Elastic 是 Lunce 的封装,提供了 REST API 的操作接口,开箱即用。

    官方文档:点我传送

    官方中文文档:点我传送

    社区文档:点我传送点我传送

    ElasticSearch 概念

    • 索引
    • 类型
    • 文档
    • 属性
    • 倒排索引表

    ElasticSearch quick start

    docker安装ElasticSearch Kibana

    # 存储和检索数据
    docker pull elasticsearch:7.4.2 
    
    # 可视化检索数据
    docker pull kibana:7.4.2 
    

    至少保证内存可用量为300+,越多越好

    # 查看可用内存大小
    free -m
    

    创建实例

    ElasticSearch

    # 创建elasticsarch的config
    mkdir -p /mydata/elasticsearch/config 
    
    # 创建elasticsarch的data
    mkdir -p /mydata/elasticsearch/data
    
    # 配置elasticsearch.yml 
    # 注: 'host:'中 ':'后跟着空格
    echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
    
    # 设置elasticsearch目录权限
    chmod -R 777 /mydata/elasticsearch/
    
    # 启动elasticsearch
    # 特别注意:-e ES_JAVA_OPTS="-Xms64m -Xmx256m"  测试环境下,设置ES的初始内存和最大内存,否则导致过大启动不了 ES
    docker run --name elasticsearch -p 9200:9200 -p 9300:9300 
    -e "discovery.type=single-node" 
    -e ES_JAVA_OPTS="-Xms64m -Xmx512m" 
    -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data 
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins 
    -d elasticsearch:7.4.2
    
    # 当 Docker 重启时,容器能自动启动
    docker update elasticsearch --restart=always
    docker restart elasticsearch
    

    访问 ip:9200

    # 查看虚拟机ip
    ip addr
    
    # 访问 ip:9200
    192.168.188.128:9200
    

    Kibana

    启动kibana时有两种方式,任选其一。如果是通过docker使用kibana,则直接执行方式二。

    方式一:
    # 启动kibana
    # ELASTICSEARCH_HOSTS 一定改为自己虚拟机的地址
    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.188.128:9200 -p 5601:5601 
    -d kibana:7.4.2
    
    # 当 Docker 重启时,容器能自动启动
    docker update kibana --restart=always
    docker restart kibana
    

    访问 ip:5601

    # 查看虚拟机ip
    ip addr
    
    # 访问 ip:5601
    192.168.188.128:5601
    
    方式二:
    # 查看docker中elasticSearch的ip
    # 查看 es 实例暴露的IP
    docker inspect elasticsearch
    # 重新创建实例
    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.3:9200 
    -p 5601:5601 -d kibana:7.4.2 
    # 当 Docker 重启时,容器能自动启动
    docker update kibana --restart=always
    docker restart kibana
    

    ElasticSearch 使用

    _cat

    # 查看所有节点
    http://192.168.188.128:9200/_cat/nodes
    
    # 查看 es 健康状况
    http://192.168.188.128:9200/_cat/health
    
    # 查看主节点
    http://192.168.188.128:9200/_cat/master
    
    # 查看所有索引
    http://192.168.188.128:9200/_cat/indices
    

    新增数据

    elasticsearch通过接收PUT和POST请求来新增数据,然而在新增数据之前,我们需要来了解elasticsearch中的几个概念:

    • 索引
    • 类型
    • 文档
    • 属性
      在elasticsearch中新增数据称其为 索引一个文档

    问题汇总

    问题一:

    通过docker logs [容器id]查看日志,如果出现以下错误:

    {.. "message" : "Unable to revive connection: http://ip:9200/"}
    

    87130361-7543-4c8d-B583-97E0CB168321.png
    错误原因:
    Docker容器中启动服务和直接在Linux环境下安装服务,会有ip上的区别,不在是服务器的物理ip,而是容器对外暴露对的ip。简单来说,需要设置kibana的ElasticSearch Ip为docker容器的ip,而不是物理机的Ip。

    解决方法:查看启动kibana方式二

    通过docker inspect elasticsearch查看ES实例暴露出来的ip 。停止并删除现有的Kibana容器,然后重新启动kibana并添加环境变量参数:-e ELASTICSEARCH_HOSTS="http://es暴露的IP:9200"

    # 停止实例
    docker stop kibana
    # 删除实例
    docker rm kibana
    # 查看 es 实例暴露的IP
    docker inspect elasticsearch
    # 重新创建实例
    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.3:9200 
    -p 5601:5601 -d kibana:7.4.2 
    

    99C0D170-8F21-4557-8230-2346BA25E6F8.png

    问题二:

    打开网址一直显示以下页面 :

    Kibana server is not ready yet
    

    错误原因:
    Docker容器中启动服务和直接在Linux环境下安装服务,会有ip上的区别,不在是服务器的物理ip,而是容器对外暴露对的ip。简单来说,需要设置kibana的ElasticSearch Ip为docker容器的ip,而不是物理机的Ip。

    解决方法:查看启动kibana方式二

    通过docker inspect elasticsearch查看ES实例暴露出来的ip 。停止并删除现有的Kibana容器,然后重新启动kibana并添加环境变量参数:-e ELASTICSEARCH_HOSTS="http://es暴露的IP:9200"

    # 停止实例
    docker stop kibana
    # 删除实例
    docker rm kibana
    # 查看 es 实例暴露的IP
    docker inspect elasticsearch
    # 重新创建实例
    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.3:9200 
    -p 5601:5601 -d kibana:7.4.2 
    

    99C0D170-8F21-4557-8230-2346BA25E6F8.png

  • 相关阅读:
    移动支付
    PowerBI
    PowerBI
    Fiddler 页面字段(图标)含义详解
    Fiddler 抓包淘宝小程序(Android)
    【练习读写excel文件】读取sheet1里面a列的值,逐行粘贴到sheet2,3,4,5,6,7里面的指定字段
    【练习读写excel文件】根据某一字段将相同的类拆分
    【练习读写excel文件】创建workbook和批量创建Sheet
    require.js的使用的坑!
    js的异步的问题的再次理解
  • 原文地址:https://www.cnblogs.com/HOsystem/p/15358404.html
Copyright © 2020-2023  润新知