本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
应用程序级配置 CloudWatch
应用程序日志和指标由运行的应用程序生成,并且是特定于应用程序的。请务必定义必要的日志和指标,以充分监控组织经常使用的应用程序。例如,您的组织可能已将基于 Web 的应用程序的 Microsoft 互联网信息服务器 (IIS) 标准化。您可以为 IIS 创建标准日志和指标 CloudWatch 配置,该配置也可以在整个组织中使用。应用程序特定的配置文件可以存储在集中位置(例如 S3 存储桶),工作负载所有者或通过自动检索进行访问,然后复制到 CloudWatch 配置目录中。 CloudWatch 代理会自动将 CloudWatch每个 EC2 实例或服务器的配置文件目录中的配置文件合并成一个复合 CloudWatch 配置。最终结果是 CloudWatch 包括贵组织的标准系统级配置以及所有相关的应用程序 CloudWatch 级配置的配置。
工作负载所有者应识别和配置所有关键应用程序和组件的日志文件和指标。
配置应用程序级日志
根据应用程序是商用 off-the-shelf (COTS) 还是定制开发的应用程序,应用程序级别的日志记录会有所不同。COTS 应用程序及其组件可能会为日志配置和输出提供多种选项,例如日志详细信息级别、日志文件格式和日志文件位置。但是,大多数 COTS 或第三方应用程序不允许您从根本上更改日志记录(例如,更新应用程序代码以包含其他不可配置的日志语句或格式)。您至少应为 COTS 或第三方应用程序配置日志选项,以记录警告和错误级别的信息,最好采用 JSON 格式。
您可以通过在 CloudWatch 配置中包含应用程序的 CloudWatch 日志文件来将自定义开发的应用程序与日志集成。自定义应用程序可以提供更好的日志质量和控制,因为除了包括任何其他所需的详细信息外,您还可以自定义日志输出格式,对组件输出进行分类和分隔以单独的日志文件。请务必审查日志库以及组织所需的数据和格式,并对其进行标准化,以便更轻松地进行分析和处理。
您也可以使用 Log CloudWatch s PutLogEvents
API 调用或使用 AWS SDK 写入 CloudWatch 日志流。您可以使用 API 或 SDK 来满足自定义日志要求,例如将日志记录协调到分布式组件和服务器集合中的单个日志流。但是,最容易维护且最广泛适用的解决方案是将应用程序配置为写入日志文件,然后使用 CloudWatch 代理读取日志文件并将其流式传输到 CloudWatch。
您还应该考虑要从应用程序日志文件中衡量的指标类型。您可以使用指标筛选器对 CloudWatch 日志组中的这些数据进行测量、绘制图表并发出警报。例如,您可以使用指标筛选器通过在日志中识别失败的登录尝试来统计失败的登录尝试。
您还可以使用应用程序日志文件中的CloudWatch 嵌入式指标格式,为自定义开发的应用程序创建自定义指标。
配置应用程序级指标
自定义指标不是由 AWS 服务直接提供给的指标 CloudWatch ,它们发布在 CloudWatch 指标的自定义命名空间中。所有应用程序指标均被视为自定义 CloudWatch 指标。应用程序指标可能与 EC2 实例、应用程序组件、API 调用甚至业务函数保持一致。您还必须考虑为指标选择的维度的重要性和基数。具有高基数的维度会生成大量自定义指标,并且可能会增加您的 CloudWatch 成本。
CloudWatch 帮助您以多种方式捕获应用程序级指标,包括:
-
通过定义要从 procstat 插件中捕获的各个进程,捕获流程级别的指标。
-
应用程序将指标发布到 Windows 性能监视器,该指标在 CloudWatch 配置中定义。
-
指标筛选器和模式适用于应用程序的登录 CloudWatch。
-
应用程序使用 CloudWatch 嵌入式指标格式写入 CloudWatch 日志。
-
应用程序 CloudWatch 通过 API 或 AWS SDK 向发送指标。
-
应用程序向带有已配置代理的 col lect d 或 StatsD 守护程序发送指标。 CloudWatch
您可以使用 procstat 通过 CloudWatch代理监控和测量关键应用程序进程。这可以帮助您在应用程序的关键进程不再运行时发出警报并采取措施(例如,通知或重启进程)。您还可以测量应用程序进程的性能特征,并在特定进程行为异常时发出警报。
如果您无法使用其他自定义指标更新 COTS 应用程序,Procstat 监控也很有用。例如,您可以创建一个my_process
衡量cpu_time
并包含自定义application_version
维度的指标。如果您对不同的指标有不同的维度,也可以为一个应用程序使用多个 CloudWatch 代理配置文件。
如果你的应用程序在 Windows 上运行,你应该评估它是否已经向 Windows 性能监视器发布了指标。许多 COTS 应用程序都与 Windows 性能监视器集成,可帮助您轻松监控应用程序指标。 CloudWatch 还与 Windows 性能监视器集成,您可以捕获其中已有的指标。
请务必查看应用程序提供的日志格式和日志信息,以确定可以使用指标筛选器提取哪些指标。您可以查看应用程序的历史日志,以确定如何表示错误消息和异常关机。您还应该查看之前报告的问题,以确定是否可以捕获某个指标以防止问题再次出现。您还应该查看应用程序的文档,并要求应用程序开发人员确认如何识别错误消息。
对于自定义开发的应用程序,请与应用程序的开发人员合作,定义可使用 CloudWatch 嵌入式指标格式、 AWS SDK 或 AWS API 实现的重要指标。推荐的方法是使用嵌入式指标格式。您可以使用 AWS 提供的开源嵌入式指标格式库来帮助您按照所需格式编写报表。您还需要更新特定于应用程序的 CloudWatch 配置,以包含嵌入式指标格式代理。这会导致在 EC2 实例上运行的代理充当本地嵌入式指标格式端点,向其发送嵌入式指标格式指标 CloudWatch。
如果您的应用程序已经支持将指标发布到 collectd 或 statsd,则可以利用它们将指标提取到。 CloudWatch