Creación y configuración de la supervisión de Información de aplicaciones de CloudWatch mediante las plantillas de CloudFormation - Amazon CloudWatch

Creación y configuración de la supervisión de Información de aplicaciones de CloudWatch mediante las plantillas de CloudFormation

Puede agregar el monitoreo de Información de aplicaciones, incluidas las métricas clave y la telemetría, a su aplicación, base de datos y servidor web, directamente desde las plantillas de AWS CloudFormation.

En esta sección encontrará un ejemplo de plantillas de AWS CloudFormation en formatos JSON y YAML para ayudarlo a crear y configurar el monitoreo de Información de aplicaciones.

Para ver la referencia de recursos y propiedades de Información de aplicaciones en la Guía del usuario de AWS CloudFormation, consulte Referencia de tipos de recursos de Información de aplicaciones.

Creación de una aplicación de Información de aplicaciones para toda la pila de AWS CloudFormation

Para aplicar la siguiente plantilla, cree recursos de AWS y uno o más grupos de recursos a partir de los cuales pueda crear aplicaciones de Información de aplicaciones para monitorear esos recursos. Para obtener más información, consulte Introducción a AWS Resource Groups.

Las dos primeras partes de la siguiente plantilla especifican un recurso y un grupo de recursos. La última parte de la plantilla crea una aplicación de Información de aplicaciones para el grupo de recursos, pero no configura la aplicación ni aplica monitoreo. Para obtener más información, consulte los detalles del comando CreateApplication en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

Plantilla en formato JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Test Resource Group stack", "Resources": { "EC2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId" : "ami-abcd1234efgh5678i", "SecurityGroupIds" : ["sg-abcd1234"] } }, ... "ResourceGroup": { "Type": "AWS::ResourceGroups::Group", "Properties": { "Name": "my_resource_group" } }, "AppInsightsApp": { "Type": "AWS::ApplicationInsights::Application", "Properties": { "ResourceGroupName": "my_resource_group" }, "DependsOn" : "ResourceGroup" } } }

Plantilla en formato YAML

--- AWSTemplateFormatVersion: '2010-09-09' Description: Test Resource Group stack Resources: EC2Instance: Type: AWS::EC2::Instance Properties: ImageId: ami-abcd1234efgh5678i SecurityGroupIds: - sg-abcd1234 ... ResourceGroup: Type: AWS::ResourceGroups::Group Properties: Name: my_resource_group AppInsightsApp: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: my_resource_group DependsOn: ResourceGroup

La siguiente sección de plantilla aplica la configuración de monitoreo predeterminada a la aplicación de Información de aplicaciones. Para obtener más información, consulte los detalles del comando CreateApplication en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

Cuando AutoConfigurationEnabled se establece en true, todos los componentes de la aplicación se configuran con las configuraciones recomendadas de monitoreo para el nivel de aplicación DEFAULT. Para obtener más información acerca de estas configuraciones y niveles, consulte DescribeComponentConfigurationRecommendation y UpdateComponentConfiguration en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

Plantilla en formato JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Test Application Insights Application stack", "Resources": { "AppInsightsApp": { "Type": "AWS::ApplicationInsights::Application", "Properties": { "ResourceGroupName": "my_resource_group", "AutoConfigurationEnabled": true } } } }

Plantilla en formato YAML

--- AWSTemplateFormatVersion: '2010-09-09' Description: Test Application Insights Application stack Resources: AppInsightsApp: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: my_resource_group AutoConfigurationEnabled: true

Creación de una aplicación de Información de aplicaciones con configuraciones detalladas

En la siguiente plantilla se realizan las siguientes acciones:

  • Crea una aplicación de Información de aplicaciones con la notificación de Eventos de CloudWatch y Centro de operaciones habilitado. Para obtener más información, consulte los detalles del comando CreateApplication en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

  • Etiqueta la aplicación con dos etiquetas, una de las cuales no tiene valores de etiqueta. Para obtener más información, consulte TagResource en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

  • Crea dos componentes de grupo de instancias personalizado. Para obtener más información, consulte CreateComponent en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

  • Crea dos conjuntos de patrones de registro. Para obtener más información, consulte CreateLogPattern en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

  • Establece AutoConfigurationEnabled en true, que configura todos los componentes de la aplicación con la configuración de monitoreo recomendada para el nivel DEFAULT. Para obtener más información, consulte DescribeComponentConfigurationRecommendation en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

Plantilla en formato JSON

{ "Type": "AWS::ApplicationInsights::Application", "Properties": { "ResourceGroupName": "my_resource_group", "CWEMonitorEnabled": true, "OpsCenterEnabled": true, "OpsItemSNSTopicArn": "arn:aws:sns:us-east-1:123456789012:my_topic", "AutoConfigurationEnabled": true, "Tags": [ { "Key": "key1", "Value": "value1" }, { "Key": "key2", "Value": "" } ], "CustomComponents": [ { "ComponentName": "test_component_1", "ResourceList": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i" ] }, { "ComponentName": "test_component_2", "ResourceList": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i", "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i" ] } ], "LogPatternSets": [ { "PatternSetName": "pattern_set_1", "LogPatterns": [ { "PatternName": "deadlock_pattern", "Pattern": ".*\\sDeadlocked\\sSchedulers(([^\\w].*)|($))", "Rank": 1 } ] }, { "PatternSetName": "pattern_set_2", "LogPatterns": [ { "PatternName": "error_pattern", "Pattern": ".*[\\s\\[]ERROR[\\s\\]].*", "Rank": 1 }, { "PatternName": "warning_pattern", "Pattern": ".*[\\s\\[]WARN(ING)?[\\s\\]].*", "Rank": 10 } ] } ] } }

Plantilla en formato YAML

--- Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: my_resource_group CWEMonitorEnabled: true OpsCenterEnabled: true OpsItemSNSTopicArn: arn:aws:sns:us-east-1:123456789012:my_topic AutoConfigurationEnabled: true Tags: - Key: key1 Value: value1 - Key: key2 Value: '' CustomComponents: - ComponentName: test_component_1 ResourceList: - arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i - ComponentName: test_component_2 ResourceList: - arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i - arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i LogPatternSets: - PatternSetName: pattern_set_1 LogPatterns: - PatternName: deadlock_pattern Pattern: ".*\\sDeadlocked\\sSchedulers(([^\\w].*)|($))" Rank: 1 - PatternSetName: pattern_set_2 LogPatterns: - PatternName: error_pattern Pattern: ".*[\\s\\[]ERROR[\\s\\]].*" Rank: 1 - PatternName: warning_pattern Pattern: ".*[\\s\\[]WARN(ING)?[\\s\\]].*" Rank: 10

Creación de una aplicación de Información de aplicaciones con la configuración del componente en modo CUSTOM

En la siguiente plantilla se realizan las siguientes acciones:

  • Crea una aplicación de Información de aplicaciones. Para obtener más información, consulte CreateApplication en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

  • El componente my_component establece ComponentConfigurationMode en CUSTOM, lo que hace que este componente se configure como se especifica en CustomComponentConfiguration. Para obtener más información, consulte UpdateComponentConfiguration en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

Plantilla en formato JSON

{ "Type": "AWS::ApplicationInsights::Application", "Properties": { "ResourceGroupName": "my_resource_group, "ComponentMonitoringSettings": [ { "ComponentARN": "my_component", "Tier": "SQL_SERVER", "ComponentConfigurationMode": "CUSTOM", "CustomComponentConfiguration": { "ConfigurationDetails": { "AlarmMetrics": [ { "AlarmMetricName": "StatusCheckFailed" }, ... ], "Logs": [ { "LogGroupName": "my_log_group_1", "LogPath": "C:\\LogFolder_1\\*", "LogType": "DOT_NET_CORE", "Encoding": "utf-8", "PatternSet": "my_pattern_set_1" }, ... ], "WindowsEvents": [ { "LogGroupName": "my_windows_event_log_group_1", "EventName": "Application", "EventLevels": [ "ERROR", "WARNING", ... ], "Encoding": "utf-8", "PatternSet": "my_pattern_set_2" }, ... ], "Alarms": [ { "AlarmName": "my_alarm_name", "Severity": "HIGH" }, ... ] }, "SubComponentTypeConfigurations": [ { "SubComponentType": "EC2_INSTANCE", "SubComponentConfigurationDetails": { "AlarmMetrics": [ { "AlarmMetricName": "DiskReadOps" }, ... ], "Logs": [ { "LogGroupName": "my_log_group_2", "LogPath": "C:\\LogFolder_2\\*", "LogType": "IIS", "Encoding": "utf-8", "PatternSet": "my_pattern_set_3" }, ... ], "processes" : [ { "processName" : "my_process", "alarmMetrics" : [ { "alarmMetricName" : "procstat cpu_usage", "monitor" : true }, { "alarmMetricName" : "procstat memory_rss", "monitor" : true } ] } ], "WindowsEvents": [ { "LogGroupName": "my_windows_event_log_group_2", "EventName": "Application", "EventLevels": [ "ERROR", "WARNING", ... ], "Encoding": "utf-8", "PatternSet": "my_pattern_set_4" }, ... ] } } ] } } ] } }

Plantilla en formato YAML

--- Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: my_resource_group ComponentMonitoringSettings: - ComponentARN: my_component Tier: SQL_SERVER ComponentConfigurationMode: CUSTOM CustomComponentConfiguration: ConfigurationDetails: AlarmMetrics: - AlarmMetricName: StatusCheckFailed ... Logs: - LogGroupName: my_log_group_1 LogPath: C:\LogFolder_1\* LogType: DOT_NET_CORE Encoding: utf-8 PatternSet: my_pattern_set_1 ... WindowsEvents: - LogGroupName: my_windows_event_log_group_1 EventName: Application EventLevels: - ERROR - WARNING ... Encoding: utf-8 PatternSet: my_pattern_set_2 ... Alarms: - AlarmName: my_alarm_name Severity: HIGH ... SubComponentTypeConfigurations: - SubComponentType: EC2_INSTANCE SubComponentConfigurationDetails: AlarmMetrics: - AlarmMetricName: DiskReadOps ... Logs: - LogGroupName: my_log_group_2 LogPath: C:\LogFolder_2\* LogType: IIS Encoding: utf-8 PatternSet: my_pattern_set_3 ... Processes: - ProcessName: my_process AlarmMetrics: - AlarmMetricName: procstat cpu_usage ... ... WindowsEvents: - LogGroupName: my_windows_event_log_group_2 EventName: Application EventLevels: - ERROR - WARNING ... Encoding: utf-8 PatternSet: my_pattern_set_4 ...

Creación de una aplicación de Información de aplicaciones con la configuración del componente en modo DEFAULT

En la siguiente plantilla se realizan las siguientes acciones:

  • Crea una aplicación de Información de aplicaciones. Para obtener más información, consulte CreateApplication en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

  • Componente my_component establece ComponentConfigurationMode en DEFAULT y Tier en SQL_SERVER, lo que hace que este componente se configure con los ajustes de configuración que Información de aplicaciones recomienda para el nivel SQL_Server. Para obtener más información, consulte DescribeComponentConfiguration y UpdateComponentConfiguration en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

Plantilla en formato JSON

{ "Type": "AWS::ApplicationInsights::Application", "Properties": { "ResourceGroupName": "my_resource_group", "ComponentMonitoringSettings": [ { "ComponentARN": "my_component", "Tier": "SQL_SERVER", "ComponentConfigurationMode": "DEFAULT" } ] } }

Plantilla en formato YAML

--- Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: my_resource_group ComponentMonitoringSettings: - ComponentARN: my_component Tier: SQL_SERVER ComponentConfigurationMode: DEFAULT

Creación de una aplicación de Información de aplicaciones con la configuración del componente en modo DEFAULT_WITH_OVERWRITE

En la siguiente plantilla se realizan las siguientes acciones:

  • Crea una aplicación de Información de aplicaciones. Para obtener más información, consulte CreateApplication en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

  • Componente my_component establece ComponentConfigurationMode en DEFAULT_WITH_OVERWRITE y tier en DOT_NET_CORE, lo que hace que este componente se configure con los ajustes de configuración que Información de aplicaciones recomienda para el nivel DOT_NET_CORE. Los ajustes de configuración sobrescritos se especifican en DefaultOverwriteComponentConfiguration:

    • En el nivel de componente, la configuración de AlarmMetrics se sobrescribe.

    • En el nivel de subcomponente, para los subcomponentes de tipo EC2_Instance, los ajustes de Logs se sobrescriben.

    Para obtener más información, consulte UpdateComponentConfiguration en la Referencia de la API de Información de aplicaciones de Amazon CloudWatch.

Plantilla en formato JSON

{ "Type": "AWS::ApplicationInsights::Application", "Properties": { "ResourceGroupName": "my_resource_group", "ComponentMonitoringSettings": [ { "ComponentName": "my_component", "Tier": "DOT_NET_CORE", "ComponentConfigurationMode": "DEFAULT_WITH_OVERWRITE", "DefaultOverwriteComponentConfiguration": { "ConfigurationDetails": { "AlarmMetrics": [ { "AlarmMetricName": "StatusCheckFailed" } ] }, "SubComponentTypeConfigurations": [ { "SubComponentType": "EC2_INSTANCE", "SubComponentConfigurationDetails": { "Logs": [ { "LogGroupName": "my_log_group", "LogPath": "C:\\LogFolder\\*", "LogType": "IIS", "Encoding": "utf-8", "PatternSet": "my_pattern_set" } ] } } ] } } ] } }

Plantilla en formato YAML

--- Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: my_resource_group ComponentMonitoringSettings: - ComponentName: my_component Tier: DOT_NET_CORE ComponentConfigurationMode: DEFAULT_WITH_OVERWRITE DefaultOverwriteComponentConfiguration: ConfigurationDetails: AlarmMetrics: - AlarmMetricName: StatusCheckFailed SubComponentTypeConfigurations: - SubComponentType: EC2_INSTANCE SubComponentConfigurationDetails: Logs: - LogGroupName: my_log_group LogPath: C:\LogFolder\* LogType: IIS Encoding: utf-8 PatternSet: my_pattern_set