Creazione e configurazione del monitoraggio di CloudWatch Application Insights tramite modelli CloudFormation
È possibile aggiungere il monitoraggio Application Insights, inclusi parametri chiave e telemetria, all'applicazione, al database e al server Web, direttamente da modelli di AWS CloudFormation.
In questa sezione vengono forniti esempi di modelli CloudFormation in entrambi i formati JSON e YAML per facilitare la creazione e la configurazione del monitoraggio di Application Insights.
Per visualizzare il riferimento alla risorsa e alla proprietà di Application Insights nella sezione Guida per l'utente di CloudFormation, consulta la documentazione di riferimento ai tipi di risorse ApplicationInsights.
Modelli di esempio
Creazione di un'applicazione Application Insights per l'intero stack CloudFormation
Per applicare il modello seguente, è necessario creare risorse AWS e uno o più gruppi di risorse da cui creare applicazioni Application Insights per monitorare tali risorse. Per ulteriori informazioni, consulta Nozioni di base su AWS Resource Groups.
Le prime due parti del modello seguente specificano una risorsa e un gruppo di risorse. L'ultima parte del modello crea un'applicazione Application Insights per il gruppo di risorse, ma non configura l'applicazione né applica il monitoraggio. Per ulteriori informazioni, consulta i dettagli del comando CreateApplication nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
Modello in 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" } } }
Modello in 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
La sezione del modello seguente applica la configurazione di monitoraggio predefinita all'applicazione Application Insights. Per ulteriori informazioni, consulta i dettagli del comando CreateApplication nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
Quando AutoConfigurationEnabled è impostato su true, tutti i componenti dell'applicazione vengono configurati con le impostazioni di monitoraggio consigliate per il livello DEFAULT. Per ulteriori informazioni su queste impostazioni e livelli, consulta DescribeComponentConfiguration e UpdateComponentConfigurationRecommendation nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
Modello in 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 } } } }
Modello in formato YAML
--- AWSTemplateFormatVersion: '2010-09-09' Description:Test Application Insights Application stackResources: AppInsightsApp: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName:my_resource_groupAutoConfigurationEnabled: true
Creazione di un'applicazione Application Insights con impostazioni dettagliate
Questo modello di esempio esegue le seguenti operazioni:
-
Crea un'applicazione Application Insights con la notifica CloudWatch Events e OpsCenter abilitata. Per ulteriori informazioni, consulta i dettagli del comando CreateApplication nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
-
Applica tag all'applicazione con due tag, uno dei quali non ha valori di tag. Per ulteriori informazioni, consulta TagResource nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
-
Crea due componenti del gruppo di istanze personalizzate. Per ulteriori informazioni, consulta CreateComponent nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
-
Crea due set di modelli di log. Per ulteriori informazioni, consulta CreateLogPattern nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
-
Imposta
AutoConfigurationEnabledsutrue, che configura tutti i componenti dell'applicazione con le impostazioni di monitoraggio consigliate per il livelloDEFAULT. Per ulteriori informazioni, consulta DescribeComponentConfigurationRecommendation nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
Modello in 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 } ] } ] } }
Modello in 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
Creazione di un'applicazione Application Insights con configurazione del componente in modalità CUSTOM
Questo modello di esempio esegue le seguenti operazioni:
-
Crea un'applicazione Application Insights. Per ulteriori informazioni, consulta CreateApplication nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
-
Il componente
my_componentimpostaComponentConfigurationModesuCUSTOM, che causa la configurazione di questo componente con la configurazione specificata inCustomComponentConfiguration. Per ulteriori informazioni, consulta UpdateComponentConfiguration nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
Modello in 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" }, ... ] } } ] } } ] } }
Modello in 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 ...
Creazione di un'applicazione Application Insights con configurazione del componente in modalità DEFAULT
Questo modello di esempio esegue le seguenti operazioni:
-
Crea un'applicazione Application Insights. Per ulteriori informazioni, consulta CreateApplication nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
-
Il componente
my_componentimpostaComponentConfigurationModesuDEFAULTeTiersuSQL_SERVER, il che causa la configurazione del componente con le impostazioni di configurazione consigliate da Application Insights per il livelloSQL_Server. Per ulteriori informazioni, consulta DescribeComponentConfiguration e UpdateComponentConfiguration nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
Modello in formato JSON
{ "Type": "AWS::ApplicationInsights::Application", "Properties": { "ResourceGroupName": "my_resource_group", "ComponentMonitoringSettings": [ { "ComponentARN": "my_component", "Tier": "SQL_SERVER", "ComponentConfigurationMode": "DEFAULT" } ] } }
Modello in formato YAML
--- Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName:my_resource_groupComponentMonitoringSettings: - ComponentARN:my_componentTier: SQL_SERVER ComponentConfigurationMode: DEFAULT
Creazione di un'applicazione Application Insights con configurazione del componente in modalità DEFAULT_WITH_OVERWRITE
Questo modello di esempio esegue le seguenti operazioni:
-
Crea un'applicazione Application Insights. Per ulteriori informazioni, consulta CreateApplication nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
-
Il componente
my_componentimpostaComponentConfigurationModesuDEFAULT_WITH_OVERWRITEetiersuDOT_NET_CORE, il che causa la configurazione del componente con le impostazioni di configurazione consigliate da Application Insights per il livelloDOT_NET_CORE. Le impostazioni di configurazione sovrascritte sono specificate inDefaultOverwriteComponentConfiguration:-
A livello di componente, le impostazioni
AlarmMetricsvengono sovrascritte. -
A livello di componente secondario, per i componenti secondari di tipo
EC2_Instance, le impostazioniLogsvengono sovrascritte.
Per ulteriori informazioni, consulta UpdateComponentConfiguration nella documentazione di riferimento dell'API di Approfondimenti sulle applicazioni Amazon CloudWatch.
-
Modello in 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" } ] } } ] } } ] } }
Modello in 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