ElasticSearch:简称es ,分布式全文搜索引擎,使用java语言开发,面向文档型数据库,一条数据就是一个文档,数据用json序列化后存储。

默认端口:9200

借助redis来理解

redis以key/values方式存储数据,abc=123  通过key(abc)即可取出值(123)

es  使用索引-类型-数据-数据中的某个字段     格式来存储数据。

es安装

服务器ip:192.168.100.2

软件包elasticsearch 6.5:

链接:https://pan.baidu.com/s/14aXMtEldzBT2R8hW2gWEEQ
提取码:dk7x

下载完毕后,解压tar包:

[root@host1 [::]/usr/src]#tar xf elasticsearch-6.5..tar.gz 

解压后,解压的目录可以直接使用,将解压后的目录移动到一个指定位置,并命名

[root@host1 [::]/usr/src]#mv elasticsearch-6.5.  /usr/local/elasticsearch

在PATH变量中添加es的bin目录,让系统可以找到es的可执行文件,方便执行命令

[root@host1 [::]/usr/src]#cat /etc/profile |tail - |head -
export PATH=$PATH:/usr/local/elasticsearch/bin:/usr/bin/:/usr/local/node/bin/

编辑es配置文件,配置监听端口,地址等信息

[root@host1 [::]/usr/local/elasticsearch/config]#vim /usr/local/elasticsearch/config/elasticsearch.yml
cluster.name: test 集群名称,配置es集群时设置,集群名称相同,网络相同的情况下,多台可同时对外服务
node.name: linux-node1 本机名称,定义一个你喜欢名称
path.data: /usr/local/elasticsearch/data es存储数据的目录,此目录不存在,需要手动创建
path.logs: /usr/local/elasticsearch/logs 存储log的目录,同上,需要手动创建 bootstrap.memory_lock: false 内存锁定机制,让es只在内存中缓存数据,不在swap分区中操作,突然的使用swap分区会极大的影响速度 Centos6不支持这个机制,所以要设置false
bootstrap.system_call_filter: false 上面参数的辅助参数
network.host: 0.0.0.0 监听的地址
http.port: 监听端口,默认9200

进行主配置文件定义后,还要进行下方的配置,否则es会启动失败

1.创建一个普通用户启动es,es不支持root用户启动。

[root@host1 [::]/usr/local/elasticsearch/config]#useradd admin

2.编辑limit文件,写入下方内容

[admin@host1 [::]/usr/local/elasticsearch/config]$ulimit -u          用户最大可开启进程,临时生效   需要在你创建的启动es的用户空间执行
[root@host1 [::]/usr/local/elasticsearch/config]#cat /etc/security/limits.conf |grep ^*
* soft nofile
* hard nofile
* soft nproc
* hard nproc

3.用户最pending signals数量

[root@host1 [::]/usr/local/elasticsearch/config]#cat /etc/security/limits.d/-nproc.conf  |grep ^*
* soft nproc

4.单个JVM能开启的最大线程数设置

[root@host1 [::]/usr/local/elasticsearch/config]#sysctl -w vm.max_map_count=   临时生效
vm.max_map_count = [root@host1 [::]/usr/local/elasticsearch/config]#echo "vm.max_map_count=262144" >> /etc/sysctl.conf 写入文件永久生效
[root@host1 [::]/usr/local/elasticsearch/config]#sysctl -p
vm.max_map_count =

  

5.将es的目录所属主,组,更改为你创建的用户

[admin@host1 [::]/usr/local/elasticsearch/config]$chown -R admin:admin  /usr/local/elasticsearch/

  

配置完毕后,启动es,需要使用,你创建的普通用户,

#命令作用是将所有运行中出现的结果输出到文件:/usr/local/elasticsearch/logs/run.log 中,并放在后台执行,不影响前台操作

[admin@host1 [::]/usr/local/elasticsearch/config]$elasticsearch &> /usr/local/elasticsearch/logs/run.log  &

  

在浏览器中访问你的服务器的ip地址加上9200端口看结果,类似下面,那么恭喜,你的es安装成功了:

下面开始介绍es的简单操作

存储数据下方数据至es中

{

"name":"xiaoming"

"age":"22"

}

需要经过以下几个步骤

1.创建索引名称为index-test

1)索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号 
 2)如果没有明确指定索引数据的ID,那么es会自动生成一个随机的ID,需要使用POST参数

[root@host1 [::]~]#curl -XPUT http://192.168.100.2:9200/index-test

返回结果:{"acknowledged":true,"shards_acknowledged":true,"index":"index-test"}

在某个类型中创建数据

#在index-test的索引中创建一个类型doc,在doc中创建一个数据,user_info存入,username=xiaoming 的对应关系

#-H指定头部,-X指定方法 -d指定参数,参数用双引号保卫,因为最终需要转换为json数据。

[root@host2 [::]~]#curl -H "Content-Type: application/json" -XPOST 192.168.100.2:/index-test/doc/user_info  -d '{"user_name":"xiaoming"}'
{"_index":"index-test","_type":"doc","_id":"user_info","_version":,"result":"created","_shards":{"total":,"successful":,"failed":},"_seq_no":,"_primary_term":}[root@host2 [::]~]#

获取数据

#GET方法,获取对应的索引->类型->数据

[root@host2 [::]~]#curl -H "Content-Type: application/json" -XGET 192.168.100.2:/index-test/doc/user_info
{"_index":"index-test","_type":"doc","_id":"user_info","_version":,"found":true,"_source":{"user_name":"xiaoming"}} _source字段使我们存储的数据。

使用这种方法存储操作数据,岂不是非常麻烦,接下来我们可以用独立的模块来连接es并执行操作,模块给我们提供了人性化的界面,比冰冷的代码更温暖。

  elasticsearch-head

#前期版本的es是集成插件的,通过es本身提供功能即可添加某个插件,目前的es跟插件都是独立的,插件需要额外安装

简称head模块,主要功能:中文界面,图形化操作存储,更改,删除数据,界面可显示现有索引,并对索引大小进行检查等。

#使用head插件必须配合node使用,下载时请一并下载node软件包

head以及node软件包:

链接:https://pan.baidu.com/s/1HtTcvMD8p1wtRcHThk4sMA
提取码:i4oj

解压软件包

[root@host1 [::]/usr/src]#tar xf elasticsearch-head.tar.gz
[root@host1 [::]/usr/src]#tar xf node-v8.12.0-linux-x64.tar.gz

配置node的,让系统能够正常执行它的命令,不配置下方步骤,将会报错:

[root@host1 [::]/usr/src/elasticsearch-head]#ln -s /usr/src/node-v8.12.0-linux-x64/bin/node   /usr/bin/

进入解压后的head插件目录,使用node提供的npm进行进行运行,并将运行日志写到node目录下,放入后台执行,不影响前台操作

[root@host1 [::]/usr/src]#cd elasticsearch-head
[root@host1 [::]/usr/src/elasticsearch-head]#/usr/src/node-v8.12.0-linux-x64/bin/npm run start &> /usr/src/node-v8.12.0-linux-x64/run.log &

默认监听本机9100端口,通过浏览器访问本机9100端口即可,成功后结果如下。

在红框出输入es的地址,选择连接后即可展示es的信息(我的es已经经过一定的配置了,所以会有下面的这么多索引,如果按照此文的进度,索引是不存在的,so,忽略即可。)

在此处可以查看索引中的全部数据,红框处标记了,之前创建过的user_name:xiaoming内容,在这个平台上可以看到,我们这数据量小,但是实际环境中日志量很定是很大的,那么,可以根据下图中黄色区域使用过滤功能进行查看,根据时间过滤,字段过滤等,对这个功能有兴趣的,可以自行了解下。

图形化的进行新建索引,删除索引等操作。

下图展示了如何创建一个名称为index-test2的索引

在test2中创建数据

下图演示了在索引test2中的doc类中创建数据,没有定义数据名称,默认会定义一个随机的字符串,如图中的_id字段。

通过随机生成的id获取数据

删除数据

 bigdesk

一套用于监控es的插件,功能非常强大,展现出来的图很牛逼,但是有些值我至今没看懂~

另外,这插件几年没更新了,但是还能够监控现在新版本的es,在几年前的时间,这个插件可以说是很厉害了

下载:

链接:https://pan.baidu.com/s/1qLdFCYQBIb3nnajlq4fTZg
提取码:ohet

解压:

[root@host1 [::]/usr/src]#unzip bigdesk-master.zip

进入解压后的目录中的_site,并使用python的功能,创建一个web应用,默认端口8000,即可访问执行python命令的路径下的html文件

[root@host1 [::]/usr/src]#cd bigdesk-master/_site
[root@host1 [::]/usr/src/bigdesk-master/_site]#python -m SimpleHTTPServer &>/dev/null &

在浏览器中访问本机8000端口,成功后在红框内输入es地址,下方即可看到图标,es机器cpu,mem等等

              cerebro

kopf的升级版本,更改了个名字,包含kopf的功能(监控工具,并包含head插件的部分功能,可图形化的进行新建索引等操作,有一个痛点,软件是英文版本),并含有其他功能,下图是作者github上的公告,大概意思就是kopf不在更新,升级为cerebro,并对cerebro进行维护。

下载:

链接:https://pan.baidu.com/s/1W1dDPN8Yc6mWQxL7_6KLEg
提取码:1fj7

  

解压:

[root@host1 [::]/usr/src]#tar xf cerebro-0.8..tgz 

进入解压目录后执行程序即可,默认端口9000(我就不放后台执行了,爱怎么执行怎么把,重要的是把过程展现给你们)

[root@host1 [::]/usr/src]#cd cerebro-0.8.

[root@host1 [::]/usr/src/cerebro-0.8.]#./bin/cerebro 

[info] play.api.Play - Application started (Prod)
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /::::::::

访问测试并输入es地址(界面很酷炫有木有)

连接es后,跟head一样,主界面显示了索引信息,但是还增加了监控服务器的负载信息等。

rset界面,可以实现head模块中的图形化执行操作数据的功能,并且增加了只能匹配功能,它帮你匹配你输入的选项后面可能是什么参数。

ELK- elasticsearch 讲解,安装,插件head,bigdesk ,kopf,cerebro(kopf升级版)安装的更多相关文章

  1. 分布式搜索引擎ElasticSearch+Kibana (Marvel插件安装详解)

    在安装插件的过程中,尤其是安装Marvel插件遇到了很多问题,要下载license.Marvel-agent,又要下载安装Kibana 版本需求 Java 7 or later Elasticsear ...

  2. eclipse问题解决(link方式安装插件失败)

    使用 link 方式,离线安装 eclipse 插件时,经常失败. 一.常见的失败情况 link方式配好后,eclipse 启动,没有弹出任何信息. 查看当前工作空间——.metadata——.log ...

  3. Jmeter性能监测及安装插件(推荐)

    本文部分理论转自Jmeter官网:https://jmeter-plugins.org/wiki/PerfMon/  ,并结合个人实践编写 一.介绍 在负载测试期间,了解加载服务器的运行状况很重要.如 ...

  4. Eclipse安装插件的“最好方法”:dropins文件夹的妙用

    在Eclipse3.4以前安装插件非常繁琐. 在Eclipse3.5以后插件安装的功能做了改进.而且非常方便易用. 我们只需要把需要的插件复制(拖放)到eclipse\dropins,然后插件就安装成 ...

  5. Sublime Text 3安装与使用,安装插件,快捷键,默认配置

    本文是Sublime Text 全程指引 by Lucida (http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html)的笔 ...

  6. 解决Openwrt安装插件提示一下错误的办法

    解决Openwrt安装插件提示一下错误的办法 Openwrt安装17ce插件,提示一下错误: Collected errors: * check_data_file_clashes: Package ...

  7. atom安装插件失败 latex

    用atom写latex 链接 http://www.cnblogs.com/schaepher/p/5934184.html 但在gui下安装插件失败 按照以下步骤解决了 安装gitbash cd . ...

  8. ElasticSearch 2 (6) - 插件安装Head、Kopf与Bigdesk

    ElasticSearch 2 (6) - 插件安装Head.Kopf与Bigdesk 摘要 安装Elasticsearch插件Head.Kopf与Bigdesk 版本 elasticsearch版本 ...

  9. ElasticSearch之常用插件安装命令

    #head监控安装,推荐 bin/plugin -install mobz/elasticsearch-head #bigdesk集群状态,推荐 bin/plugin -install lukas-v ...

随机推荐

  1. 1 SQL SERVER 实现字符串分割成table的方法

    CREATE FUNCTION [dbo].[fn_SplitStringToTable] ( @p_Input VARCHAR(MAX), @p_Delimeter CHAR() = ',' ) R ...

  2. Hacklab WebIDE在线调试ESP32笔记

    目录 1.什么是Hacklab WebIDE 1.1 优势 1.2 趋势 2. 使用方法 2.1 功能介绍 2.2 编译第一个程序 2.3 搭建esp32的开发环境 2.4 建立开发板与云平台的连接 ...

  3. 第十五章、线程之queue模块的各种队列

    目录 第十五章.线程之queue模块的各种队列 一.Queue 二.LifoQueue堆栈 三.PriorityQueue优先级队列 第十五章.线程之queue模块的各种队列 一.Queue impo ...

  4. 【Day2】3.面向对象编程

    课程目标 1. 面向对象编程 2. 类和实例 3. 访问限制 4. 实例属性和类属性 面向对象编程 • 面向对象编程是一种程序设计思想 • 面向对象把类和对象作为程序的基本单元 • 对象包含属性和方法 ...

  5. php 随笔 截取字符串 跳出循环 去除空格 修改上传文件大小限制

    substr(string,start,length) echo substr("Hello world",6); world 跳出循环 for($i=1; $i<5; $i ...

  6. 亲测,将自己的项目部署到Github下

    转载内容,其实就是为了方便自己不用再去百度 感谢这位前辈 链接

  7. Rsync+Sersync实时同步数据目录

    第1章 Rsync简介 1.1 Rsync基本概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步,可实现全量备份与增量备份 全量:将全部数据,进行传输覆盖 增量:只传输差异部分的数据 1 ...

  8. css 模块化

    什么是css模块化思想?(what) 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好 ...

  9. Hdu 1564 1*2矩阵覆盖棋局博弈

    n*n的矩阵如果n为偶数 则可被1*2的矩形完全覆盖 如果n为奇数 则除起点外 其他各自可被1*2矩形完全覆盖 所以当n为偶数 先手赢 n为奇数 后手赢 #include<bits/stdc++ ...

  10. 一例tornado框架下处理上传图片并生成缩略图的例子

    class coachpic(RequestHandler): @gen.coroutine def post(self): picurl = self.request.files[] print(& ...