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. C#设计模式---迭代器模式(Iterator Pattern)

    一.目的 提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节. 二.定义 迭代器模式提供了一种方法访问一个聚合对象(理解为集合对象)中各个元素,而又无需暴露该对象的内部表示,这样既可 ...

  2. 《redis 5设计与源码分析》:第二章 简单动态字符串

    介绍 简单动态字符串(Simple Dynamic Strings, SDS)是Redis的基本数据结构之一,用于存储字符串和整型数据.它的特点是:方便扩容.二进制安全. 二进制安全 在C语言中,用& ...

  3. jquery mobile cdn

    <head> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jque ...

  4. Servlet监听器详解及举例

    监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. 监听器原理 监听原理 1.存在事件源 ...

  5. client-go实战之一:准备工作

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. Redis集群的搭建及与SpringBoot的整合

    1.概述 之前聊了Redis的哨兵模式,哨兵模式解决了读的并发问题,也解决了Master节点单点的问题. 但随着系统越来越庞大,缓存的数据越来越多,服务器的内存容量又成了问题,需要水平扩容,此时哨兵模 ...

  7. VUE带Token访问Abp Vnext Api

    上篇登录保存token用了3种方式,都可以在header带上Token访问,本次使用第四种保存方式Vuex中保存状态 stroe中配置好需要保存的字段及方法 import Vue from 'vue' ...

  8. Java 扫描识别条形码图片

    1.条形码扫描识别的实现方法及步骤 本文以Java代码示例介绍如何来扫描和识别条形码图片.这里使用免费条码工具 Free Spire.Barcode for Java,调用BarcodeScanner ...

  9. 第一类值VS第二类值

    数据类型的分类:第一类值VS第二类值 第一类值:变量中可以存储函数,也就是说func类似int/double. 第二类值: 1.不能存储函数,不能动态创建函数,不能动态销毁函数; 2.只能存储一个指向 ...

  10. webgl 图像处理 加速计算

    webgl 图像处理 webgl 不仅仅可以用来进行图形可视化, 它还能进行图像处理 图像处理1---数据传输 webgl 进行图形处理的第一步: 传输数据到 GPU 下图为传输点数据到 GPU 并进 ...