ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

使用 AWS CLI describe-insight-rules 管理 CloudWatch Contributor Insights 规则

使用 AWS CLI describe-insight-rules 管理 CloudWatch Contributor Insights 规则 使用 AWS CLI describe-insight-rules 管理 CloudWatch Contributor Insights 规则【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本篇指南以 AWS CLI 的aws cloudwatch describe-insight-rules命令为核心讲解如何检索当前账户下全部 Contributor Insights 规则、解析返回的规则结构与 Definition JSON 定义并结合 AWS CLI 仓库内的模型定义与配套示例命令带你完整掌握规则查询、分页、启停与删除的实战流程。读完本文你将能熟练使用 CLI 对高基数日志数据贡献者分析规则进行全生命周期管理。命令速览检索账户内的全部 Contributor Insights 规则describe-insight-rules对应 CloudWatch API 中的DescribeInsightRules操作作用是返回当前账户中所有 Contributor Insights 规则的列表。最基础的使用方式无需任何参数直接执行aws cloudwatch describe-insight-rules执行后返回 JSON 格式的输出核心字段为InsightRules数组。以下为仓库示例文档 awscli/examples/cloudwatch/describe-insight-rules.rst 给出的真实返回结构{ InsightRules: [ { Name: Rule-A, State: ENABLED, Schema: CloudWatchLogRule/1, Definition: {\n\t\AggregateOn\: \Count\,\n\t\Contribution\: {\n\t\t\Filters\: [],\n\t\t\Keys\: [\n\t\t\t\$.requestId\\n\t\t]\n\t},\n\t\LogFormat\: \JSON\,\n\t\Schema\: {\n\t\t\Name\: \CloudWatchLogRule\,\n\t\t\Version\: 1\n\t},\n\t\LogGroupARNs\: [\n\t\t\arn:aws:logs:us-east-1:123456789012:log-group:demo\\n\t]\n}, ManagedRule: false }, { Name: Rule-B, State: ENABLED, Schema: CloudWatchLogRule/1, Definition: {\n\t\AggregateOn\: \Count\,\n\t\Contribution\: {\n\t\t\Filters\: [],\n\t\t\Keys\: [\n\t\t\t\$.requestId\\n\t\t]\n\t},\n\t\LogFormat\: \JSON\,\n\t\Schema\: {\n\t\t\Name\: \CloudWatchLogRule\,\n\t\t\Version\: 1\n\t},\n\t\LogGroupARNs\: [\n\t\t\arn:aws:logs:us-east-1:123456789012:log-group:demo-1\\n\t]\n} } ] }这个输出示例展示了两个已启用ENABLED的规则它们分别作用于demo和demo-1两个日志组。逐字段解析返回结构根据仓库中 CloudWatch 服务模型 awscli/botocore/data/cloudwatch/2010-08-01/service-2.json 中InsightRule结构体的定义返回的每个规则对象包含以下字段字段类型是否必返回含义Name字符串是规则名称用于在后续enable-insight-rules、disable-insight-rules、delete-insight-rules等命令中唯一标识规则State字符串是规则当前状态取值为ENABLED或DISABLEDSchema字符串是规则采用的模式版本标识如示例中的CloudWatchLogRule/1Definition字符串是规则定义的 JSON 字符串注意模型中以字符串承载描述聚合方式、贡献度键、过滤条件与日志来源ManagedRule布尔值否是否为 AWS 托管的规则示例中两条规则均为false从模型定义可以看出Name、State、Schema、Definition四项是规则对象的必填成员ManagedRule为可选布尔值用于标识规则是否由 AWS 服务代为管理。Definition 字段的 JSON 结构Definition是整个输出中最有信息量的部分。示例中的规则定义经过格式化后等价于{ AggregateOn: Count, Contribution: { Filters: [], Keys: [ $.requestId ] }, LogFormat: JSON, Schema: { Name: CloudWatchLogRule, Version: 1 }, LogGroupARNs: [ arn:aws:logs:us-east-1:123456789012:log-group:demo ] }各子字段的含义AggregateOn聚合方式示例为Count即按日志条数进行计数聚合。Contribution.Keys贡献者键列表示例为$.requestId表示以 JSON 日志中的requestId字段作为高基数维度进行统计。Contribution.Filters过滤条件数组示例为空数组表示不过滤任何日志。LogFormat日志格式示例为JSON对应结构化 JSON 日志。Schema.Name与Schema.Version规则模式名称与版本号示例为CloudWatchLogRule与1与输出顶层字段Schema: CloudWatchLogRule/1相互印证。LogGroupARNs规则作用的目标日志组 ARN 列表。结合创建规则示例理解 Definition要理解describe-insight-rules返回的 Definition最好对照规则的创建过程。仓库示例 awscli/examples/cloudwatch/put-insight-rule.rst 展示了通过put-insight-rule创建规则的完整用法aws cloudwatch put-insight-rule \ --rule-name VPCFlowLogsContributorInsights \ --rule-definition file://insight-rule.json \ --rule-state ENABLED其中的insight-rule.json定义文件内容为{ Schema: { Name: CloudWatchLogRule, Version: 1 }, AggregateOn: Count, Contribution: { Filters: [], Keys: [ tcp-flag ] }, LogFormat: CLF, LogGroupNames: [ /vpc/flowlogs/* ], Fields: { 23: tcp-flag } }对照可知创建时可通过LogGroupNames支持通配符前缀如/vpc/flowlogs/*指定日志组而describe-insight-rules返回的 Definition 中对应位置可能以LogGroupARNs形式给出解析后的 ARN。创建时使用Fields字段将 CLF 日志中的字段位置如第 23 个字段映射为语义键tcp-flag并在Contribution.Keys中引用该键。两条命令的 Definition 主体Schema、AggregateOn、Contribution、LogFormat保持一致说明describe-insight-rules返回的就是规则创建时提交定义的规范化视图。该创建命令成功后不产生输出此时即可用describe-insight-rules验证规则是否已注册成功。分页参数MaxResults 与 NextToken当账户中的规则数量较多时一次调用可能无法返回全部结果。从服务模型 service-2.json 中DescribeInsightRulesInput的定义看该命令支持两个可选参数参数说明NextToken若上一次调用返回了该值将其带入下一次调用即可获取下一批规则MaxResults单次操作返回的最大结果数省略该参数时默认使用 500相应地DescribeInsightRulesOutput结构包含NextToken若存在则标记下一批结果的起点与InsightRules本次返回的规则数组。因此遍历全部规则的推荐写法是循环调用直至响应中不再出现NextTokenaws cloudwatch describe-insight-rules --max-results 100{ NextToken: xxxxxx, InsightRules: [ ... ] }将返回的NextToken值传入下一次调用继续翻页aws cloudwatch describe-insight-rules --max-results 100 --next-token xxxxxx该操作唯一声明的错误类型是InvalidNextToken即传入的NextToken无效或已过期翻页时应注意使用最近一次调用返回的令牌。规则生命周期中的其他配套命令describe-insight-rules负责看而与它配套的示例文档完整覆盖了规则的建、启、停、删、查全流程均可在 awscli/examples/cloudwatch/ 目录下找到对应示例命令对应示例文档用途put-insight-ruleput-insight-rule.rst创建或更新 Contributor Insights 规则可通过--rule-state ENABLED指定初始状态enable-insight-rulesenable-insight-rules.rst启用已禁用的规则disable-insight-rulesdisable-insight-rules.rst停用规则使规则停止分析日志delete-insight-rulesdelete-insight-rules.rst删除规则其模型文档明确提示若需查询规则名称可使用DescribeInsightRulesget-insight-rule-reportget-insight-rule-report.rst获取指定规则在时间范围内的贡献者分析统计报表值得注意的是在服务模型 service-2.json 中DeleteInsightRules、DisableInsightRules、EnableInsightRules三个操作的参数文档均建议如需获知规则名称请使用DescribeInsightRules。这意味着describe-insight-rules是其他所有规则管理操作的前置查询命令建议将它作为脚本化管理工作流的入口。从源码结构看命令的底层实现从模型层面看DescribeInsightRules在 service-2.json 中定义为 HTTPPOST /请求请求体遵循DescribeInsightRulesInput结构NextTokenMaxResults响应由DescribeInsightRulesOutput承载并通过resultWrapper: DescribeInsightRulesResult包装返回结果。AWS CLI 在运行时读取该 JSON 模型自动生成命令的参数解析、序列化与结果反序列化逻辑因此--max-results与--next-token的 CLI 参数直接由输入结构成员映射而来InsightRules数组的Name、State、Schema、Definition、ManagedRule字段严格对应模型中的InsightRule结构体定义Definition在模型中类型为字符串因此在 CLI 输出中会以转义 JSON含\n、\t的形式呈现实际查看时可配合jq之类的工具将其还原为可读 JSON例如aws cloudwatch describe-insight-rules \ --query InsightRules[0].Definition --output text | python3 -m json.tool另外仓库中该服务对应的 API 版本为2010-08-01见 awscli/botocore/data/cloudwatch/2010-08-01/ 目录模型文件中还包含examples-1.jsonAPI 示例、paginators-1.json分页器定义等配套数据说明该命令在 CLI 中具备完整的分页与示例支持。实战建议先查询再操作对enable-insight-rules、disable-insight-rules、delete-insight-rules的入参规则名称数组不明确时先执行aws cloudwatch describe-insight-rules获取Name列表避免因名称错误导致操作失败。结合状态字段做运维判断输出中的State字段可用来区分已启用与已停用的规则配合--query参数可快速筛选例如只查看启用中的规则aws cloudwatch describe-insight-rules --query InsightRules[?StateENABLED].Name注意分页与默认上限单次调用默认最多返回 500 条规则规则数量较多时务必检查响应中是否携带NextToken否则会遗漏后续结果。验证规则是否生效创建规则后通过describe-insight-rules确认规则已注册且State为ENABLED再通过get-insight-rule-report查看分析报表形成创建—验证—观测的完整闭环。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表