SlideShare a Scribd company logo
1 of 20
Download to read offline
ELK 交流
陈杨文
陈杨文
● wenerme@
● wenerme@
● wenerme@
大纲
● Lambda 架构
● ELK 架构
● Elasticsearch 简介
○ 查询
○ 高可用机制
○ 备份和恢复
● Kibana 简介
○ 插件机制
Lambda 架构
MapReduce in Java8 Stream
Lambda 架构
● 对现有程序的抽象
和提升
● 使高效的大数据实
时运算成为可能
● Google DataFLow
● Apache Storm
● Apache Spark
● Apache Apex
● Apache Samze
MapReduce in Large scale
ELK 架构
● ELK 可看成是 Lambda
架构的一种实践
● Logstash 作为架构中
的核心处理组件
● 结构灵活,可针对不同
层次和组件进行扩容
● 使用 Redis/Kafka 作
为数据传输
Elasticsearch 简介
● 分布式多租户全文近实时搜索分析引擎
● 基于 Lucene
● 基于文档的分布式 NoSQL
● 基于 JSON 的 HTTP 接口
Elasticsearch 查询
● 搜索
● 聚合
● 查询 DSL
○ 全文查询
○ 词级查询
○ 组合查询
○ 关联查询
○ Geo 查询
○ 跨度查询
Elasticsearch DSL
# Query string syntax
curl -XGET 'localhost:9200/index/type/_search?q=name:wener AND age:
>10'
# DSL syntax
curl -XPOST 'localhost:9200/index/type/_search' -d'
{
"query":{
"bool":{
"must":[
"term":{"name":"wener"},
"range":{"age":{"gt":10}}
]
}
}
}'
● DSL 大多是对
Lucene 操作的封装
● 以 JSON 呈现,通过
HTTP 通信
● 使非 Java 程序也能
很好地利用其强大的
查询能力
Elasticsearch 高可用机制
● 基于分片多副本的形式保证高可用
● 通过文档唯一标示符进行分片路由
● 自动进行分片负载均衡
● 自动进行分片恢复
● 为避免脑裂需指定最少集群数
● 集群节点职能分为: 主节点,数据节点,客户端节点, Tribe 节点
● 可扩展集群中不同节点类型来增加可用性和性能
Elasticsearch 服务发现
● 支持基于广播的节点发现
● 节点自动加入集群
● 支持基于 Azure,EC2,GCE
的服务发现
Elasticsearch 数据分片
● 分片 = hash(路由字段) % 主分片数
● 主分片在索引创建后不可更改
● 路由字段为 _id 或 _parent
● 过多的主分片会影响性能
● 进行操作时均可指定路由字段
● 数据恢复是直接发送索引文件
● 支持动态冗余即根据节点数量调整副本数量
Elasticsearch 持久化
● 存储以 Lucene 存储为基础
● 引入事务日志避免数据丢失和过于频繁的 Lucene Commit
● 默认每次修改请求会触发事务日志 fsync
● 默认每隔五秒会触发事务日志 fsync
● 默认更改会一秒后刷新即更改在一秒后对查询可见
● 当事务日志达到指定大小后则触发段提交
● 刷新只是重写段
● 事务日志允许实时 ID 查询
● 可启用校验和来避免可能的磁盘损坏
Elasticsearch 备份和恢复
● 通过备份和恢复模块提供相应
功能
● 可备份到文件系统, S3, HDFS,
Azure
● 使用文件系统需要预先配置
● 默认是异步备份
● 备份为增量备份
# 需要配置 path.repo: /home/data/es-backup
# Snapshot repository
curl -XPUT 'localhost:9200/_snapshot/backup' -d '{
"type": "fs",
"settings": {
"compress": "true",
"location": "/home/data/es-backup/backup"
}
}'
# Backup
curl -XPUT localhost:9200/_snapshot/backup/bckp1
# Restore
curl -XPOST localhost:9200/_snapshot/backup/bckp1/_restore
# Cancel/Delete
curl -XDELETE localhost:9200/_snapshot/backup/bckp1
Elasticsearch 弱点
● 单个索引不能自动扩容
● 适宜存储不变的文档
● 对关系型数据的支持有限
● 近实时搜索
● 需要进行适当的建模才能发挥其高效的处理能力
● 产品商业化的必须组件是闭源的收费插件
● 占用资源较高
Kibana 简介
● Elasticsearch 的数据分析和可视化平台
● 基于 Nodejs
● 可基于插件进行功能扩展
● 插件可针对视图,应用,字段格式等进行扩展
● 可使用工具直接生成插件基础项目
● Kibana 开源替代产品 Grafana
○ 服务端为 Golang
○ 支持较多的数据源
○ 数据可视化功能完善但缺少针对 Elasticsearch 的分析操作
图库数据分析
● 自身以关系为主
● 用于呈现数据相互之间的自然关系
● 传统关系型数据库专注于数据的聚合,图库专注于数据之间的关系链接
● 用例: 主数据管理,网络管理,实时推荐,欺诈检测,社交网络,身份访问分析等
关系型数据处理示例 - Elasticsearch
● 以日志为中心
○ 索引搭载日志
○ 索引驾驶日志
○ 索引车祸日志
○ 无法维系数据关系
○ 日志需要保持相当长时间
● 以对象为中心
○ 索引司机信息
○ 索引汽车信息
○ 索引乘客信息
○ 大量更新性能降级
○ 单个索引庞大难以维护
● 程序端做复杂关系关联处理维护
关系型数据处理示例 - 图库
● 数据以关系为主
● 呈现数据之间的自然联系
● 服务端做关系处理
● 面向关系的原生查询语言
谢谢

More Related Content

Similar to ELK 交流学习

lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用hugo
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture introted-xu
 
Introduction of Spark by Wang Haihua
Introduction of Spark by Wang HaihuaIntroduction of Spark by Wang Haihua
Introduction of Spark by Wang HaihuaWang Haihua
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构Cosey Lee
 
電商微服務架構設計與執行
電商微服務架構設計與執行電商微服務架構設計與執行
電商微服務架構設計與執行YC Liang
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
Weibo lamp improvements
Weibo lamp improvementsWeibo lamp improvements
Weibo lamp improvementsXinchen Hui
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)My own sweet home!
 
王涛:基于Cloudera impala的非关系型数据库sql执行引擎
王涛:基于Cloudera impala的非关系型数据库sql执行引擎王涛:基于Cloudera impala的非关系型数据库sql执行引擎
王涛:基于Cloudera impala的非关系型数据库sql执行引擎hdhappy001
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事freezr
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2redhat9
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Li Yi
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 maclean liu
 
開發環境建置
開發環境建置開發環境建置
開發環境建置Shengyou Fan
 
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AILangchain and Azure ML and Open AI
Langchain and Azure ML and Open AIKo Ko
 
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Dahui Feng
 
分布式系统日志处理调研
分布式系统日志处理调研分布式系统日志处理调研
分布式系统日志处理调研klandor
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展Sky Jian
 
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)涛 吴
 

Similar to ELK 交流学习 (20)

lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture intro
 
Introduction of Spark by Wang Haihua
Introduction of Spark by Wang HaihuaIntroduction of Spark by Wang Haihua
Introduction of Spark by Wang Haihua
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构
 
Databases on AWS
Databases on AWSDatabases on AWS
Databases on AWS
 
電商微服務架構設計與執行
電商微服務架構設計與執行電商微服務架構設計與執行
電商微服務架構設計與執行
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
Weibo lamp improvements
Weibo lamp improvementsWeibo lamp improvements
Weibo lamp improvements
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
 
王涛:基于Cloudera impala的非关系型数据库sql执行引擎
王涛:基于Cloudera impala的非关系型数据库sql执行引擎王涛:基于Cloudera impala的非关系型数据库sql执行引擎
王涛:基于Cloudera impala的非关系型数据库sql执行引擎
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础
 
開發環境建置
開發環境建置開發環境建置
開發環境建置
 
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AILangchain and Azure ML and Open AI
Langchain and Azure ML and Open AI
 
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
 
分布式系统日志处理调研
分布式系统日志处理调研分布式系统日志处理调研
分布式系统日志处理调研
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
 
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
 

ELK 交流学习

  • 3. 大纲 ● Lambda 架构 ● ELK 架构 ● Elasticsearch 简介 ○ 查询 ○ 高可用机制 ○ 备份和恢复 ● Kibana 简介 ○ 插件机制
  • 5. Lambda 架构 ● 对现有程序的抽象 和提升 ● 使高效的大数据实 时运算成为可能 ● Google DataFLow ● Apache Storm ● Apache Spark ● Apache Apex ● Apache Samze MapReduce in Large scale
  • 6. ELK 架构 ● ELK 可看成是 Lambda 架构的一种实践 ● Logstash 作为架构中 的核心处理组件 ● 结构灵活,可针对不同 层次和组件进行扩容 ● 使用 Redis/Kafka 作 为数据传输
  • 7. Elasticsearch 简介 ● 分布式多租户全文近实时搜索分析引擎 ● 基于 Lucene ● 基于文档的分布式 NoSQL ● 基于 JSON 的 HTTP 接口
  • 8. Elasticsearch 查询 ● 搜索 ● 聚合 ● 查询 DSL ○ 全文查询 ○ 词级查询 ○ 组合查询 ○ 关联查询 ○ Geo 查询 ○ 跨度查询
  • 9. Elasticsearch DSL # Query string syntax curl -XGET 'localhost:9200/index/type/_search?q=name:wener AND age: >10' # DSL syntax curl -XPOST 'localhost:9200/index/type/_search' -d' { "query":{ "bool":{ "must":[ "term":{"name":"wener"}, "range":{"age":{"gt":10}} ] } } }' ● DSL 大多是对 Lucene 操作的封装 ● 以 JSON 呈现,通过 HTTP 通信 ● 使非 Java 程序也能 很好地利用其强大的 查询能力
  • 10. Elasticsearch 高可用机制 ● 基于分片多副本的形式保证高可用 ● 通过文档唯一标示符进行分片路由 ● 自动进行分片负载均衡 ● 自动进行分片恢复 ● 为避免脑裂需指定最少集群数 ● 集群节点职能分为: 主节点,数据节点,客户端节点, Tribe 节点 ● 可扩展集群中不同节点类型来增加可用性和性能
  • 11. Elasticsearch 服务发现 ● 支持基于广播的节点发现 ● 节点自动加入集群 ● 支持基于 Azure,EC2,GCE 的服务发现
  • 12. Elasticsearch 数据分片 ● 分片 = hash(路由字段) % 主分片数 ● 主分片在索引创建后不可更改 ● 路由字段为 _id 或 _parent ● 过多的主分片会影响性能 ● 进行操作时均可指定路由字段 ● 数据恢复是直接发送索引文件 ● 支持动态冗余即根据节点数量调整副本数量
  • 13. Elasticsearch 持久化 ● 存储以 Lucene 存储为基础 ● 引入事务日志避免数据丢失和过于频繁的 Lucene Commit ● 默认每次修改请求会触发事务日志 fsync ● 默认每隔五秒会触发事务日志 fsync ● 默认更改会一秒后刷新即更改在一秒后对查询可见 ● 当事务日志达到指定大小后则触发段提交 ● 刷新只是重写段 ● 事务日志允许实时 ID 查询 ● 可启用校验和来避免可能的磁盘损坏
  • 14. Elasticsearch 备份和恢复 ● 通过备份和恢复模块提供相应 功能 ● 可备份到文件系统, S3, HDFS, Azure ● 使用文件系统需要预先配置 ● 默认是异步备份 ● 备份为增量备份 # 需要配置 path.repo: /home/data/es-backup # Snapshot repository curl -XPUT 'localhost:9200/_snapshot/backup' -d '{ "type": "fs", "settings": { "compress": "true", "location": "/home/data/es-backup/backup" } }' # Backup curl -XPUT localhost:9200/_snapshot/backup/bckp1 # Restore curl -XPOST localhost:9200/_snapshot/backup/bckp1/_restore # Cancel/Delete curl -XDELETE localhost:9200/_snapshot/backup/bckp1
  • 15. Elasticsearch 弱点 ● 单个索引不能自动扩容 ● 适宜存储不变的文档 ● 对关系型数据的支持有限 ● 近实时搜索 ● 需要进行适当的建模才能发挥其高效的处理能力 ● 产品商业化的必须组件是闭源的收费插件 ● 占用资源较高
  • 16. Kibana 简介 ● Elasticsearch 的数据分析和可视化平台 ● 基于 Nodejs ● 可基于插件进行功能扩展 ● 插件可针对视图,应用,字段格式等进行扩展 ● 可使用工具直接生成插件基础项目 ● Kibana 开源替代产品 Grafana ○ 服务端为 Golang ○ 支持较多的数据源 ○ 数据可视化功能完善但缺少针对 Elasticsearch 的分析操作
  • 17. 图库数据分析 ● 自身以关系为主 ● 用于呈现数据相互之间的自然关系 ● 传统关系型数据库专注于数据的聚合,图库专注于数据之间的关系链接 ● 用例: 主数据管理,网络管理,实时推荐,欺诈检测,社交网络,身份访问分析等
  • 18. 关系型数据处理示例 - Elasticsearch ● 以日志为中心 ○ 索引搭载日志 ○ 索引驾驶日志 ○ 索引车祸日志 ○ 无法维系数据关系 ○ 日志需要保持相当长时间 ● 以对象为中心 ○ 索引司机信息 ○ 索引汽车信息 ○ 索引乘客信息 ○ 大量更新性能降级 ○ 单个索引庞大难以维护 ● 程序端做复杂关系关联处理维护
  • 19. 关系型数据处理示例 - 图库 ● 数据以关系为主 ● 呈现数据之间的自然联系 ● 服务端做关系处理 ● 面向关系的原生查询语言