AWS 日志监控 CloudWatch


theme: orange

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第14天,点击查看活动详情

在使用AWS提供的众多产品过程中,人们往往会混淆 AWS CloudWatch、 AWS CloudTrail 和 VPC 流日志。在这篇 AWS 文章中,我们将学习 CloudTrail Vs CloudWatch Vs Flow Logs,比较三者之间的详细区别。

什么是CloudWatch?

关键词:应用程序,服务,网络,指标,监控,告警

亚马逊CloudWatch实际上是一个监测系统,用于监测你的应用程序、网络和AWS资源。这项服务允许对AWS EC2和其他服务进行监控,借助于这样的监控你可以知道任何崩溃或停机情况。并且CloudWatch 提供了有关应用程序性能的监视视角,以保证这些应用程序总是能够平稳有效地运行。

对于监控,您可以创建警报,通过这些警报监视指标,当指标超出阈值时,它们会发送通知或者对您所监控的资源自动进行更改。使用CloudWatch检测任何问题,设置警报,可视化日志,自动处理,并获得应用程序健康状况的整体视图。监控系统范围包括但不限于:

  • 资源使用率
  • 应用程序性能
  • 运行状况

其提供的基本监控是免费的,你可以用它来监控你的AWS资源,如EBS卷EC2实例,等等。监控分为两种,包括:

  • 基本监控,这是一个免费的监控服务,基本的监控指标(频率是5分钟),提供10个详细的监控指标(频率为1分钟)以及100万个API请求,5GB的数据日志,三个监控仪表盘等等。
  • 详细监控,这是一个收费的监控服务,将以 1 分钟为间隔显示实例的监控图表。这项服务每月按具体使用的详细指标情况收费。

image.png

AWS CloudWatch Monitoring—Real-Time Performance Metrics | SolarWinds  AppOptics

其好处是什么?

总的来说通过实时感知能力,进一步改善了运营成本和大大地提高了对AWS资源的监控能力。

那么其工作原理是什么呢?

Amazon CloudWatch 本质上是一个指标存储库。AWS 服务(例如 Amazon EC2)会将指标放在存储库中,而您可以根据这些指标来检索统计数据。如果将自己的自定义指标放在存储库中,则还可以检索有关这些指标的统计数据。

img

您可以在 CloudWatch 控制台中使用指标计算统计数据,然后以图形化的方式显示数据。在满足特定条件时,您可以配置告警操作以停止、启动或终止 Amazon EC2 实例等等。


看的不尽兴,想了解更多监控日志,跳转到下一篇 《AWS 日志监控 CloudTrail Vs CloudWatch》

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
AWS SAM(Serverless Application Model)提供了一个方便的方式来生成和管理 Lambda 函数和其他服务资源。如果您想将 CloudWatch 日志发送到 Lambda 函数进行处理,可以通过以下步骤实现: 1. 在 `template.yaml` 文件中为 Lambda 函数定义一个 CloudWatch 日志组,例如: ``` Resources: MyFunction: Type: AWS::Serverless::Function Properties: ... Environment: Variables: ... Policies: - AWSLambdaBasicExecutionRole Events: MyEvent: Type: Schedule Properties: Schedule: rate(1 minute) MyFunctionLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: "/aws/lambda/MyFunction" RetentionInDays: 7 ``` 这将在 CloudWatch 中创建一个日志组 `/aws/lambda/MyFunction`,并将其与 Lambda 函数 `MyFunction` 关联。 2. 在 Lambda 函数中添加 CloudWatch 日志处理程序。在 Python 中,您可以使用 `boto3` 库和 `json` 模块来解析和处理日志事件,例如: ```python import boto3 import json def lambda_handler(event, context): logs = boto3.client('logs') for log_event in event['awslogs']['data']: payload = json.loads(log_event['message']) # Process the log message here ``` 3. 在 `template.yaml` 文件中将 Lambda 函数与 CloudWatch 日志组关联,例如: ``` Resources: MyFunction: Type: AWS::Serverless::Function Properties: ... Environment: Variables: ... Policies: - AWSLambdaBasicExecutionRole Events: MyEvent: Type: Schedule Properties: Schedule: rate(1 minute) MyFunctionLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: "/aws/lambda/MyFunction" RetentionInDays: 7 MyFunctionLogSubscriptionFilter: Type: AWS::Logs::SubscriptionFilter Properties: DestinationArn: !GetAtt MyFunction.Arn FilterPattern: "" LogGroupName: !Ref MyFunctionLogGroup ``` 这将在 CloudWatch 日志组 `/aws/lambda/MyFunction` 中添加一个订阅过滤器,将所有日志事件转发到 `MyFunction` Lambda 函数进行处理。 注意:这只是一个简单的示例,实际的实现可能会因环境和需求而异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值