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.
Exemplos de modelo
Crie uma aplicação do Application Insights para toda a pilha AWS 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 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
comotrue
, 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_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
defineComponentConfigurationMode
comoCUSTOM
, 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_component
defineComponentConfigurationMode
comoDEFAULT
eTier
comoSQL_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_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
defineComponentConfigurationMode
comoDEFAULT_WITH_OVERWRITE
etier
comoDOT_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
AlarmMetrics
são substituídas. -
No nível do subcomponente, para os subcomponentes de tipo
EC2_Instance
, as configurações deLogs
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