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/"}



错误原因:

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

问题二:

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

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

ElasticSearch&kibana安装的更多相关文章

  1. ElasticSearch+Kibana安装部署

    在安装ElasticSearch时遇到了很多坑,所以在这里做个笔记记录一下. 首先我考虑的是使用docker进行部署,结果发现虚拟机直接内存溢出,我也是无解了,也就是说使用docker部署还得注意容器 ...

  2. elasticsearch -- kibana安装配置

    Kibana 是为Elasticsearch设计的开源分析和可视化平台,你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互.你可以很容易实现高级的数据分析 ...

  3. elasticsearch kibana 安装 配置

    二.Elasticsearch  配置信息 2.1  因为 Elasticsearch 可以执行脚本文件,为了安全性,默认不允许通过 root 用户启动服务.我们需要新创建用户名和用户组启动服务 2. ...

  4. 安装logstash,elasticsearch,kibana三件套

    logstash,elasticsearch,kibana三件套 elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具 注意: 关于安装文档, ...

  5. 安装logstash,elasticsearch,kibana三件套(转)

    logstash,elasticsearch,kibana三件套 elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具 注意: 关于安装文档, ...

  6. Elasticsearch和Kibana安装

    Elasticsearch安装 Elasticsearch至少需要Java 8.在撰写本文时,建议你使用Oracle JDK版本1.8.0_131.Java安装因平台而异,所以在这里不再赘述.Orac ...

  7. elasticsearch+kibana+metricbeat安装部署方法

    elasticsearch+kibana+metricbeat安装部署方法 本文是elasticsearch + kibana + metricbeat,没有涉及到logstash部分.通过beat收 ...

  8. ElasticSearch Kibana 和Logstash 安装x-pack记录

    前言 最近用到了ELK的集群,想想还是用使用官方的x-pack的monitor功能对其进行监控,这里先上图看看: 环境如下: 操作系统: window 2012 R2 ELK : elasticsea ...

  9. ELK 架构之 Elasticsearch 和 Kibana 安装配置

    阅读目录: 1. ELK Stack 简介 2. 环境准备 3. 安装 Elasticsearch 4. 安装 Kibana 5. Kibana 使用 6. Elasticsearch 命令 最近在开 ...

随机推荐

  1. 从拟阵基础到 Shannon 开关游戏

    从拟阵基础到 Shannon 开关游戏 本文中的定理名称翻译都有可能不准确!如果有找到错误的同学一定要联系我! 本文长期征集比较好的例题,如果有比较典型的题可以联系我 目录 从拟阵基础到 Shanno ...

  2. JS方式实现隐藏手机号码中间4位数

    1.截取 function test (value) { const start = value.slice(0, 3) const end = value.slice(-4) return `${s ...

  3. Java实现小程序微信支付

    小程序支付流程交互图: 进入小程序,下单,请求下单支付,调用小程序登录API来获取Openid,生成商户订单 // pages/pay/pay.js var app = getApp(); Page( ...

  4. Python文件(File)及读写操作及生成器yield

    open函数在内存中创建缓存区,将磁盘上的内容复制到此处.文件内容读入到文件对象缓冲区后,文件对象将缓冲区视为非常大的列表,其中每个元素都有一个索引.文件对象按字节(大约每个字符)来对文件对象缓冲区索 ...

  5. Mysql主从复制、半同步复制、并行复制

    MySQL之间数据复制的基础是二进制日志文件(binary log file).一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以"事件"的方 ...

  6. Mac automator bash 自动操作 右键菜单unrar解压 拷贝文件路径到剪贴板 快速删除(rm -rf) 快捷键设置

    https://tecadmin.net/pass-command-line-arguments-in-shell-script/ https://tecadmin.net/tutorial/bash ...

  7. MyBatis-Plus 代码生成器模板

    MyBatis-Plus 代码生成器模板 maven 依赖 <!--Mysql--> <dependency> <groupId>mysql</groupId ...

  8. redis存取数据list

    登录redis客户端 一.存取数据 1.左右添加数据 2.读取数据lrange 3.左右固定弹出一个元素 4.列表中个数 5.删除元素值为value的元素 count 值要自己给定: 6.获取和设置指 ...

  9. Git--生成公钥和私钥并添加gitlab访问权限

    Git配置 打开git bash 执行以下命令 git config --global user.name 用户名 git config --global user.email 邮箱 ssh-keyg ...

  10. electron-vue 开发问题合集

    (一)Found 'electron' but not as a devDependency, pruning anyway 原因:对electron没有严格要求的话可以忽略,不影响打包,但会影响第三 ...