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/"}
错误原因:
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
问题二:
打开网址一直显示以下页面 :
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
来源https://www.cnblogs.com/HOsystem/p/15358404.html