借助 amazon elasticsearch service (amazon es)企业级服务 洞悉 … · amazon elasticsearch...

73
AWS 中国(宁夏)区域由西云数据运营 AWS 中国(北京)区域由光环新网运营 AWS 中国(宁夏)区域由西云数据运营 AWS 中国(北京)区域由光环新网运营 王晓野 ,AWS 解决方案架构师 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉海量日志背后的业务价值

Upload: others

Post on 22-Aug-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

王晓野 ,AWS 解决方案架构师

借助 Amazon Elasticsearch Service (Amazon ES)企业级服务

洞悉海量日志背后的业务价值

Page 2: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

议程

1. Elasticsearch的基本功能与适合的工作负载

2. Elasticsearch的基本原理和常见的API调用

3. 利用Amazon Elasticsearch Service 安全规模化的进行日志分析

4. Amazon Elasticsearch Service 案例分享

Page 3: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

您的产品 您的客户

Elasticsearch!

Page 4: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

您的 infrastructure基础设施 您的 dev/ops 团队

Elasticsearch!

Page 5: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

另外还有前端和监控

Page 6: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Application Data

应用数据Server, application,

network, AWS, and

other logs

服务器,应用,网络,AWS api调用,以及其

他日志

Amazon Elasticsearch Service Domain

with index(es)

Amazon Elasticsearch Service 域的索引

它是一种广义的数据库

1. 通过 REST APIs 以JSON形式发送数据

2. 数据被索引- 全部字段都可被检索, 包括嵌套式的JSON

3. 通过 REST APIs 发出的查询请求, 允许对字段进行匹配检索, 布尔型表达式判断, 以及排序和分析

1

2

3

Application users, analysts, DevOps,

security

应用用户,分析师,DevOps 工程师,安全安全部门等

Page 7: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

背后的秘密 : Elasticsearch 核心概念和架构

Page 8: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

数据被存储在 “索引”(index)中, 在不同的“分片”(shard)中分布

All docs

1/51/5 1/5 1/5 1/5

Index

ID

Field: value

Field: value

Field: value

Field: value

Page 9: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

分片(Shards) 分为主分片(primary)和 副本(replica)分片

Index索引

ID

Field: value

Field: value

Field: value

Field: value

Primary shards

Replica shards

Page 10: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Elasticsearch 的核心概念以及与数据库的对照

• 在一个索引中,可以索引不同类型的文

档,如用户部门、电影分类等Type 类型

• 被索引的一条数据,索引的基本信息单

元,以JSON格式来表示。Document 文档

• 创建索引时可以指定分成多少个分片

来存储,被放置在集群的任意节点上。

•水平切分/扩展容量

•并行的操作,提高系统的性能和吞吐量。

Shards 分片

•一个分片可以有多个备份(副本)

•高可用

•扩展搜索的并发能力、吞吐量。

Replicas 副本

RDBMS Elasticsearch

数据库(database) 索引(index)

表(table) 类型(type)

行(row) 文档(document)

列(column) 字段(field)

SELECT * FROM table GET http://....

UPDATE table SET PUT http://....

DELETE DELETE http://...

Page 11: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

AWS Cloud

Elasticsearch 跑在拥有多个实例的集群上

VPC

Data Nodes 数据节点 Master Nodes 主节点

AWS Management

Console

AWS管理控制台

AWS Command Line Interface

AWS 工具及SDKs

AWS CloudFormation

基础设施即模版服务

AWS Identity

and Access

Management

(IAM)

IAM 访问权限管理服务

Elastic Load Balancing

(ELB)

负载均衡器

AWS

CloudTrail

Amazon

CloudWatch

AWS

Database

Migration

Service

Amazon Kinesis

Data FirehoseAmazon

CloudWatch

Logs

Amazon ES Domain

Page 12: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Elasticsearch 将分片(shards)分布在不同数据节点( data nodes)

Queries查询

Updates更新

Page 13: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Elasticsearch 部署架构参考

Data store Web APIs

Social Sensors

Kafka

Redis

Messaging Queue

Logstash

Workers (2+)

Kibana

Elasticsearch

Master (3)

Ingest (X)

Data – Hot (X)

Data – Warm(X)

Machine Learning(2+)

Coordinating (X)

Alerting (X)

HEARTBEAT

Beats

METRICBEAT

PACKETBEAT

FILEBEAT WINGLOGBEAT

AUDITBEAT

Page 14: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Search

检索

Page 15: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

检索数据流

展示 应用 数据库

Distribution Page

rendering

Business

logic 主要目录, 真相来源

高速数据 - 库存,点击次数,评级,位置

赋能应用内容的查找

Amazon CloudFront Amazon EC2 Amazon EC2

Amazon RDS

Amazon DynamoDB

Amazon

Elasticsearch Service

Page 16: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

数据是结构化的:标题,描述,评级等。

检索文档(Documents)是不同实体(entities)的结构化表示

Page 17: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

{

"id" : "tt0371746",

"title" : "Iron Man",

"release_date" : "2008-04-14T00:00:00Z",

"actors" : [

"Robert Downey Jr.",

"Gwyneth Paltrow",

"Terrence Howard"

],

"directors" : [

"Jon Favreau"

],

"rating" : 7.9,

"rank" : 171,

"running_time_secs" : 7560,

"genres" : [

"Action",

"Adventure",

"Sci-Fi"

],

"plot" : "When wealthy industrialist Tony Stark is forced to build an armored suit after a life-threatening incident, he ultimately decides to use its technology to fight against evil.",

}

Elasticsearch使用包含字段和值的结构化JSON

Page 18: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

您使用索引API将数据发送到Elasticsearch *

POST

endpoint/index/type/id

{

Document

}

POST

endpoint/index/_bulk

{ Command }

{ Document }

{ Command }

{ Document }

* 您的数据注入工具应该已经自动管理了这部分

Page 19: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

您使用查询API从Elasticsearch检索数据

Amazon ES Domain

含排名次序的结果匹配成功

Page 20: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

查询引擎匹配请求的字段值

字段(F):值(V)

Field1:value1

Field2:value2

Movies index

F1 index F2 index

V1

V2

Vn

V1

V2

Vn

ID

Field: value

Field: value

Field: value

Field: value

Page 21: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Elasticsearch REST call 语法

<verb> http(s)://<endpoint>/[<index>/][<type>/]<api> -d <body>

Verb HTTP verb

Endpoint创建的 Elasticsearch Service 域。 无论是公共访问还是VPC访问,每次调用都使用DNS解析,不要缓存 IP

Index 使用单个索引名称,多个索引请使用逗号或通配符

Type 操作单个type

API 所调用的 API 名称

Body 不是每个call都有 Body,比如del

Page 22: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Elasticsearch 倒排索引及检索方式

JSON 文档在被写入时被整理成倒排索引 posting list 结构

term Doc 1 Doc 2 Doc 3 ……

aws X X ……

amazon X X ……

china X ……

jeff X X ……

Page 23: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

应用场景 : Full text search全文检索

案例研究: Nike 耐克

痛 点

Amazon ES的自动部署及管理工具大大简化了耐克的开发周期,使得新搜索体验time-to-market上市速度获得提升

获 得 益 处

解 决 方 案

直接面向消费者业务的快速增长一个重度扩展,脆弱的商业搜索解决方案

Amazon Elasticsearch Service 服务作为耐克的核心搜索引擎

Page 24: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Log

Analytics

日志分析

Page 25: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

日志分析数据流

Data Producers

数据生产Collection 采集

Permanent

cold storage

持久数据冷存储

Transformation 转换

Analysis and

Reporting

报告及分析展示

Page 26: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

每“行”日志 都有各种字段(Fields),其中包含可以搜索和分析的数据

Page 27: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

您使用聚合功能来分析日志数据

Amazon ES Domain

Page 28: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

使用Elasticsearch进行日志分析时,创建每日索引

在数据注入时,使用根字符串创建索引,例如logs_

根据数据量,制定定期数据轮转的时间间隔 :一般为每日

每日索引简化了索引管理。 删除最旧一天的索引以在群集上释放更多空间

logs_11.26.2018

logs_11.25.2018

logs_11.24.2018

logs_11.23.2018

logs_11.22.2018

logs_11.21.2018

logs_11.20.2018

Page 29: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Kibana 轻量级的实时可视化工具

Page 30: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

幕后原理

Page 31: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

应用场景:应用程序监控和根本原因分析

案例研究 : EXPEDIA

日志,大量日志。如何有效地监控日志?

需要基础设施支持集中式日志管理

没有人力资源支持来管理基础设施

痛 点

快速见解:能够实时识别问题并排除故障

安全 : 与AWS IAM 权限管控服务集成

可扩展 : 群集大小能够自由增长扩冲以适应其他日志源

获 得 益 处

将AWS CloudTrail日志,应用程序日志和Docker启动日志流式传输到

Elasticsearch

为所有团队成员创建集中式日志管理服务

使用Kibana进行可视化和Elasticsearch 查询

解 决 方 案

Page 32: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Amazon Elasticsearch Service是一

项完全托管的服务,可以轻松部署,

管理和扩展Elasticsearch和Kibana

Page 33: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

无缝的数据加载,安全性,审计和

编排

Benefits of Amazon Elasticsearch Service

直接替换,无需学习新的API或技能 在几分钟内部署生产就绪的

Elasticsearch集群

只需单击几下或单个API调用即

可调整群集大小

部署到您的VPC并使用安全组和

IAM策略限制访问

通过可用区域进行复制,具有监

控和自动自我修复功能

支持开源的API和工具 易于使用 易于扩展

安全 高可用 与其他AWS服务紧密集成

Page 34: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

数据湖目录检索

• 使用S3创建事件(Events)来触发Lambda函数

• Lambda 转换并传送数据

• 与Athena 服务配合使用

Files

S3 Events

Amazon Simple Storage

Service (S3)AWS Lambda Amazon

Elasticsearch Service

Page 35: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

基础设施监控:数据管道开源实现

• ELK: Elasticsearch, Logstash 以及 Kibana

• Beats: 轻量级日志收集器

• 对于高容量写入,使用缓冲区Buffer – 此处举例使用Redis

Logstash

on EC2

Amazon EC2 Amazon ElastiCache

For Redis

Amazon

Elasticsearch Service

Page 36: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

基础设施监控/SIEM: AWS服务为核心实现

• 为更高容量的数据采用流技术

• 有些客户使用CloudWatch Logs

• 许多客户使用自建Kafka 结合 Beats 来做日志的收集

Amazon EC2/

Kinesis Agent/

Beats/

Etc.

Amazon

Elasticsearch Service

Amazon Managed

Streaming for Kafka

Amazon Kinesis

Amazon EMR

Page 37: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Metrics

Logs

容器监控

• App 容器, Pods, 系统, Nodes节点

• Kubernetes Events, 不可达 pods

• 应用日志 & 指标

• 系统 日志 & 指标

• 集群容量, 性能, 网络流量

• 响应式分析 & 故障排查

VPC

Amazon Elastic

Container Service for

Kubernetes

Metricbeat

Fluentd

Elastic network

interface

Elastic network

interface

Elastic network

interface

VPC

Amazon

Elasticsearch Service

健康状况 & 性能 监控

Page 38: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

用你的数据提供告警

Page 39: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

创建告警alerts

• 使用 Triggers 和 Actions 定义Monitors

• 使用数值型数据,通可视化方式或使用query来提取

• 向SNS,Slack或自定义目标发送通知

Page 40: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Scaling 扩展

Page 41: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

您可以设置基本参数来控制扩展规模

按照计算和存储的需要来部署实例

增加实例的数量来提升并发能力

实例类型 实例数量

索引数据(主分片及副本分片) 通过磁盘存储

分片(Shards) 是计算和存储的基本单元

存储 分片数量

Page 42: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

第1步:评估存储需求(Storage)

所需存储空间 =

原始数据/天 * 1.1 * 2 *

留存天数 * 1.15

每天1TB 的原始数据需要 17TB 的存储空来提供间7 天的历史数据留存

Page 43: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

第2步:评估分片数量(Shards count)

主分片(Primary Shards)数量=

每日索引(index)大小/ 40 GB

每天 1TB 的索引(index), 需要 25 shards

Page 44: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

第2步:评估分片数量(Shards count)

*PUT <endpoint>/_template/template1 {

"index_patterns": [”logs*"],"settings": {

"number_of_shards": 50,"number_of_replicas": 1

}}

日志分析场景, 可以配置template

Page 45: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

第3步:根据使用情况进行调整

保持活动分片(Active Shards)数<CPU数

活动分片 Active shards

• Query 请求:主分片

• Updates 请求 : 主分片及副本分片

Page 46: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

例如: 每天1 TB的4个数据流意味着40个总分片(20个主分片和20个副本)处于活动状态,因此确保总共有64个CPU

第3步:根据使用情况进行调整

Page 47: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Tshirt sizes(机型大小建议)

TShirtSize

Data(Per day)

Storage needed

Active

Shards(Maximum)

Total Shards(Maximum)

Instances (节点实例)

XSmall 10 GB 177 GB 4 300 2x M4/R4.large data

Small 100 GB 1.7 TB 8 600 4x M4/R4.xlarge data

Medium 500 GB 8.5 TB 30 3000 6x I3.2xlarge data

Large 1 TB 17.7 TB 60 3000 6x I3.4xlarge data

XLarge 10 TB 177.1 TB 600 5,000 30x I3.8xlarge data

Huge 80 TB 1.288 PB 3400 25,000 85x I3.16xlarge data

Page 48: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

I3系列节点实例成本更加优化而且性能良好

Page 49: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Monitor Your Domain

监控AES域

Page 50: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Amazon ES将指标数据按集群和节点粒度发送到CloudWatch,以获取数据和主节监控指标

• CPU利用率,可用存储空间,搜索和更新速率和延迟,队列深度等

Page 51: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

创建 CloudWatch alarms 告警

Name

指标名称Metric

聚合计算Threshold

阈值Periods

触发周期

ClusterStatus.red Maximum >= 1 1

ClusterIndexWritesBlocked Maximum >= 1 1

CPUUtilization/MasterCPUUtilization Average >= 80% 3

JVMMemoryPressure/Master... Maximum >= 80% 3

FreeStorageSpace Minimum <= (25% of

avail space)

1

AutomatedSnapshotFailure Maximum >= 1 1

Queue depth Average >= 100 1

Rejected Executions Maximum >= 1 1

Page 52: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

监控Elasticsearch日志

• 控制台轻松配置

• 与 CloudWatch Logs 服务集成

• 设置阈值触发来接收慢查询以及慢索引对应的日志事件

• 接收全部的 ERROR 和 WARN 日志

Queries and

Updates

Slow query logs

慢查询日志

Slow indexing logs

慢索引日志

Error logs

错误日志

Page 53: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

监控系统是容量规划(capacity planning)的重要组成部分

Deploy-Monitor-Adjust, 部署-监控-调整以适应是合理规划集群规模的正确姿势。

Amazon ES 服务根据不同的工作负载有不同的性能表现,世界上不存在一种one-size-fits-all 的算法能够针对所有负载直接给出容量规划。

Page 54: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Security

安全

Page 55: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

安全

您和一个endpoint 终端节点地址与Amazong ES 交互– DNS

使用 Cognito 服务身份验证和IDP

使用VPC 来限制IP地址空间

IAM 服务用于控制 ES 和 Amazon ES API 的调用权限

KMS 服务用于数据的静态加密

TLS 保障数据传输中加密

Instance

Storage

Page 56: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

使用 IAM 服务控制公有public endpoint 访问

{ "Version": "2012-10-17",

"Statement": [ {

"Effect": "Allow",

"Principal": {

"AWS":

"arn:aws:iam::XXXX:root”

},

"Action": "es:*",

"Resource":

"arn:aws:es:

us-west-2:XXXX:domain/YYYY/*”

}

]

}

• 要授予Kibana访问权限,请使用CIDR条件

• 要授予对帐户或角色的只读访问权限,请指定允许es:HttpGet操作(Action)

• 要将用户权限限制为特定索引或API,请将其添加到Resource

• 对于管理员访问权限,请指定administrative es:* Actions

Page 57: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

为private私有private endpoint添加安全组

指定子网和安全组以对 入站/出站流量应用CIDR限制

VPC

Availability Zone 1

Security group

Availability Zone 2

Security group

VPC

IAM

Availability Zone 1

Availability Zone 2

Page 58: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Durability

持久性

Page 59: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

在生产中使用3个专用主节点

• 专属的主节点负责协调 使集群更加稳定

• 使用3个主节点提升可用性

• 主节点会被部署在1 或 3个可用区(Azs)

Amazon ES Domain

VPC

Availability Zone 1

Availability Zone 2

Page 60: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

专属主节点类型推荐

分片数量, 索引数量和mapping 大小是主节点使用率的主要影响因素。

您可以选择部署与的数据节点不同的主节点实例类型。

Maximum number

of data nodes

Maximum shard

count

Master node

instance type

10 2500 C5.large

30 5000 C5.xlarge

75 10,000 C5.2xlarge

75+ < 30,000 R4.Rxlarge

Page 61: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

区域感知 – 3 zone

• 最高可用性选项

• 添加额外的数据节点. 至少配置1 分片副本 (2 更好)

Elasticsearch

data node

Elasticsearch

master node

Availability Zone 1 Availability Zone 2 Availability Zone 3

Elasticsearch

data node

Elasticsearch

master node

Elasticsearch

master nodeElasticsearch

data node

Page 62: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Service snapshots 服务快照

服务每天进行快照备份, 保留14天

Page 63: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

使用 Elasticsearch _snapshot API

• 您可以使用_snapshot API 配置并执行snapshots快照

• 推荐您手动执行快照

Amazon S3

bucket

Amazon

Elasticsearch Service

Role

Page 64: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

我们如何计费?

实例运行时长, EBS卷 (optional), AWS Data Transfer数据传出流量

1 至 3 年RI预留实例 NURI/PURI/AURI RIs

海外区域支持 AWS Free Tier

Page 65: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Wrap up 总结

• 无论您是监控基础架构还是搜索应用程序数据,Amazon Elasticsearch Service都能帮助您更加容易的的找到所需的信息

• Amazon ES服务提供提供企业级易用性,可扩展性,安全性,高可用性以及与现有开源软件的兼容性

• 通过与其他AWS服务的紧密集成,您可以很快获取平台数据并开始工作

Page 66: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Page 67: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Open Distro for Elasticsearch基于 Apache 2.0 许可的 Elasticsearch 发行版带有企业级安全性,警报,SQL等更多增强型功能

100% 开源提供最大自由度, 您可以随

意 浏览, 使用, 更改乃至发行源代码

企业级提供安全性和高级功能,如

警报,SQL和集群诊断

社区驱动为个人和组织提供

轻松为发行版提出改进的自由

Page 68: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Security 安全

• 多租户 Kibana

• Document and field级别安全控制

• 与LDAP 及其它IDP连接

Amazon

Elasticsearch Service

Page 69: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

SQL 插件

GET _opendistro/_sql

{ "query" :

"select COUNT(*),SUM(age),MIN(age) as m, MAX(age),AVG(age)

FROM bank GROUP BY gender ORDER BY SUM(age), m DESC"

}

• ES本质不是一个关系型数据库

• 适用场景 :为现有的 SQL 用户向新的技术环境迁移提供便利的迁移环境

• 支持 non-relational 非关系型SQL 语句和 一些 Elasticsearch APIs

Page 70: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Alerting 告警

• 通过可视化方式或使用query来从日志中提取数据

• 基于提取的数值条件化出发

• 向Slack, Chime, 或 自定义webhook发送告警

Page 71: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Performance 性能监控

• Performance analyzer 通过REST请求获取~75性能指标

• 轻量级可视化工具PerfTop

Page 72: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Open Distro for Elasticsearch – 参与其中!http://opendistro.github.io/for-elasticsearch

Page 73: 借助 Amazon Elasticsearch Service (Amazon ES)企业级服务 洞悉 … · Amazon Elasticsearch Service Domain with index(es) Amazon Elasticsearch Service 域的索引 它是一种广义的数据库

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

我们希望您喜欢今天的内容!也请帮助我们完成反馈问卷。

欲获取关于 AWS 的更多信息和技术内容,可以通过以下方式找到我们:

微信公众号:AWSChina

新浪微博:https://www.weibo.com/amazonaws/

领英:https://www.linkedin.com/company/aws-china/

知乎:https://www.zhihu.com/org/aws-54/activities/

视频中心:http://aws.amazon.bokecc.com/

更多线上技术活动:https://aws.amazon.com/cn/about-aws/events/webinar/

感谢参加 AWS 在线研讨会