
こんにちは。a.nakamuraです。
本記事はOracle Cloud Infrastructure Advent Calendar 2024 シリーズ2の Day14の記事です。
今回はイベントを利用してBaseDBで取得しているバックアップが失敗した際にメールで通知する方法について記載します。
イベント概要
イベントとはOCI リソースの状態変更に基づいて通知する等が可能なサービスです。
今回はバックアップ失敗したイベントを検知してメール通知をするように設定をします。
イベントサービスが利用できるサービス一覧: イベントを生成するサービス
設定
通知先の設定
メール通知先の設定をします。
1.OCIコンソール画面の左上のハンバーガーアイコン → [アプリケーション統合] → [開発者サービス] → [通知] → [トピック]→ [トピックの作成]を選択します。

2. トピックの[名前]を指定して[作成]します。今回は[Topic_BackupFailed]にしました。

3.作成したトピックの詳細画面で [サブスクリプションの作成] → [プロトコル:電子メール] → [電子メール:通知先のメールアドレス] を指定して [作成]します。


4. 指定したメールアドレスに「Oracle Cloud Infrastructure Notifications Service Subscription Confirmation」という件名のメールが届くので、[Confirm subscription]を選択して承認をします。

5. サブスクリプションの状態が「アクティブ」になります。

BaseDB
BaseDBがバックアップ失敗した場合に通知するイベントの設定をします。
1.OCIコンソール画面の左上のハンバーガーアイコン → [監視および管理] → [イベント・サービス] → [ルール]→ [ルールの作成]を選択します。

2. ルールの[表示名]を指定します。今回は[Rule_BaseDBBackupFailed]にしました。

3. ルール条件で以下のイベント・タイプを設定します。
バックアップのイベントは自動バックアップと手動バックアップで異なる設定値になっています。
条件 | サービス名 | イベント・タイプ | 備考 |
イベント・タイプ | Database | Database - Automatic Backup End | 自動バックアップ |
Database - Create Backup End | 手動バックアップ |

4. ルール条件で以下の属性を設定します。
今回はBaseDBのOCIDを指定しています。指定しない場合はルールと同じコンパートメントにある全てのBase DBが対象になります。
条件 | 属性名 | 属性値 | 備考 |
属性 | lifecycleState | FAILED | 失敗のステータス |

5. アクション・タイプで作成したトピックを指定して、[ルールの作成]をします。

通知メール
バックアップ失敗した際の通知メールは以下のような内容が届きます。
BaseDBの自動バックアップが失敗したこと、対象のDBシステムID等が記載されています。
(見にくいですが...)

おわりに
以上がバックアップ失敗時に通知する設定でした。
BaseDBでdcs_agentの定期アップデートが失敗した影響でバックアップが取得できていなかったことがありました...
大事なバックアップですので通知して取り逃がしが無いようにしたいです!
今回はBaseDBを対象にしましたがイベントを生成するOCI サービスは他にもあるので上手に活用して気づき、対応していきたいです
本記事がお役に立てば幸いです。