【CloudWatch】メトリクス監視、イベント監視、ログ監視の設定手順

全体構成

メトリクス監視、イベント監視、ログ監視を組み合わせた監視設定の全体構成は以下のようになります。

【メトリクス監視】

AWS/EC2 標準メトリクス
CWAgent カスタムメトリクス
  ↓
CloudWatch Alarm
  ↓
共通SNS
  ↓
Amazon Q Developer
  ↓
Slack


【イベント監視】

AWS Healthイベント
EC2インスタンス状態変更イベント
  ↓
EventBridge
  ↓
共通SNS
  ↓
Amazon Q Developer
  ↓
Slack


【ログ監視】

EC2上のログ
  ↓
CloudWatch Agent
  ↓
CloudWatch Logs
  ↓
メトリクスフィルター
  ↓
カスタムメトリクス
  ↓
CloudWatch Alarm
  ↓
共通SNS
  ↓
Amazon Q Developer
  ↓
Slack

特徴としては以下になります。

  • メトリクス監視とログ監視は、CloudWatch Alarm が判定・発報
  • イベント監視は、EventBridge がイベントを検出して直接 SNS へ送信
  • SNS は監視や判定をせず、通知を配送するだけ

CloudWatch については以下でも詳しく解説しています。

想定する EC2 インスタンス

以下の EC2 インスタンスを監視する想定です。

リソースNameインスタンスID例
EC2prod-app-01i-0123456789abcdef
EC2prod-app-02i-abcdef1234567890

メトリクス監視

EC2のメトリクス監視は、大きく2種類あります。

EC2標準メトリクス

エージェントなしで取得できます。

CPUUtilization
StatusCheckFailed_System
StatusCheckFailed_Instance
StatusCheckFailed_AttachedEBS
NetworkIn
NetworkOut
DiskReadBytes
DiskWriteBytes

CloudWatch Agent メトリクス

CloudWatch Agent を EC2 に導入すると取得できます。このメトリクスは標準ではないので「カスタムメトリクス」になります。

mem_used_percent
disk_used_percent
swap_used_percent
processes_running

CloudWatch Agentは、EC2標準監視では取得できないOS内部のメモリ、ディスク使用率などを追加収集できます。ログ収集にも同じ統合CloudWatch Agentを使用できます。

今回は、各EC2について次の6個を監視する構成にします。

メトリクス目的カテゴリ
CPUUtilizationCPU高騰標準メトリクス
StatusCheckFailed_SystemAWS基盤側の障害標準メトリクス
StatusCheckFailed_InstanceOS・ネットワーク設定などインスタンス内部の異常標準メトリクス
StatusCheckFailed_AttachedEBSアタッチされたEBSの異常標準メトリクス
mem_used_percentメモリ不足カスタムメトリクス
disk_used_percentディスク容量不足カスタムメトリクス