Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建计划查询
创建计划查询,自动运行 L CloudWatch ogs Insights 查询并将结果传送到您选择的目的地。
先决条件
在创建计划查询之前,请确保您具备以下条件:
有关详细的 IAM 策略示例,请参阅Amazon CloudWatch 日志的身份和访问管理。另外需要注意的是,每个账户只能有 1000 个预定查询。
- Console
-
创建计划查询(控制台)
-
在https://console.aws.amazon.com/cloudwatch/家中打开 CloudWatch 日志控制台 #logsV2:。
-
在导航窗格中,选择日志、见解。
-
选择 “创建计划查询”。
-
在 “查询定义” 部分中:
-
对于查询语言,请从列表中选择要使用的查询语言。
-
对于查询字符串,在框中输入您的 CloudWatch Logs Insights 查询。
-
对于日志组,请从列表中选择要查询的日志组。
-
在 “时间表设置” 部分:
-
对于计划表达式,请配置查询的运行时间。从预定义的选项中选择或输入自定义 cron 表达式。
-
对于 “创建时生效”,请指定计划何时生效。选择立即开始或使用YYYY/MM/DD格式在特定的日期和时间开始。
-
在 “时间范围” 中,指定每次执行查询的回顾周期。输入以分钟为单位的持续时间,该持续时间定义了从执行时间向后多久进行查询。
-
对于无限期继续,请指定计划何时结束。使用YYYY/MM/DD格式选择无限期运行或直到特定的日期和时间运行。
-
控制台将根据您的配置显示接下来的三次计划查询运行,并以 UTC 显示查询执行的确切日期和时间。
-
在 “将查询结果发布到 S3-可选” 部分(如果使用 S3 目标):
-
对于 Amazon S3 URI,请输入存储结果的 Amazon S3 存储桶和前缀(例如s3://my-bucket/query-results/)。
-
选择 “查看 Amazon S3”,在新选项卡中打开 Amazon S3 控制台并验证存储桶配置。
-
选择 “浏览亚马逊 S3”,使用亚马逊 S3 浏览器选择现有亚马逊 S3 地点。
-
在 “用于将查询结果发布到 Amazon S3 的 IAM 角色” 部分中:
-
对于选择 IAM 角色,选择具有所需策略的现有 IAM 角色,或者选择在 IAM 控制台中创建新角色来创建新角色。
-
使用搜索字段从列表中查找并选择相应的 IAM 角色。
-
在 “用于计划查询执行的 IAM 角色” 部分中:
-
对于选择 IAM 角色,选择具有所需策略的现有 IAM 角色,或者选择在 IAM 控制台中创建新角色来创建新角色。
-
使用搜索字段从列表中查找并选择相应的 IAM 角色。
-
选择创建计划以创建计划查询。
- Amazon CLI
-
创建计划查询 (Amazon CLI)
-
使用create-scheduled-query命令创建新的计划查询:
aws logs create-scheduled-query \
--name "ErrorAnalysisQuery" \
--query-language "CWLI" \
--query-string "fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(5m)" \
--schedule-expression "cron(8 * * * ? *)" \
--execution-role-arn "arn:aws:iam::123456789012:role/CloudWatchLogsScheduledQueryRole" \
--log-group-identifiers "/aws/lambda/my-function" "/aws/apigateway/my-api" \
--state "ENABLED"
- API
-
创建计划查询 (API)
-
使用CreateScheduledQuery操作创建新的计划查询。以下示例创建了每小时运行一次的计划查询:
{
"name": "ErrorAnalysisQuery",
"queryLanguage": "CWLI",
"queryString": "fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(5m)",
"scheduleExpression": "cron(8 * * * ? *)",
"executionRoleArn": "arn:aws:iam::123456789012:role/CloudWatchLogsScheduledQueryRole",
"logGroupIdentifiers": ["/aws/lambda/my-function", "/aws/apigateway/my-api"],
"state": "ENABLED"
}
创建计划查询后,您可以从 “计划查询” 页面和使用 ListScheduledQueries API 查看和管理该查询,API 会显示您的所有计划查询及其名称、创建日期、上次运行状态、上次触发时间和重复频率。