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
- Criar uma aplicação do Application Insights com configuração do componente modo DEFAULT_WITH_OVERWRITE
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