Creazione e configurazione del monitoraggio di CloudWatch Application Insights tramite modelli CloudFormation - Amazon CloudWatch

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.

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

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 stack Resources: AppInsightsApp: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: my_resource_group AutoConfigurationEnabled: 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 AutoConfigurationEnabled su true, che configura tutti i componenti dell'applicazione con le impostazioni di monitoraggio consigliate per il livello DEFAULT. 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_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

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_component imposta ComponentConfigurationMode su CUSTOM, che causa la configurazione di questo componente con la configurazione specificata in CustomComponentConfiguration. 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_component imposta ComponentConfigurationMode su DEFAULT e Tier su SQL_SERVER, il che causa la configurazione del componente con le impostazioni di configurazione consigliate da Application Insights per il livello SQL_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_group ComponentMonitoringSettings: - ComponentARN: my_component Tier: 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_component imposta ComponentConfigurationMode su DEFAULT_WITH_OVERWRITE e tier su DOT_NET_CORE, il che causa la configurazione del componente con le impostazioni di configurazione consigliate da Application Insights per il livello DOT_NET_CORE. Le impostazioni di configurazione sovrascritte sono specificate in DefaultOverwriteComponentConfiguration:

    • A livello di componente, le impostazioni AlarmMetrics vengono sovrascritte.

    • A livello di componente secondario, per i componenti secondari di tipo EC2_Instance, le impostazioni Logs vengono 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_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