Criar e configurar monitoramento do CloudWatch Application Insights usando modelos do CloudFormation - Amazon CloudWatch

Criar e configurar monitoramento do CloudWatch Application Insights usando modelos do CloudFormation

É possível adicionar o monitoramento do Application Insights, incluindo as principais métricas e telemetria, à aplicação, ao banco de dados e ao servidor Web, diretamente a partir de modelos do AWS CloudFormation.

Esta seção fornece exemplos de modelos do AWS CloudFormation nos formatos JSON e YAML para ajudar você a criar e configurar o monitoramento do Application Insights.

Para exibir o recurso e a referência de propriedade do Application Insights no Manual do usuário do AWS CloudFormation, consulte a referência de tipo de recurso do Application Insights.

Crie uma aplicação do Application Insights para toda a pilha AWS CloudFormation

Para aplicar o modelo a seguir, é necessário criar recursos da AWS um ou mais grupos de recursos a partir dos quais criar aplicações do Application Insights para monitorar esses recursos. Para obter mais informações, consulte Conceitos básicos do AWS Resource Groups.

As duas primeiras partes do modelo a seguir especificam um recurso e um grupo de recursos. A última parte do modelo cria uma aplicação Application Insights para o grupo de recursos, mas não configura a aplicação ou o monitoramento de aplicação. Para obter mais informações, consulte os detalhes do comando CreateApplication na Referência de API do Amazon CloudWatch Application Insights.

Modelo em 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" } } }

Modelo em 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

A seção de modelo a seguir aplica a configuração de monitoramento padrão à aplicação do Application Insights. Para obter mais informações, consulte os detalhes do comando CreateApplication na Referência de API do Amazon CloudWatch Application Insights.

Quando AutoConfigurationEnabled esta definido como true, todos os componentes da aplicação são configurados com as configurações de monitoramento recomendadas para o nível DEFAULT da aplicação. Para obter mais informações sobre essas configurações e níveis, consulte DescribeComponentConfigurationRecommendation e UpdateComponentConfiguration na Referência da API do Amazon CloudWatch Application Insights.

Modelo em 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 } } } }

Modelo em 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

Criar uma aplicação do Application Insights com configurações detalhadas

O modelo a seguir executa estas ações:

  • Cria uma aplicação do Application Insights com a notificação do CloudWatch Events e o OpsCenter habilitados. Para obter mais informações, consulte os detalhes do comando CreateApplication na Referência de API do Amazon CloudWatch Application Insights.

  • Marca a aplicação com duas etiquetas, uma das quais não tem valores de etiqueta. Para obter mais informações, consulte TagResource na Referência de API do Amazon CloudWatch Application Insights.

  • Cria dois componentes personalizados do grupo de instâncias. Para obter mais informações, consulte CreateComponent na Referência de API do Amazon CloudWatch Application Insights.

  • Cria dois conjuntos de padrões de log. Para obter mais informações, consulte CreateLogPattern na Referência de API do Amazon CloudWatch Application Insights.

  • Define AutoConfigurationEnabled como true, que configura todos os componentes da aplicação com as configurações de monitoramento recomendadas para o nível DEFAULT. Para obter mais informações, consulte DescribeComponentConfigurationRecommendation na Referência de API do Amazon CloudWatch Application Insights.

Modelo em 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 } ] } ] } }

Modelo em 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

Criar uma aplicação do Application Insights com configuração do componente modo CUSTOM

O modelo a seguir executa estas ações:

  • Cria uma aplicação do Application Insights. Para obter mais informações, consulte CreateApplication na Referência de API do Amazon CloudWatch Application Insights.

  • O componente my_component define ComponentConfigurationMode como CUSTOM, o que faz com que esse componente seja configurado com a configuração especificada em CustomComponentConfiguration. Para obter mais informações, consulte UpdateComponentConfiguration na Referência de API do Amazon CloudWatch Application Insights.

Modelo em 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" }, ... ] } } ] } } ] } }

Modelo em 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 ...

Criar uma aplicação do Application Insights com configuração do componente modo DEFAULT

O modelo a seguir executa estas ações:

  • Cria uma aplicação do Application Insights. Para obter mais informações, consulte CreateApplication na Referência de API do Amazon CloudWatch Application Insights.

  • O componente my_component define ComponentConfigurationMode como DEFAULT e Tier como SQL_SERVER, o que faz com que esse componente seja configurado com as definições de configuração recomendadas pelo Application Insights para o nível SQL_Server. Para obter mais informações, consulte DescribeComponentConfiguration e UpdateComponentConfiguration na Referência de API do Amazon CloudWatch Application Insights.

Modelo em formato JSON

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

Modelo em formato YAML

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

Criar uma aplicação do Application Insights com configuração do componente modo DEFAULT_WITH_OVERWRITE

O modelo a seguir executa estas ações:

  • Cria uma aplicação do Application Insights. Para obter mais informações, consulte CreateApplication na Referência de API do Amazon CloudWatch Application Insights.

  • O componente my_component define ComponentConfigurationMode como DEFAULT_WITH_OVERWRITE e tier como DOT_NET_CORE, o que faz com que esse componente seja configurado com as definições de configuração recomendadas pelo Application Insights para o nível DOT_NET_CORE. As definições de configuração substituídas são especificadas no DefaultOverwriteComponentConfiguration:

    • No nível do componente, configurações de AlarmMetrics são substituídas.

    • No nível do subcomponente, para os subcomponentes de tipo EC2_Instance, as configurações de Logs são substituídas.

    Para obter mais informações, consulte UpdateComponentConfiguration na Referência de API do Amazon CloudWatch Application Insights.

Modelo em 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" } ] } } ] } } ] } }

Modelo em 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