阅读 127

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的configmkdir -p /mydata/elasticsearch/config 
# 创建elasticsarch的datamkdir -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的初始内存和最大内存,否则导致过大启动不了 ESdocker 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

# 查看虚拟机ipip addr# 访问 ip:9200192.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

# 查看虚拟机ipip addr# 访问 ip:5601192.168.188.128:5601
方式二:
# 查看docker中elasticSearch的ip# 查看 es 实例暴露的IPdocker 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 实例暴露的IPdocker 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 实例暴露的IPdocker 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

来源https://www.cnblogs.com/HOsystem/p/15358404.html

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐