Sunday, July 7, 2019

AWS CloudWatch

实时监控您的AWS资源以及您在 AWS 中运行的应用程序。我用过的是用CloudWatch来自定义面板来显示dynamoDB和SQS,RDS的指标,以及管理应用程序的日志文件。

应用场景
自定义控制面板,以显示有关自定义应用程序的指标
创建警报,例如,您可以监控您的 Amazon EC2 实例的 CPU 使用率以及磁盘读写情况

最佳实践
与 Amazon CloudWatch 一起使用:
* Amazon SNS用于协调和管理向订阅终端节点或客户交付或发送消息的过程。
 可结合使用 Amazon SNS 与 CloudWatch 以便在达到警报阈值时发送消息。
* Amazon EC2 Auto Scaling 根据用户定义的策略、运行状况检查和时间表自动启动或终止
   Amazon EC2 实例。可将 CloudWatch 警报与 Amazon EC2 Auto Scaling 一起使用以根据需求扩     展 EC2 实例。
* AWS CloudTrail 可用于监控对您的账户的 Amazon CloudWatch API 的调用(包括由 AWS 管理控制台、
* AWS CLI 和其他服务进行的调用)。开启 CloudTrail 日志记录后,CloudWatch 将日志文件写入到您在配置 CloudTrail 时指定的 Amazon S3 存储桶。
* AWS Identity and Access Management (IAM) 是一项 Web 服务,可帮助您安全地控制用户对 AWS 资源的访问权限。通过 IAM 可以控制哪些人可以使用您的 AWS 资源(身份验证)以及他们可以使用的资源和采用的方式(授权)。

架构
AWS资源周期性地将指标上传到CloudWath

SQS Metrics
DLQ: ApproximateNumberOfMessagesVisible, 15min, Sum

CloudWatch Events

近乎实时的系统事件流,这些系统事件描述 Amazon Web Services (AWS) 资源的变化。通过使用可快速设置的简单规则,您可以匹配事件并将事件路由到一个或多个目标函数或流。
还可以用来计划使用 cron 或 rate 表达式在某些时间自行触发的自动化操作

最佳实践
计划自动化 EBS 快照
当文件上传至 Amazon S3 存储桶时运行 Amazon ECS 任务
在 AWS 账户之间发送和接收事件

架构
事件 —事件表示 AWS 环境中的更改。AWS 资源可以在其状态更改时生成事件。例如,Amazon EC2 在 EC2 实例的状态从待处理更改为正在运行时生成事件
目标—目标负责处理事件。目标可包括 Amazon EC2 实例、AWS Lambda 函数、Kinesis 流、Amazon ECS 任务、Step Functions 状态机、Amazon SNS 主题、Amazon SQS 队列和内置目标。目标接收 JSON 格式的事件。
规则—规则匹配传入事件并将其路由到目标进行处理。

Amazon CloudWatch Logs

日志文件服务。应用程序的日志可上传到此,可以统一搜索,统计

搜索日志表达式
如果日志是json
{ ($.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = nonmatch) && $.actions[2] = nomatch }


功能
CloudWatch Logs Insights 分析日志数据。这个可以用于cross query多个service的log
CW的query支持一些aggregation操作如stats count(user_operation) by user
count_distinct 只返回估计值如果cardinality太高

CloudWatch Synthetic
Canary用于检测UI和API,replay traffic

No comments:

Post a Comment