AWS 云集成和云监控介绍
SQS (Simple Queue Service)
– AWS自家的MQ产品
– serverless
– 需要consumer自己从queue中读取信息
SNS (Simple Notification Service)
– AWS自家的消息推送服务
– serverless
– 当trigger了,这个服务就会像多个订阅的服务http 、email推送信息
– 如果订阅的服务有系统错误的话是无法读回列队中信息的,这是SNS和SQS最大的区别,当SNS向订阅的服务推送了信息就会马上删除信息了
Kinesis
– 实时大数据串流(streaming)服务
– 实时收集,处理,分析大数据
– serverless服务
Amazon MQ
– 不是serverless
– 支持RabbitMQ和ActiveMQ
CloudWatch Metrics
– 监看服务器,或是服务的监控指标
CloudWatch Metric Stream
– 能够接近real time delivery和low latency把metric数据传到Kinesis Data Firehose或是第三方比如datadog / splunk 等等
CloudWatch Alarms
– 服务报警服务,经过SNS推送
– 可以设定各种的报警条件:服务器关闭 / cpu或内存使用量 / 或是ASG扩展
– 关于费用的billing alarm只能够在这个region设置而已:N.Virginia ( us-east-1 )
CloudWatch Logs
– serverless服务
– 可以把所有应用上的日志往这里集中化储存
– 默认log是被开启了加密的,或是可以使用自己的KMS进行加密
-可以set log的expiration
– 数据源:
– SDK, CloudWatch Log Agent, CloudWatch Unified Agent
– Elastic Beanstalk: 从application收集log
– ECS:收集container的log
– AWS Lambda: 收集function log
– VPC Flow Log: 收集VPC的流量log
– API Gateway: 收集对于API请求的log
– CloudTrail 根据filter 往log保存
– Route53: DNS Query log
– 可以使用CloudWatch log export把日志导出到S3粗存起来,log最久需要等12小时才能够导出,可以使用CreateExportTask API导出日志
CloudWatch Log Agent
- 默认的情况EC2是不会把log往CloudWatch Log传送的
- 需要在EC2安装Agent,或是on prem服务器安装Agent才能进行数据收集
- EC2需要设定好IAM Role权限,那么才能够往CloudWatch Log传送日志
CloudWatch Logs Insights
- 可以query根据时间跨度找出你想要的日志
CloudWatch Logs Subscriptions
- 允许log被订阅,当有新的日志产生的时候就会往下游传送日志
- subscription filter 能够根据filter的日志,把日志传送到你想要的下游
- 下游目的地有:Kinesis Data Firehose, OpenSearch, Kinesis Data Stream, Lambda
- 可以进行log aggregation 日志聚合,来自不同的account ,或是不同region的日志
EventBridge
– 可以设置类似Cronjob任务
– 比如cronjob trigger lambda function等等
– 可以设置活动监听,比如带code codemit push了代码,可以trigger codebuild进行打包
- EventBridge当中的EventBus如下图的结构,EventBus 就像一个中转站,接收来自不同来源(比如 AWS 服务、第三方应用或者自定义应用程序)的消息(事件),然后根据预设的规则把这些消息转发给需要处理它们的目标(比如 Lambda 函数、数据库等)
- EventBus 可以根据消息的内容进行筛选。只有符合特定条件的消息才会被转发给特定的处理目标。比如,只有包含某些关键字的消息才会被发送到某个 Lambda 函数进行处理。
- 如果有使用AWS Organization的话,可以聚合子账号当中的event,统一管理,而且也允许或拒绝夸AWS账号访问Event
CloudTrail
– 云服务的审计追踪
– 任何云服务的更改都会被记录起来
X-Ray
– 分析、调试和优化分布式mircro serviceses性能的服务。它可以帮助开发人员了解应用程序在不同服务之间的请求流程和性能瓶颈。
CodeGuru
– 使用机器学习分析自己的代码,找出bug和优化程序
Health Dashboard
– 一个提供关于AWS服务状态和事件的集中化信息源的服务。它可以帮助用户了解当前和历史上发生的与AWS服务相关的问题和事件
– 一个监控中心,它汇集了关于AWS服务的各种健康和事件信息。当AWS服务出现故障、维护或其他重要事件时,AWS Health Dashboard会提供及时的通知和更新,以便用户能够了解到服务的状态和可能影响