ELK的使用
首先安装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的使用的更多相关文章
- ELK日志系统:Filebeat使用及Kibana如何设置登录认证
		根据elastic上的说法: Filebeat is a lightweight, open source shipper for log file data. As the next-generat ... 
- 5分钟部署ELK+filebeat5.1.1
		标题有点噱头,不过网络环境好的情况下也差不多了^_^ 1. 首先保证安装了jdk. elasticsearch, logstash, kibana,filebeat都可以通过yum安装,这里前 ... 
- 大数据平台架构(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 ... 
- ELK+Kafka集群日志分析系统
		ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ... 
- 第三十章 elk(1) - 第一种架构(最简架构)
		软件版本: es:2.4.0 logstash:2.4.0 kibana:4.6.1 一.logstash安装(收集.过滤日志.构建索引) 1.下载:https://www.elastic.co/do ... 
- #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案
		郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ... 
- ELK+redis搭建nginx日志分析平台
		ELK+redis搭建nginx日志分析平台发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介ELKStack即Elasticsearch + Logstas ... 
- ELK日志系统:Elasticsearch +  Logstash + Kibana 搭建教程
		环境:OS X 10.10.5 + JDK 1.8 步骤: 一.下载ELK的三大组件 Elasticsearch下载地址: https://www.elastic.co/downloads/elast ... 
- elk系列4之kibana图形化操作
		preface 我们都搭建了ELK系统,且日志也能够正常收集的时候,那么就配置下kibana.我们可以通过kibana配置柱状图,趋势图,统计图,圆饼图等等各类图.下面就拿配置统计图和柱状图为例,结合 ... 
- elk平台搭建
		很多时候我们需要对日志做一个集中式的处理,但是通常情况下这些日志都分布到n台机器上面,导致一个结果就是效率比较低,而ELK平台可以帮助我们解决这么一件事情: ELK下载:https://www.ela ... 
随机推荐
- Vue+原生App混合开发手记#1
			项目的大致需求就是做一个App,里面集成各种功能供用户使用,其中涉及到很多Vue的使用方法,单独总结太麻烦,所以通过这几篇笔记来梳理一下.原型图如下: 路由配置 主界面会用到一些原生App方法,比如验 ... 
- Redis源码阅读-Dict哈希字典
			Dict和Java中的HashMap很相似,都是数组开链法解决冲突. 但是Redis为了高性能, 有很多比较微妙的方法,例如 数组的大小总是2的倍数,初始大小是4. rehash并不是一次就执行完,而 ... 
- Swift开发图解入门
			<论语·卫灵公>有一段经典对白:『子贡问为仁.子曰:工欲善其事,必先利其器. --』. 对于一个程序猿来说,好的工具不意味着一定能产生优质的代码.可是好的工具对提升开发效率的作用还是不言而 ... 
- Hadoop学习笔记(二)——zookeeper使用和分析
			分布式架构是中心化的设计.就是一个主控机连接多个处理节点,因此保证主控机高可用性十分关键.分布式锁是解决该问题的较好方案,多主控机抢一把锁.Zookeeper就是一套分布式锁管理系统,用于高可靠的维护 ... 
- SourceTree超前一个版本,落后N个版本
			SourceTree超前一个版本,落后N个版本 在使用SourceTree的时候经常会遇见超前一个版本,落后N个版本的情况,遇见这种情况应该怎么办呢? 首先打开终端,最好是从SourceTree里 ... 
- FineUIPro中如何支持多语言(全局资源文件和本地资源文件)
			一个客户在邮件中问到了FineUIPro的多语言实现问题,其实 FineUIPro 并没有对此做特殊处理,因此直接使用 ASP.NET 原生支持的资源文件就能实现. 下面我们就以FineUIPro的空 ... 
- 大数据学习系列(5)-- 局域网yum仓库搭建
			https://www.cnblogs.com/nulige/p/6081192.html 
- On the importance of initialization and momentum in deep learning
			Ilya Sutskever1 ilyasu@google.com James Martens jmartens@cs.toronto.edu George Dahl gdahl@cs.toronto ... 
- js打开新窗口: window.open
			var iWidth = 800; var iHeight = 600; var iLeft = (window.screen.width - 10 - iWidth) / 2; //获得窗口的水平位 ... 
- 阿里云+LAMP环境配置
			1. 准备好一键Linux环境的脚本: http://dwz.cn/6Nlexm 2. 运行命令:# yum install lynx tree nmap sysstat lrzsz dos2unix ... 
