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 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 CloudFormation, consulte a referência de tipo de recurso do Application Insights.
Exemplos de modelo
Crie uma aplicação do Application Insights para toda a pilha CloudFormation
Criar uma aplicação do Application Insights com configurações detalhadas
Criar uma aplicação do Application Insights com configuração do componente modo CUSTOM
Criar uma aplicação do Application Insights com configuração do componente modo DEFAULT
Crie uma aplicação do Application Insights para toda a pilha 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 stackResources: EC2Instance: Type: AWS::EC2::Instance Properties: ImageId: ami-abcd1234efgh5678iSecurityGroupIds: - sg-abcd1234... ResourceGroup: Type: AWS::ResourceGroups::Group Properties: Name:my_resource_groupAppInsightsApp: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName:my_resource_groupDependsOn: 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 stackResources: AppInsightsApp: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName:my_resource_groupAutoConfigurationEnabled: 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
AutoConfigurationEnabledcomotrue, que configura todos os componentes da aplicação com as configurações de monitoramento recomendadas para o nívelDEFAULT. 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_groupCWEMonitorEnabled: true OpsCenterEnabled: true OpsItemSNSTopicArn: arn:aws:sns:us-east-1:123456789012:my_topicAutoConfigurationEnabled: true Tags: - Key:key1Value:value1- Key:key2Value: '' CustomComponents: - ComponentName:test_component_1ResourceList: - 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-abcd1234efgh5678iLogPatternSets: - 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_componentdefineComponentConfigurationModecomoCUSTOM, o que faz com que esse componente seja configurado com a configuração especificada emCustomComponentConfiguration. 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_componentdefineComponentConfigurationModecomoDEFAULTeTiercomoSQL_SERVER, o que faz com que esse componente seja configurado com as definições de configuração recomendadas pelo Application Insights para o nívelSQL_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_groupComponentMonitoringSettings: - ComponentARN:my_componentTier: 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_componentdefineComponentConfigurationModecomoDEFAULT_WITH_OVERWRITEetiercomoDOT_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ívelDOT_NET_CORE. As definições de configuração substituídas são especificadas noDefaultOverwriteComponentConfiguration:-
No nível do componente, configurações de
AlarmMetricssão substituídas. -
No nível do subcomponente, para os subcomponentes de tipo
EC2_Instance, as configurações deLogssã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_groupComponentMonitoringSettings: - ComponentName:my_componentTier: DOT_NET_CORE ComponentConfigurationMode: DEFAULT_WITH_OVERWRITE DefaultOverwriteComponentConfiguration: ConfigurationDetails: AlarmMetrics: - AlarmMetricName: StatusCheckFailed SubComponentTypeConfigurations: - SubComponentType: EC2_INSTANCE SubComponentConfigurationDetails: Logs: - LogGroupName:my_log_groupLogPath: C:\LogFolder\* LogType: IIS Encoding: utf-8 PatternSet:my_pattern_set