如何筛选增强监测 CloudWatch Logs 以便为 Amazon RDS 生成自动执行的自定义指标?
上次更新日期:2020 年 10 月 7 日
如何筛选增强监测 CloudWatch Logs 以便为 Amazon Relational Database Service (Amazon RDS) 生成自动执行的自定义指标?
简短描述
RDS 的增强型监控提供以下操作系统指标:
- 空闲内存
- 活动内存
- 空闲交换
- 正在运行的进程
- 已用文件系统
您可以使用这些指标来了解环境性能,这些指标由 Amazon CloudWatch Logs 提取作为日志条目。您可以使用 CloudWatch 创建基于指标的警报。这些警报运行操作,您可以将这些指标从基础设施、设备或应用程序中发布到 CloudWatch 中作为自定义指标。将增强型监控与 CloudWatch 结合使用,您可以为 CloudWatch Logs 创建自定义指标(RDS 从增强型指标中提取数据),从而自动执行任务。
解决方法
注意:如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
在日志组上使用筛选条件创建自定义指标
注意:要执行这些步骤,需要您在 RDS 数据库实例中启用增强监控。有关更多信息,请参阅监测 Amazon RDS 数据库实例。
1. 启用增强型监控
2. 打开 Amazon CloudWatch 控制台,然后从导航窗格中选择 Log groups(日志组)。
3. 从日志组列表中筛选 RDSOSMetrics,然后选择 Actions(操作)。
4. 选择 Create Metric Filter(创建指标筛选条件),然后为您的 RDS 数据库实例输入筛选模式术语。例如:
DISK UTILIZATION: { $.diskIO[0].writeKbPS="0.00"}
DISK WRITE KBPS : { $.diskIO[0].util="0.00"}
DISK READ KBPS : { $.diskIO[0].readKbPS="0.00"}
DISK WRITE IOPS : { $.diskIO[0].writeKbPS="0.00"}
注意:请确保将 0.00 更新为您要测量的值。
5. 选择要测试的日志数据,然后选择 Test Pattern(测试模式)。
6. 选择下一步。
7. 输入筛选器名称,然后选择 Metric Namespace(指标命名空间)和 Metric Name(指标名称)。
8. 输入指标值(例如 $.cpuUtilization.idle),然后选择创建筛选条件。
针对您添加的每个额外指标重复这些步骤。
自动化
每个 RDS 数据库实例有 60 多个监控指标,您可以使用脚本自动执行此流程。请参阅 rds-support-tools 的 GitHub 存储库,了解使用适用于以下引擎的 RDS MySQL 数据库实例的示例脚本:
- MySQL
- MariaDB
- Amazon Aurora(MySQL 和 PostgreSQL)
- PostgreSQL
指定已启用增强监测的 RDS 数据库实例,以及您想用来存储这些指标的命名空间。或者,您可以添加指标名称和区域。如果没有指定任何可选字段,则脚本会考虑要发布的所有指标,然后使用通过 AWS 命令行界面 (AWS CLI) 在文件 .aws/config 中默认指定的区域。
注意:脚本不会为流程列表创建指标,因此您可能需要手动创建筛选条件,具体取决于您想显示的流程。
指标的名称必须按照以下模式指定:
group.metricname
以下示例代码说明了一项调用,用于针对 cpuUtilization.idle 和 diskIO.readKbPS 启用此指标:
python RDSCreateMetricsFromEnhancedMonitoring.py --rds_instance mysqltest --namespace MySQL --metrics_to_filter cpuUtilization.idle diskIO.readKb
然后,您可以为这些自定义指标创建警报。有关更多信息,请参阅使用 Amazon CloudWatch 警报。