使用 L CloudWatch ogs Insights 监控应用程序活动 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 L CloudWatch ogs Insights 监控应用程序活动

Ram Kandaswamy,Amazon Web Services

摘要

此模式为使用 Amazon Lo CloudWatch gs Insights 自动检测应用程序异常并发出警报提供了解决方案。通过实施自动日志分析和警报,您可以快速识别生产环境中的应用程序问题并做出响应。

日志在监控系统行为、识别问题和确保最佳性能方面起着至关重要的作用。在迁移过程中,日志文件对于验证系统在新环境中的运行情况、检测兼容性问题和识别任何意外行为非常有用。问题可能与操作或安全有关。对于安全相关问题,尽早发现未经授权的访问企图或可疑活动对于维护安全和监管合规性至关重要。在处理敏感数据或关键系统时,此功能尤其重要。

对于需要保持高应用程序可用性并快速响应生产问题的团队来说,这种模式特别有价值。它与各个行业和用例息息相关。例如,在电信领域,它可以快速识别网络配置错误或中断,并检测次优的路由路径,从而精确定位潜在的拥塞。在物联网 (IoT) 领域,Greengrass 组件可以 CloudWatch将日志发布到,从而允许该技术提取相关的日志详细信息并将其显示在综合控制面板中。

先决条件和限制

先决条件

  • 在活动状态下部署的生产应用程序 AWS 账户

  • 对生产应用程序的日志格式和异常模式有基本了解

  • 配置为流式传输到 Amazon CloudWatch 日志的应用程序日志

限制

架构

下图显示了 CloudWatch Logs Insights 如何评估资源日志并将相关的数据可视化发送到 CloudWatch 仪表板。

CloudWatch Logs Insights 评估资源日志,并将数据可视化发送到仪表板。

图表显示了以下工作流:

  1. 这些资源将日志发布到 CloudWatch 日志。资源可以包括诸如亚马逊弹性计算云 (Amazon EC2) 实例或亚马逊简单存储服务 (Amazon S3) Simple Service 存储桶之类的 AWS 资源。另一个示例包括安装了 CloudWatch 代理的本地系统,这些系统可以将日志发布到 CloudWatch。

  2. CloudWatch 记录相关模式字符串的 Insights 过滤器。搜索模式字符串的示例包括 “错误”、“异常” 或特定的正则表达式。

  3. 通常,生产支持团队或开发人员会将模式可视化添加到 CloudWatch 仪表板中。

自动化和扩缩

开发人员可以通过使用 AWS Cloud Development Kit (AWS CDK) AWS CloudFormation、或来处理多个字符串模式 AWS SDKs 来自动执行此模式的解决方案。团队可以将这种自动化整合到他们的持续集成和部署 (CI/CD) DevOps 流程中。

工具

AWS 服务

最佳实践

操作说明

Task描述所需技能

配置 IAM 权限。

要配置 IAM 权限,请执行以下操作:

  1. 确定您的应用程序用于写入日志的 IAM 角色以及用于创建仪表板、查询和警报的用户或服务使用的 IAM 角色。

  2. 对于应用程序角色,将以下 API 操作和资源添加到策略中:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  3. 要管理 CloudWatch 资源,请在策略中添加以下内容:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutDashboard", "cloudwatch:GetDashboard", "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "cloudwatch:PutMetricAlarm" ], "Resource": "*" } ] }

有关如何创建 IAM 策略或向现有策略添加权限的信息,请参阅 IAM 用户指南中的使用客户托管策略定义自定义 IAM 权限和编辑 IAM 策略。有关更多信息,请参阅 Amazon Logs 用户指南中的 Amazon CloudWatch CloudWatch 日志和日志的身份和访问管理权限参考。 CloudWatch

AWS 管理员、AWS DevOps、AWS 系统管理员、云管理员、云架构师、 DevOps 工程师

创建日志组。

要创建日志组,请使用以下任一选项:

  • 创建或打开.json扩展名为或的 CloudFormation 模板文件(YAML 或 JSON 格式)。.yaml(以下代码使用 YAML 格式。) 将以下资源定义添加到模板的 “资源” 部分:

    MyLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: my-log-group

    有关更多信息,请参阅 Amazon L CloudWatch ogs 用户指南中的快速入门:使用 AWS CloudFormation CloudWatch 日志入门。

  • 按照《Amazon Logs 用户指南》中 “ CloudWatch 日志” 中的创建 CloudWatch 日志中所述使用 CloudWatch 控制台。

  • 使用日CloudWatch 志 API 中的CreateLogGroup操作。

AWS 管理员、AWS DevOps、AWS 系统管理员、云管理员、云架构师、 DevOps 工程师

生成 “ CloudWatch 日志见解” 查询。

要创建和保存 “ CloudWatch 日志见解” 查询,请执行以下操作:

  1. 打开控制 CloudWatch 台。

  2. 导航到 “日志见解”。

  3. 使用以下方法之一创建查询:

    • 从 “查询” 部分的示例查询开始。

    • 编写自定义查询。

    • 修改以下示例查询:

      fields @timestamp, @message | filter @message like /(?i)exception/|stats count() by bin(30s)

      此查询会检查日志文件,提取时间戳和消息内容,筛选 “异常” 一词(不区分大小写),并以 30 秒为间隔计算出现次数。

AWS 管理员、AWS DevOps、AWS 系统管理员、云管理员、云架构师、 DevOps 工程师

在 CloudWatch 仪表板中创建可视化。

要使用 CloudWatch 仪表板创建可视化,请执行以下操作:

  1. 打开 CloudWatch 控制台,然后创建 CloudWatch 仪表板(如果还没有)或打开现有的仪表板。

  2. 添加您的异常监控可视化效果。可根据您的业务需求提供条形图、折线图和饼图。有关更多信息,请参阅 Amazon Log CloudWatch s 用户指南中的在 CloudWatch 控制面板上使用小组件。对于实时数据可视化,您可以根据自己的要求自定义控件。

有关控制面板选项和功能的更多信息,请参阅 Amazon Lo CloudWatch gs 用户指南中的使用 Amazon 控制 CloudWatch 面板和使用控制面板变量创建灵活的控制面 CloudWatch 板

AWS 管理员、AWS DevOps、AWS 系统管理员、云管理员、云架构师、 DevOps 工程师

故障排除

事务解决方案

无法看到查询结果或查询似乎已损坏

从根据示例查询修改过的工作查询开始。对查询的各个部分(例如筛选器或字段)进行少量增量更改,并利用 CloudWatch 日志查询生成器功能

日志组未创建日志流

在 IAM 策略中,确保为CreateLogStreamCreateLogGroup操作的资源提供了通配符(*)值。如果没有此通配符权限,该create 操作将无法成功。

相关资源