OCIのモニタリングサービスでインスタンスの死活監視を設定する

# はじめに
OCIのインスタンスの死活監視をモニタリングサービスを利用して設定します。

## 参考情報
https://docs.oracle.com/ja-jp/iaas/Content/Monitoring/Concepts/alarmsbestpractices.htm#createsets__UpDownExample

# インスタンスのモニタリング有効化
モニタリングサービスで監視するためには、対象インスタンスのモニタリングを有効にする必要があります。

https://docs.oracle.com/ja-jp/iaas/Content/Compute/Tasks/enablingmonitoring.htm#Enabling_Monitoring_for_Compute_Instances

監視対象のインスタンスの「Oracle Cloudエージェント」→「コンピュート・インスタンスのモニタリング」が有効になっていることを確認します。
デフォルト設定は有効です。

![インスタンス  Oracle Cloud Infrastructure - Google Chrome_2022-3-16_14-41-52vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/67b738c7-f6ae-9965-96b3-91ed8bea9f95.png)



# アラーム定義
OCIコンソール左上のハンバーガーメニューから「監視および管理」→「アラーム定義」を選択します。

![ホーム  Oracle Cloud Infrastructure - Google Chrome_2022-3-15_10-4-18vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/c109d3c5-7f11-f8aa-102d-fa755dbfe5e8.png)

コンパートメントを確認、選択して「アラームの作成」をクリックします。

![アラーム定義  Oracle Cloud Infrastructure - Google Chrome_2022-3-15_10-4-35vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/0cc36d07-046b-e8e7-33e2-863acc844acf.png)

## アラームの設定
一例として以下のように設定します。
今回の死活監視では[アラームのベストプラクティス](https://docs.oracle.com/ja-jp/iaas/Content/Monitoring/Concepts/alarmsbestpractices.htm#createsets__UpDownExample)に則って、CPUのメトリクスが5分間なければ、インスタンスが落ちていると判断します。

![アラーム定義  Oracle Cloud Infrastructure - Google Chrome_2022-3-16_13-11-47vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/793ab8d4-c8a5-b67d-4388-f3339c344a44.png)

![アラーム定義  Oracle Cloud Infrastructure - Google Chrome_2022-3-16_13-14-12vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/49e830fc-45d1-3e30-75e5-bfa7b6af9a2f.png)

各設定項目は以下のように設定しました。

|設定項目|設定内容
|:--|:--
|アラーム名|任意の名前を設定
|アラームの重要度|ここではインスタンスの死活監視なので、「クリティカル」を選択
|アラーム本体|任意のメッセージを設定
|タグ（オプション）|任意に設定
|コンパートメント|コンパートメントを選択
|メトリック・ネームスペース|oci_computeagentを選択
|メトリック名|CpuUtilizationを選択
|間隔|5mを選択
|統計|任意 <br> 今回はCPUメトリクスがある/ないを判断しますので、この設定は関係ありません
|ディメンション名|resourceDisplayNameを選択
|ディメンション値|作成済みの監視対象インスタンスを選択
|演算子|「なし」を選択
|トリガー遅延分数|トリガーを検知してからアラームを発するまでの遅延時間を設定
|宛先サービス|Notification Serviceを選択
|トピック|設定済みのトピックを選択<br>ない場合は、右上の「トピックの作成」をクリック
|メッセージの書式|好みに応じて選択
|通知の繰返し|同じ通知を繰り返したい場合、選択
|通知の抑制|メンテナンスなどで通知を抑制したい場合は選択し、時間を設定
|アラームの保存|クリック

設定が完了すると以下のような画面になります。

![アラーム定義  Oracle Cloud Infrastructure - Google Chrome_2022-3-16_13-34-6vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/6771d296-4fb6-f3e5-604f-78c0faea2b13.png)

# 動作確認
監視対象のインスタンスを停止して、アラームが発動するか確認します。
インスタンス停止後しばらくすると、以下のようにアイコンが炎上しているようになります。

![アラーム定義  Oracle Cloud Infrastructure - Google Chrome_2022-3-16_13-46-5vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/a6292402-9e26-2fc1-5e2b-079e36d19240.png)

Notificationでメール送信を設定しておくと、以下のようなメールが送信されます。
![Notification.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/94b82893-6c84-e53b-64cf-f40181949723.png)

インスタンスを起動すると、モニタリングの炎上アイコンがグリーンのOKアイコンに戻って、メールでも通知されます。

# 補足事項
## （補足1）トピックの作成
作成済みのトピックがない場合、アラームの作成で作成できます。
「トピックの作成」をクリックすると、以下のような設定項目が表示されます。

![アラーム定義  Oracle Cloud Infrastructure - Google Chrome_2022-3-15_10-23-2vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/a0a9cea2-29c2-49a1-67d3-93ad210e2132.png)

|設定項目|設定内容
|:--|:--
|トピック名|任意の名称を設定
|トピックの説明|任意の説明を設定
|Subscription protocol|ここでは「電子メール」を選択
|サブスクリプション電子メール|通知メールアドレスを設定

各項目を設定し、「トピックとサブスクリプションの作成」をクリックすると、以下のようなメールが届きます。

![Oracle Cloud Infrastructure Notifications Service Subscription Confirmation - メッセージ (HTML 形式) _2022-3-15_10-24-3vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/9595ad62-123c-fe7d-1c2c-ee61a82bb012.png)

メールの「Confirm subscription」をクリックします。
クリックすると、以下のような画面が表示されて、トピックがサブスクライブ（有効）されます。

![httpscell1notificationap-tokyo-1oraclecloudcom20181201subscriptionsocid1onssubscriptionoc1ap-tokyo-1_2022-3-15_10-24-26vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/55d214b9-f9c6-1980-d10b-6dfc9757ecc1.png)

## （補足2）プライベートサブネット上のインスタンスの監視
プライベートサブネット上のインスタンスを監視するためには、メトリックをモニタリングサービスに送信するために、サービスゲートウェイが必要になります。

[日本語のマニュアル](https://docs.oracle.com/ja-jp/iaas/Content/Compute/Tasks/enablingmonitoring.htm#prerequisites)だと翻訳がわかりにくいのですが、サービスゲートウェイの作成で`ALL リージョン Services in Oracle Services Network`を選択します。

![仮想クラウド・ネットワーク  Oracle Cloud Infrastructure - Google Chrome_2022-3-22_9-35-59vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/fa4068b2-c2bf-2c65-f220-cf72ca5f76df.png)

作成したサービスゲートウェイをプライベートサブネットのルートテーブルのルートルールに追加します。

![仮想クラウド・ネットワーク  Oracle Cloud Infrastructure - Google Chrome_2022-3-22_9-42-0vv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/cd8318cc-35b7-a395-3fd1-6710af8b7b3f.png)