首先安装jdk,我这里使用open-jdk

yum list all | grep jdk

yum -y install java-1.8.0-openjdk-devel, java-1.8.0-openjdk.x86_64和java-1.8.0-openjdk-headless.x86_64作为依赖包

安装

echo "export JAVA_HOME=/usr/bin" > /etc/profile.d/java.sh

exec bash

yum -y install elasticsearch-1.7.2.noarch.rpm 安装elasticsearch

vim /etc/elasticsearch/elasticsearch.yml 编辑配置文件

cluster.name: elasticsearch 为cluster命名为elasticsearch

node.name: "node1" 为该节点命名为node1

service elasticsearch start

ss -tnl 查看9200和9300的端口已经开启

这里的集群我使用三个节点,分别在其他的两个节点以进行同样的配置,注意节点不能相同

配置好后在一个节点上就能抓到包了 tcpdump -i eth1 -nn tcp port 9300

curl 'http://192.168.204.129:9200/?pretty'查看一个节点是否运行正常

显示了"status" : 200 表示运行正常

curl 'http://192.168.204.129:9200/_cat/' 这条命令可以查看一个节点的许多信息

意思是在catAPI下支持很多操作

比如curl 'http://192.168.204.129:9200/_cat/nodes' 显示节点信息

curl 'http://192.168.204.129:9200/_cat/nodes?v' 显示更详细的信息

curl 'http://192.168.204.129:9200/_cat/nodes?help' 获取帮助

curl 'http://192.168.204.131:9200/_cat/indices' 查看索引

还有许多命令此处不做一一介绍

集群的API

例如curl 'http://192.168.204.131:9200/_cluster/health?pretty' 查看健康状态

curl 'http://192.168.204.131:9200/_cluster/health?level=indicies&pretty'

查看到索引的那一个等级

curl 'http://192.168.204.131:9200/_cluster/state?pretty'

查看状态

curl 'http://192.168.204.131:9200/_cluster/stats?pretty'

查看统计信息

集群的API还有许多命令此处不一一做介绍

plugins:

插件扩展ES的功能

添加自定义的映射类型,自定义分析器,本地脚本,自定义发现方式

安装:
直接将插件放置于plugins目录中,目录为/usr/share/elasticsearch/plugins,使用rpm -ql elasticsearch命令查看

使用plugin脚本进行安装,脚本路径为/usr/share/elasticsearch/bin/plugin,/usr/share/elasticsearch/bin/plugin -h列出命令帮

助 -l列出已经安装的插件,-i或者--install, -u之名插件的URL

本地安装示例:/usr/share/elasticsearch/bin/plugin -i marvel -u file:///root/marvel-latest.zip

站点插件:head-master.zip marvel-latest.zip bigdesk-master.zip

这些插件在安装之后可通过浏览器直接访问

示例:http://192.168.204.129:9200/_plugin/marvel

创建文档:
curl -XPUT 'localhost:9200/students/class1/2?pretty' -d '
> {
> "first_name": "Rong",
> "last_name": "Huang",
> "gender": "Female",
> "age": 23,
> "courses": "Luoying Shenjian"
> }'
{
"_index" : "students",
"_type" : "class1",
"_id" : "2",
"_version" : 1,
"created" : true
}

curl -XPUT 'localhost:9200/students/class1/1?pretty' -d '
{
"first_name": "Jing",
"last_name": "Guo",
"gender": "Male",
"age": 25,
"courses": "Xianglong Shiba Zhang"
}'

获取文档:
~]# curl -XGET 'localhost:9200/students/class1/2?pretty'
{
"_index" : "students",
"_type" : "class1",
"_id" : "2",
"_version" : 1,
"found" : true,
"_source":
{
"first_name": "Rong",
"last_name": "Huang",
"gender": "Female",
"age": 23,
"courses": "Luoying Shenjian"
}
}

更新文档:

PUT方法会覆盖原有文档

如果只更新部分内容,得使用_update API

~]# curl -XPOST 'localhost:9200/students/class1/2/_update?pretty' -d '
{
"doc": { "age": 22 }
}'
{
"_index" : "students",
"_type" : "class1",
"_id" : "2",
"_version" : 2
}
删除文档:DETELE ~]# curl -XDELETE 'localhost:9200/students/class1/2'

删除索引: ~]# curl -XDELETE 'localhost:9200/students'

~]# curl -XGET 'localhost:9200/_cat/indices?v'

查询数据: Query API

ES的查询操作执行分为两个阶段:分散阶段 合并阶段

查询方式:向ES发起查询请求的方式有两种

1、通过Restful request API查询,也称为query string

2、通过发送REST request body进行

~]# curl -XGET 'localhost:9200/students/_search?pretty' 不常用

~]# curl -XGET 'localhost:9200/students/_search?pretty' -d '
> {
> "query": { "match_all": {} }
> }' 效果跟前一种是一样的,查询所有结果

多索引、多类型查询:

/_search:所有索引

/INDEX_NAME/_search:单索引

/INDEX1,INDEX2/_search:多索引

/s*,t*/_search 通配符

/students/class1/_search:单类型搜索

/students/class1,class2/_search:多类型搜索

Mapping和Analysis:

ES:对每一个文档,会取得其所有域的所有值,生成一个名为“_all”的域;执行查询时,如果在query_string未指定查询的域,则在

_all域上执行查询操作

curl 'localhost:9200/students/_search?q="Xianglong"&pretty'

curl 'localhost:9200/students/_search?q="Xianglong%20Shiba%20Zhang"&pretty'

curl 'localhost:9200/students/_search?q=courses:"Xianglong%20Shiba%20Zhang"&pretty'

curl 'localhost:9200/students/_search?q=courses:"Xianglong"&pretty'

前两个:表示在_all域搜索; %20代表的是一个空格

后两个:在指定的域上搜索

查询也可以在浏览器的这个地址http://192.168.204.129:9200/_plugin/marvel/sense/ 操作

注意:在指定域上搜索是需要精确匹配的

文档存储的数据类型:string, numbers, boolean, dates

查看指定类型的mapping示例:~]# curl 'localhost:9200/students/_mapping/class1?pretty'

ES中搜索的数据广义上可被理解为两类:

types:exact

full-text

精确值:指未经加工的原始值;在搜索时进行精确匹配;

full-text:用于引用文本中数据;判断文档在多大程序上匹配查询请求;即评估文档与用户请求查询的相关度;

为了完成full-text搜索,ES必须首先分析文本,并创建出倒排索引;倒排索引中的数据还需进行“正规化”为标准格式;

分词
正规化

即分析

分析需要由分析器进行:analyzer

分析器由三个组件构成:字符过滤器、分词器、分词过滤器

ES内置的分析器:

Standard analyzer:(默认)

Simple analyzer

Whitespace analyzer

Language analyzer

分析器不仅在创建索引时用到;在构建查询时也会用到, 在创建和查询时都用同一种分析器

ELK的使用的更多相关文章

  1. ELK日志系统:Filebeat使用及Kibana如何设置登录认证

    根据elastic上的说法: Filebeat is a lightweight, open source shipper for log file data. As the next-generat ...

  2. 5分钟部署ELK+filebeat5.1.1

    标题有点噱头,不过网络环境好的情况下也差不多了^_^   1. 首先保证安装了jdk.   elasticsearch, logstash, kibana,filebeat都可以通过yum安装,这里前 ...

  3. 大数据平台架构(flume+kafka+hbase+ELK+storm+redis+mysql)

    上次实现了flume+kafka+hbase+ELK:http://www.cnblogs.com/super-d2/p/5486739.html 这次我们可以加上storm: storm-0.9.5 ...

  4. ELK+Kafka集群日志分析系统

    ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...

  5. 第三十章 elk(1) - 第一种架构(最简架构)

    软件版本: es:2.4.0 logstash:2.4.0 kibana:4.6.1 一.logstash安装(收集.过滤日志.构建索引) 1.下载:https://www.elastic.co/do ...

  6. #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案

    郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...

  7. ELK+redis搭建nginx日志分析平台

    ELK+redis搭建nginx日志分析平台发表于 2015-08-19   |   分类于 Linux/Unix   |  ELK简介ELKStack即Elasticsearch + Logstas ...

  8. ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程

    环境:OS X 10.10.5 + JDK 1.8 步骤: 一.下载ELK的三大组件 Elasticsearch下载地址: https://www.elastic.co/downloads/elast ...

  9. elk系列4之kibana图形化操作

    preface 我们都搭建了ELK系统,且日志也能够正常收集的时候,那么就配置下kibana.我们可以通过kibana配置柱状图,趋势图,统计图,圆饼图等等各类图.下面就拿配置统计图和柱状图为例,结合 ...

  10. elk平台搭建

    很多时候我们需要对日志做一个集中式的处理,但是通常情况下这些日志都分布到n台机器上面,导致一个结果就是效率比较低,而ELK平台可以帮助我们解决这么一件事情: ELK下载:https://www.ela ...

随机推荐

  1. centos7 配置ssh 免密码登陆

    我只有一台机器,是因为要配置hadoop分布式环境用,需要配置ssh 两个用户: zhangxs, root 首先在切换到zhangxs用户下 执行[ ssh-keygen -t rsa] [zhan ...

  2. spring+springMVC+hibernate整合

    首先我们要知道hibernate五大对象:,本实例通过深入的使用这五大对象和spring+springMVC相互结合,体会到框架的好处,提高我们的开发效率 Hibernate有五大核心接口,分别是:S ...

  3. mysql命令行导入和导出数据

    首先打开命令窗口,输入命令:mysql -h localhost -u selffabu -p 连接成功后,进行下面的操作 MySQL中导出CSV格式数据的SQL语句样本如下: select * fr ...

  4. Oracle集群和灾备解决方案介绍

       Oracle本身有各种各样的解决方案,本文主要是对以下几种解决方案做一下简单的梳理. 1. Oracle Rac解决方案. Oracle Rac主要通过两台Oracle服务器来组件集群,提高Or ...

  5. windows upd广播包无法发送到局域网解决方法

    不能发送广播包的电脑和可以发送广播报的主机对比,发现不能发送广播报的主机上都有安装虚拟机,也有虚拟网卡,将所有的虚拟网卡关闭,然后再进行测试,都正常了,无论是Win7,Win10还是Xp. 禁用VMw ...

  6. rsync 删除大量小文件

    3 find with delete 复制代码代码如下:  test  time find ./ -type f -delete        find ./ -type f -delete  0.4 ...

  7. rsync的介绍及参数详解,配置步骤,工作模式介绍

    rsync的介绍及参数详解,配置步骤,工作模式介绍 rsync是类unix系统下的数据镜像备份工具.它是快速增量备份.全量备份工具. Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主 ...

  8. shiro集成encache

    针对多频次或者几乎不变的大数量的数据,我们可以通过缓存来实现,具体的比如说权限认证,这个,每次操作都需要权限认证,所以,这里添加encache注解.具体的认证过程是: 1,用户第一次访问用户权限信息, ...

  9. 记pytorch版faster rcnn配置运行中的一些坑

    记pytorch版faster rcnn配置运行中的一些坑 项目地址 https://github.com/jwyang/faster-rcnn.pytorch 一般安装配置参考README.md文件 ...

  10. 多媒体开发之---h264 rtp打包

    http://blog.csdn.net/newthinker_wei/article/details/8997440 http://blog.csdn.net/dengzikun/article/d ...