OCI Monitoringでサーバの死活監視をする方法

Oracle Cloud Infrastructureにはほぼ無償で使えるOCI Monitoringという機能があります。
アラート機能と組み合わせると特定の条件になった時にメールやSMSで通知する事ができます。
ここではコンピュートが止まった場合に通知方法をご紹介します。

## アラートの設定

OCIコンソール左上の3本線（ハンバーガーメニュー）をクリックしてメニューを出し、「監視および管理」を選択すると右側にメニューが展開されるのでその中の「モニタリング」を選択します。
![20.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/a80f2f87-3930-4abf-599c-bd3ddeeaa7ef.jpeg)

モニタリングの左メニューの中に「アラーム定義」があるのでそちらを選択します。
![21.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/4e79f4e2-8580-c91e-f610-c161cf81006e.jpeg)

右側の画面にアラームの作成というボタンが出るのでそれを押下します。
![22.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/041132a1-7fee-d0e7-fafa-162dc97cda4c.jpeg)

下記の赤枠が変更を加えてある箇所ですが、「アラーム名」以外はプルダウンメニューで選択する形になります。
![23.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/9d8b95f6-5a69-ab85-b7ee-c1b9de0478bf.jpeg)
上から順番に選択していくと、次のプルダウンメニューが出てきます。
右下のディメンション値というのは監視対象のサーバー名でコンピュートを作成した時にユーザーが定義した名前になり、このコンパートメント内にあるコンピュート一覧がプルダウンで表示されるので該当のサーバーを選択します。

下の方に行くとトリガー・ルールの作成をする箇所になります。
![24.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/39561cfc-6300-2314-1645-2ef26594e513.jpeg)
何をもってサーバー止まっているかというのは利用される方毎に定義が違うと思いますが、ここではOSが稼働している時には何かしらの値が入っている「CpuUtilization」の値が何も上がってこなくなる「なし」になった場合をサーバー停止と考え、その状態になったら発報するように上記定義を行います。
「アラーム本体」はメールに記載される内容なので受け取った人がわかる内容にしておくと親切かも知れません。

## 送信先の設定

更に下に移動すると「アラーム通知の定義」という項目があります。
事前に「トピック」という名称になっている連絡先を登録してあればプルダウンで出てくるので選択できますが、今回はこの場で新規トピック（通知先）を定義していきます。
![25.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/93542075-2c4d-c9c8-0aba-51fcf315917a.jpeg)
右側の「トピックの作成」をクリックします。

するとメニューが下に展開されて新しいトピック（通知先）を入力する事ができるようになります。
![26.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/9a62d997-a7bb-0b34-dd4b-56cc9c4219f7.jpeg)
今回はdemo_topicというトピック名でメールアドレスを登録しました。
入力が完了したら「トピックとサブスクリプションの作成」を押下します。

すると、設定したメールアドレスに確認メールが飛ぶので「Confirm subscription」のリンクをクリックします。
![27.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/4e7fe7de-f582-dfe8-a79f-b7c71a22749e.jpeg)

リンク先へ飛ぶと下記のように承認された案内が出ます。
![28.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/0604218d-887f-25db-2c15-93ecf2c935fc.jpeg)

最後に一番下の「アラームの保存」を押下すれば設定完了です。
![29.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/fc0e74b9-3370-9479-6666-1cb2757d5617.jpeg)

作成したアラーム定義はこちらでアラーム名の左側の緑のチェックは既に監視している事を意味します。
![30.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/e5cb550b-fe37-7226-0f42-59dfd8771e1b.jpeg)

## 実際に発報させてみる
ちゃんとメールが飛ぶかサーバーを止めて見ましょう。

コンピュートの一覧からアラートで定義したサーバーを選択して「停止」をしてみます。
![31.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/9fdca86a-3534-ff71-0705-fb38af9e0fc4.jpeg)

強制的に落とさず、やさしくinit0をかけてあげます。
![32.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/836716c6-cb7b-a235-e1e5-d169742a3c31.jpeg)

シャットダウン処理の少し時間がかかるのと検出間隔もあるため、実際に停止処理を始めてから4分後に以下のメールが届きました。
![33.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/5f5e8cb9-5ee0-1074-e4ea-9c1db4065712.jpeg)

左側のモニタリングメニューの中にある「アラームのステータス」を選択すると、今現在、発報されているアラームが表示されます。
![34.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/6533dc4f-db93-a734-81a3-b12520df1e4b.jpeg)
何も発報が無い場合はこちらは空になります。
アラーム名をクリックするとアラームの定義のページに飛びます。

アラーム名の横に炎のマークが出ていて発報されているのがわかります。
![35.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/70d669ff-ec6e-42a2-4878-0ab64f22890a.jpeg)

発報の確認ができたのでサーバー起動して正常な状態に戻します。
![36.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/e2d4ebaf-68fe-a74e-3ea0-b24b550e3c36.jpeg)

また4分くらいかかりましたが、StateがOKになっている復旧した通知が届きました。
![36.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/c3b1f096-4ce5-5993-3dc6-ceb13dc71eb4.jpeg)

アラームのステータスを確認すると先ほどまで表示されていた「demo_alarm」が消えています。
![37.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/74341875-5478-7d4b-52b7-76c1c2b6bd48.jpeg)

アラームの定義を確認すると緑のチェックに戻っていました。
![38.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2367692/8afccc5a-edb3-5778-dfb1-d722e7e4cd8e.jpeg)

このように簡単にサーバの死活監視を競ってする事ができます。

## 利用料金

冒頭で「ほぼ無償」と書いているのはデータポイント数が多いとほんの少しだけ費用がかかりますが、誤差程度です。
下記スライドに料金がでていますが、毎月10億データポイントまで無償です。
10憶データポイントをオーバーしても100万データポイントあたり0.0015ドルなので「ほぼ無償」と表現しています。

https://speakerdeck.com/ocise/ocimonitaringuji-neng-gai-yao?slide=29

詳細は上記資料が詳しいです。