目录
[不知道为啥今天上班老师让学es,然后在慕课网上学习了一下。感觉这玩意还挺有用的,做数据分析的,图很高大上]
Elastic Stack
- ElasticSearch 数据存储查询与分析
- Kibana 数据探索与可视化分析
- logStash 数据收集与处理
- Beats 数据收集与处理
-完备的数据分析工具集合
- 搜索引擎
- 日志分析
- 指标分析
1.什么是ElasticSearch?
- 开源搜索引擎;
- 采用Java编写,提供简单易用的RESTFul API;
- 轻松地横向扩展,可支持PB级的结构化或非结构化数据处理(解决存储容量问题
版本:1.x-2.x -5.x
本地搜索引擎集群
es将对搜索引擎的操作都封装成了restful的api,通过http请求就能对其进行操作;
同时他还考虑了海量数据,实现分布式,是一个可以存储海量数据的分布式搜索引擎
2.Kibana常用功能说明
- Discover 数据搜索查看
- Visualize图表制作
- Dashboard仪表盘制作
- Timelion时序数据的高级可视化分析
- DevTools开发者工具
- Management Kibana配置与管理
Elasticsearch常用术语
- Document文档数据 (具体数据 相当于一个行)
- Index索引(所有的Document都是存在具体索引中 相当于一个mysql数据库)
- Type索引中的数据类型 (mysql的表table)
- Field字段,文档的属性 (用户文档姓名年龄)
- Query DSL 查询语法
ElasticSearch CURD操作
POST /Index/Type/ID
GET
DELECT
Elasticsearch Query
- Query String GET /accounts/person/_search?q=john
- Query DSL
GET account/person/_search{
"query":{
"match":{
"name":"john"
}
}
}
一个数据如何存储到es中? 比如一首诗,有诗题、作者、朝代、字数、诗内容等字段,那么首先,我们可以建立一个名叫 Poems 的索引,然后创建一个名叫 Poem 的类型,类型是通过 Mapping 来定义每个字段的类型。 比如诗题、作者、朝代都是 Keyword 类型,诗内容是 Text 类型,而字数是 Integer 类型,***就是把数据组织成 Json 格式存放进去了。 这涉及到分词的问题,Keyword 类型是不会分词的,直接根据字符串内容建立反向索引,Text 类型在存入 Elasticsearch 的时候,会先分词,然后根据分词后的内容建立反向索引 |
怎么操作建立es的索引? Elasticsearch 把操作都封装成了 HTTP 的 API,我们只要给 Elasticsearch 发送 HTTP 请求就行。 比如使用 curl -XPUT 'http://ip:port/poems',就能建立一个名为 Poems 的索引,其他操作也是类似的。 |
3.Beats简介
*****Lightweight Data Shipper
- Filebeat 日志文件
- Metricbeat 度量数据
- Packetbeat 网络数据
- Winlogbeat Windows数据
- Heartbeat 健康检查
beat将数据传输到elasticsearch或者通过logstash解析和转换到kibana做一个可视化的展示
Filebeat简介
处理流程 :输入Input 处理Filter 输出Output
4.LogStash简介
Data Shipper -ETL -Extract -Transform -Load
实战方案:
监控 Production cluste业务集群es查询语句
用Packetbeats去监听 Production cluste业务集群的端口(查询语句通过网络抓包)
然后将数据发送到logstash,logstash做一些处理后会存储到监控集群Monitering cluster
然后通过Kibana对监控集群做可视化分析
- 反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。
- 搜索引擎原理就是建立反向索引。
- Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎。
- Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行。
- Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。
- Elasticsearch 一个典型应用就是 ELK 日志分析系统