MySQL を実行する Amazon Relational Database Service (Amazon RDS) インスタンスがあります。Amazon CloudWatch アラームと Amazon Simple Notification Service (Amazon SNS) トピックを作成して、特定のイベントに関する通知を受信したいです。(たとえば、CloudWatch のフィルターパターンと一致する SQL Server のエラーイベントとエージェントログイベントなど。)
簡単な説明
まず、SQL サーバーのログを Amazon CloudWatch ログに発行します。次に、作成したフィルターパターンと一致する SQL Server DB ログイベント用の CloudWatch アラームと SNS 通知を作成します。
Amazon RDS for SQL Server のログデータが CloudWatch に発行されたら、メトリクスフィルターを作成してログを検索およびフィルタリングできるようになります。メトリクスフィルターで、Amazon CloudWatch Logs に送信されるログデータで検索する語句とパターンを定義します。次に、CloudWatch Logs はメトリクスフィルターを使用して、ログデータをアラーム設定対象の数値型 CloudWatch メトリクスに変換します。
これらのメトリクスを確認したりアラームを設定したりするときは、パーセンタイル統計など、あらゆるタイプの CloudWatch 統計を使用できます。詳細については、「フィルターを使用してログイベントからメトリクスを作成する」を参照してください。
解決策
[ユーザーのログイン失敗] などのフィルターパターンを作成することで、失敗したログイン試行を識別できます。他には、[完了までに 15 秒以上かかる I/O 要求] のフィルターを作成して、I/O ボトルネックまたはディスクボトルネックを特定することもできます。
次の例では、フィルターを使用して "Login failed for user" (ユーザーのログイン失敗) という語句を含むイベントを検索してカウントし、失敗したログイン試行を追跡します。
注: デフォルトでは、Amazon RDS DB のログは CloudWatch Logs に発行されません。開始するには、ステップに従って SQL サーバーログを Amazon CloudWatch Logs に発行します。
- Amazon RDS コンソールを開き、ナビゲーションペインで [データベース] を選択します。
- CloudWatch メトリクスを設定する対象の DB インスタンスの名前を選択します。
- [設定] タブで [CloudWatch Logs] の [エラー] を選択します。すると、CloudWatch コンソールで [ログ] ペインが開きます。[発行されたログ] セクションが表示されない場合は、SQL Server ログを CloudWatch Logs に発行していることを確認してください。
- CloudWatch コンソールのナビゲーションペインから、[ロググループ] を選択します。
- RDS DB インスタンスのエラーログを選択し、[メトリクスフィルターの作成] を選択します。
- [フィルターパターン] に、"Login Failed for User" (ユーザーのログイン失敗) などのパターンを入力します。
注: フィルターパターンのすべてのエントリでは、大文字と小文字が区別されます。
- 同じページから、フィルターパターンをテストできます。[テストするログデータを選択] セクションでフィルターをテストするロググループを選択し、[テストパターン] を選択します。
- [結果] セクションでは、ログファイルのフィルターパターンと一致する結果の数を確認できます。[テスト結果を表示] を選択して詳細を確認することもできます。
- [メトリクスの割り当て] を選択します。
- フィルター名とメトリクス名を入力します。
- [詳細なメトリクス設定を表示] を選択し、[メトリクス値] が 1 に設定されていることを確認します。この値指定により、"Login Failed for User" を含むログイベントごとにカウントが 1 ずつ増加します。
- [デフォルト値] に 0 を入力します。
- 次に、[フィルターの作成] を選択します。[アラームの作成] ボタンが表示されます。[アラームを作成] を選択します。
- [期間] ドロップダウンリストから、評価期間を選択します。デフォルトの期間は 5 分です。
- [条件] セクションで、次のように選択します。
しきい値タイプ - 静的
テスト条件 - 次の閾値より大きい
閾値 - 10 を入力します。
- [追加設定] セクションを展開します。[アラームするデータポイント] には、アラームをトリガーする条件として、ALARM 状態になっている必要がある評価期間 (データポイント) の数を入力します。
- [欠損データ処理] から、[欠損データを欠損として扱う] を選択します。
- [次へ] を選択します。
- [通知] セクションの [SNS トピックを選択] で、既存の SNS トピックを選択するか、通知を受け取るための新しいトピックを作成します。
- 通知を受け取る電子メールエンドポイントを入力します。
- [次へ] を選択します。
- [アラーム名] と [アラーム説明] を入力し、[次へ] を選択します。
- [プレビューと作成] ページから、メトリクスのグラフと条件を確認します。
- [アラームを作成] を選択します。
これらのサンプル手順を実行すると、最初の数分間、アラームはデータ不足状態になります。アラームのデータが十分になると、ステータスは OK になります。5 分以内に 10 回よりも多くログインに失敗した場合、CloudWatch アラームは指定されたメールに SNS 通知を送信します。
関連情報
Amazon RDS におけるモニタリングメトリクスの概要