CloudWatchとは
AWSリソース、アプリケーション、オンプレのモニタリング、監視の集約、ログの分析、トラブルシュート、自動アクション、運用状況の把握が可能
CloudWatchの機能
CloudWatch Metrics
- メトリクス
- CloudWatchに発行された時系列のポイントのセット
- CPU利用率などのメトリクス名を持つ
- タイムスタンプと測定単位を持ち、作成されたリージョンのみ存在
- 名前空間
- CloudWatchメトリクスのコンテナとなり、異なる名前空間のメトリクスは相互に切り離される
- AWS/service名
- ディメンション
- インスタンスなどのメトリクスを識別するユニークなID
- メトリクス値
- 色々なメトリクスのデータの生成は基本は1分、カスタムメトリクスの高解像度を利用して最短で1秒
- 基本のメトリクスの間隔はサービスごとに異なる。基本モニタリングと詳細モニタリングがある。- メトリクスデータの粒度で使用期間が決まる(1分間未満:3時間、1分:15日)
- Metrics Math
- 数式を使用して新しいメトリクスを作成
- スナップショットグラフ
- GetMetric WidgetImage APIを使用してグラフのPNG画像を取得可能
- Wiki、チケットシステム、チャットアプリ等への連携
- CloudWatch Alarmsと組み合わせて異常通知にグラフを添付
- CloudWatch カスタムメトリクス
- 標準メトリクス以外のドクズメトリクスも監視可能
- CLIの”Put-metric-data”でデータ登録
- 高解像度なメトリクスを発行可能
CloudWatch で利用できるエージェント/プロトコル
- 統合CloudWatchエージェント
- メトリクスとログの両方を単一のエージェントで取得
- クラウドでもオンプレでも利用可能
- Windowsの両方に使える
- agent、metrics,Logsの3つのセクションを持つJSonファイルで、取得対象などを設定
- 全て取得するとコスト増なので、必要なデータのみ取得する
- StatsD,Collectdのサポート(OSSの数値レポーティングツール)
- カスタムメトリクスを取得
- Collectdソフトを使用して、メトリクスをCloudWatchエージェントに送信
CloudWatch Alarms
条件を指定して、自動アクションの実行が可能。
アラームの状態はOK(正常値)、ALARM(異常値)、INSUFFCIENT_DATA(判定不能)の3種類。
INSUFFCIENT_DATAはデータ不足で発生するので、必ずしも障害を表すステータスではない。
また、Billingアラームで課金状況を監視できる。
M out of N(N個中、M個)のアラーム設定
不安定なデータに対して、評価期間内に閾値を超えたデータポイント数で評価。
短時間で変化が大きいメトリクスで誤報を抑制する。
CloudWatch Alarmsのアクション機能
状態変化した際に、以下をアクションとして連携できる
- SNS:トピックを発行して、サブスクライブにEmailを指定してメール通知や、Lambdaを指定して、処理を実行できる。
- EC2:インスタンスを自動停止、終了、再起動、復旧する。Auto Recoveryを利用。
- EC2 Auto Scaling:負荷に応じてリソースを調整
CloudWatch Logs
システムのログファイルの監視、保存、アクセスが可能。ログデータの保存期間を設定可能。(1日〜永久)S3へのエクスポートも可能。
CloudWatch Logsメトリクスフィルタ
ログデータから特定の文字列のフィルタリングが可能。
メトリクスに一致したパターン数を記録。アラーム作成やSNS連携も可能。
(例えばerrorをフィルターにかけるなど)
CloudWatch Logs サブスクリプションフィルタ
ログをフィルタフィルタパターンに応じてリアルタイムに、Kinesis Data Streems/Kinesis Data Firehose/lambdaに転送する。1つのロググループにつき、1つのサブスクリプションフィルタを設定可能。
CLIからのみ設定できる。
S3へのログデータのエクスポート
コンソールからCLIより設定。タスクの完了には数秒から数時間かかる。
ログ調査のために、一部データをアドホック(特定の)に取得するパターンに活用。継続的に転送するなら、↑のKinesis Data Firehoseを使う方が良い。
CloudWatch Logs Insight
CloudWatch Logsのデータを検索して分析できる。
専用のクエリ言語と、コマンドを提供している。
Visualizationで可視化機能を提供しており、時間軸に沿ったトレンドやパターンを特定・分析する。
CloudWatch Dashboards
カスタム可能。AWSが推奨するベストプラクティスに基づいたダッシュボードを自動生成する”Automated Dashboard”がある。
CloudWatch Events
リソース変更のイベントや定期実行に応答してアクションを実行。
ルールの有効化・無効化が可能。