CloudFormation テンプレートを使用して CloudWatch Application Insights モニターリングを作成および設定する
AWS CloudFormation テンプレートから、主要メトリクスやテレメトリを含む Application Insights モニターリングをアプリケーション、データベース、ウェブサーバーに追加できます。
このセクションでは、Application Insights モニターリングの作成および設定に役立つサンプル AWS CloudFormation テンプレートを JSON 形式と YAML 形式の両方で提供しています。
AWS CloudFormation ユーザーガイドの Application Insights リソースとプロパティのリファレンスを表示するには、ApplicationInsights リソースタイプのリファレンスを参照してください。
サンプルテンプレート
AWS CloudFormation スタック全体の Application Insights アプリケーションを作成する
次のテンプレートを適用するには、AWS リソースと、それらのリソースをモニターリングする Application Insights アプリケーションの作成元となる 1 つ以上の Resource Groups を作成する必要があります。詳細については、「AWS Resource Groups の開始方法」を参照してください。
次のテンプレートの最初の 2 つの部分は、リソースとリソースグループを指定します。テンプレートの最後の部分では、リソースグループの Application Insights アプリケーションを作成しますが、アプリケーションの設定やモニターリングの適用は行いません。詳細については、Amazon CloudWatch Application Insights API リファレンスの CreateApplication コマンドの詳細を参照してください。
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" } } }
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
次のテンプレートセクションでは、デフォルトのモニターリング設定を Application Insights アプリケーションに適用します。詳細については、Amazon CloudWatch Application Insights API リファレンスの CreateApplication コマンドの詳細を参照してください。
AutoConfigurationEnabled
を true
に設定すると、アプリケーションのすべてのコンポーネントが、DEFAULT
アプリケーション層の推奨モニターリング設定を使用して設定されます。これらの設定と層の詳細については、Amazon CloudWatch Application Insights API リファレンスの「DescribeComponentConfigurationRecommendation」と「UpdateComponentConfiguration」を参照してください。
JSON 形式のテンプレート
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "
Test Application Insights Application stack
", "Resources": { "AppInsightsApp": { "Type": "AWS::ApplicationInsights::Application", "Properties": { "ResourceGroupName": "my_resource_group
", "AutoConfigurationEnabled": true } } } }
YAML 形式のテンプレート
--- AWSTemplateFormatVersion: '2010-09-09' Description:
Test Application Insights Application stack
Resources: AppInsightsApp: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName:my_resource_group
AutoConfigurationEnabled: true
詳細な設定を使用した Application Insights アプリケーションの作成
次のテンプレートは、これらのアクションを実行します。
-
CloudWatch Events 通知と OpsCenter が有効な Application Insights アプリケーションを作成します。詳細については、Amazon CloudWatch Application Insights API リファレンスの CreateApplication コマンドの詳細を参照してください。
-
アプリケーションに 2 つのタグを付けます。そのうちの 1 つにはタグ値がありません。詳細については、Amazon CloudWatch Application Insights API リファレンスの「TagResource」を参照してください。
-
2 つのカスタムインスタンスグループコンポーネントを作成します。詳細については、Amazon CloudWatch Application Insights API リファレンスの「CreateComponent」を参照してください。
-
2 つのログパターンセットを作成します。詳細については、Amazon CloudWatch Application Insights API リファレンスの「CreateLogPattern」を参照してください。
-
AutoConfigurationEnabled
をtrue
に設定します。これにより、アプリケーションのすべてのコンポーネントが、DEFAULT
層で推奨されるモニターリング設定で構成されます。詳細については、Amazon CloudWatch Application Insights API リファレンスの「DescribeComponentConfigurationRecommendation」を参照してください。
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 } ] } ] } }
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
CUSTOM
モードのコンポーネント設定を使用した Application Insights アプリケーションの作成
次のテンプレートは、これらのアクションを実行します。
-
Application Insights アプリケーションを作成します。詳細については、Amazon CloudWatch Application Insights API リファレンスの「CreateApplication」を参照してください。
-
Component
my_component
はComponentConfigurationMode
をCUSTOM
に設定します。これにより、このコンポーネントはCustomComponentConfiguration
で指定された設定で設定されます。詳細については、Amazon CloudWatch Application Insights API リファレンスの「UpdateComponentConfiguration」を参照してください。
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" }, ... ] } } ] } } ] } }
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 ...
DEFAULT
モードのコンポーネント設定を使用した Application Insights アプリケーションの作成
次のテンプレートは、これらのアクションを実行します。
-
Application Insights アプリケーションを作成します。詳細については、Amazon CloudWatch Application Insights API リファレンスの「CreateApplication」を参照してください。
-
コンポーネント
my_component
は、ComponentConfigurationMode
をDEFAULT
に設定し、Tier
をSQL_SERVER
に設定します。これにより、このコンポーネントは、Application Insights がSQL_Server
層の推奨される構成設定を使用して構成されます。詳細については、Amazon CloudWatch Application Insights API リファレンスの「DescribeComponentConfiguration」と「UpdateComponentConfiguration」を参照してください。
JSON 形式のテンプレート
{ "Type": "AWS::ApplicationInsights::Application", "Properties": { "ResourceGroupName": "
my_resource_group
", "ComponentMonitoringSettings": [ { "ComponentARN": "my_component
", "Tier": "SQL_SERVER", "ComponentConfigurationMode": "DEFAULT" } ] } }
YAML 形式のテンプレート
--- Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName:
my_resource_group
ComponentMonitoringSettings: - ComponentARN:my_component
Tier: SQL_SERVER ComponentConfigurationMode: DEFAULT
DEFAULT_WITH_OVERWRITE
モードのコンポーネント設定を使用した Application Insights アプリケーションの作成
次のテンプレートは、これらのアクションを実行します。
-
Application Insights アプリケーションを作成します。詳細については、Amazon CloudWatch Application Insights API リファレンスの「CreateApplication」を参照してください。
-
コンポーネント
my_component
は、ComponentConfigurationMode
をDEFAULT_WITH_OVERWRITE
に設定し、tier
をDOT_NET_CORE
に設定します。これにより、このコンポーネントは、Application Insights がDOT_NET_CORE
層の推奨される構成設定を使用して構成されます。上書きする構成設定は、DefaultOverwriteComponentConfiguration
で指定します。-
コンポーネントレベルでは、
AlarmMetrics
設定が上書きされます。 -
サブコンポーネントレベルでは、
EC2_Instance
タイプのサブコンポーネントでLogs
設定が上書きされます。
詳細については、Amazon CloudWatch Application Insights API リファレンスの「UpdateComponentConfiguration」を参照してください。
-
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
" } ] } } ] } } ] } }
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