OCI Compute のモニタリング方法、メトリクスの見方

# 1. はじめに
多くの場合、組織でシステムを運用していく際には、運用監視やヘルスチェックを行っていると思います。特にコンピュート、IaaS部分の監視は需要が高いかと思います。運用を監視することで、パフォーマンスを最大化したり、コストを最適化することもできるため、柔軟なスケーリングが可能なクラウドではより運用監視やヘルスチェックが重要になります。

Oracle Cloud Infrastructure では、 Monitoring サービスを提供しており、メトリックやアラーム機能を使用してクラウドリソースを監視することが可能です。
なお、コンピュート・インスタンスやブロック・ボリュームなどの OCI リソースに対してモニタリングの機能はデフォルトで有効になっています。

https://docs.oracle.com/ja-jp/iaas/Content/Monitoring/Concepts/monitoringoverview.htm


本記事では、コンピュート・インスタンスを対象にして、性能メトリックの参照方法を理解し、問題が発生した場合のアラーム通知を行い、管理者/保守担当者へのメール通知を行います。構築イメージは以下の通りです。仮想マシンのCPU使用率が60%になった際に通知を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/73f58db6-ab50-0e28-6991-3218304f8b92.png)



今回は、OCI チュートリアルの内容に沿った形で進めていきますが、OCI チュートリアルとは OCI のコンソール画面の UI や Oracle Linux のバージョンが異なるので、少しだけ画面遷移やコマンドの実行結果が異なります。

https://oracle-japan.github.io/ocitutorials/intermediates/monitoring-resources/#2-%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%A1%E3%83%88%E3%83%AA%E3%83%83%E3%82%AF%E3%81%AE%E5%8F%82%E7%85%A7%E5%90%84%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E8%A9%B3%E7%B4%B0%E7%94%BB%E9%9D%A2%E3%81%8B%E3%82%89%E3%81%AE%E5%8F%82%E7%85%A7

# 2. 前提条件	
- 作業を行うユーザーに対し、適当な権限(動的グループ、ポリシーなど)が与えられていること
- 仮想クラウド・ネットワーク(VCN)の設定が完了していること
- 監視対象となるオラクル提供イメージのコンピュート・インスタンスの構築が完了していること


# 3.手順
1\. コンピュート・インスタンスの Oracle Cloud エージェントの設定
2\. アラームの通知先の作成
3\. アラーム定義の作成
4\. 通知の確認


# 4. コンピュート・インスタンスの Oracle Cloud エージェントの設定
コンピュート・インスタンスをモニタリングするためには、Oracle 提供イメージを使い、モニタリングの有効化を行っている必要があります。

デフォルトでは、コンピュート・インスタンスへのモニタリングは有効になっています。

監視対象となるコンピュート・インスタンスの詳細画面内にある **「Oracle Cloudエージェント」** をクリックし、「コンピュート・インスタンスのモニタリング」が**有効**になっていることを確認してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/6fa7fcdf-7a25-097d-21c5-e3ce3fa0ed11.png)



# 5. モニタリング・メトリックの参照
メトリックを参照する方法は2通りあります。コンピュート・インスタンスの詳細画面とサービス・メトリックの画面から参照する方法があります。


### 5.1. コンピュート・インスタンスの詳細画面からの参照
OCI のコンソール画面から コンピュート -> インスタンス を選択し、監視対象とするコンピュート・インスタンスを選択し、インスタンスの詳細画面を開きます。

画面左下のリソースから<strong>メトリック</strong>を選択すると、インスタンスの CPU 使用率やメモリの使用率、ディスクのI/O、ネットワークの送受信量などの性能メトリックを参照することが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/814cbba9-003e-9cda-8cd1-e00489ac5fc0.png)



### 5.2. サービス・メトリックの画面からの参照
個別のリソースではなく、複数のリソースにまたがってメトリックを一覧で参照したい場合には、サービス・メトリックのページからまとめて参照することができます。

OCI のコンソール画面から 監視および管理 -> モニタリング -> サービス・メトリック を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/2e32f550-db38-7643-d7f0-b5c8b157f870.png)


サービス・メトリック画面の上部で、表示させたい対象のコンパートメントとメトリック・ネームスペースを選択します。
コンパートメントは、コンピュート・インスタンスを作成したコンパートメントを選択します。
メトリック・ネームスペースは <strong>oci-computeagent</strong> を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/47112e91-3334-a38a-7e0c-18f7eccb5e34.png)


コンピュート・インスタンスの詳細画面と同様に、インスタンスの CPU 使用率やメモリの使用率、ディスクのI/O、ネットワークの送受信量などの性能メトリックを参照することが可能です。また、開始時間、終了時間を5分間隔で変更し、表示する範囲を変更できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/8e146dd7-2a0c-2286-44b3-0442ee11e043.png)


# 6. アラームの通知先の作成
アラーム定義を作成し、メトリックの値が何らかの閾値に達した際、アラームを発砲して、通知を行うことが可能です。

ここでは、メールにて通知を行う設定を作成します。

OCI のコンソール画面から 開発者サービス -> アプリケーション統合 -> 通知 を選択し、通知画面を表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/1572b99e-9500-b6e7-9536-ee8f356a87b3.png)


「トピックの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/fdf461f7-ad92-610c-78dd-30d25efcc161.png)


トピックの作成ウィンドウで、必要事項を入力し、左下の「作成」をクリックします。
<dl>
    <dt>トピックの作成</dt>
	<dd>名前：任意</dd>
	<dd>説明：(オプション)</dd>
 </dl>
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/1797f509-37fe-292b-a959-ddc88f0db3df.png)

作成したトピックの名前をクリックし、トピックの詳細画面を表示します。
トピックの詳細画面にある「サブスクリプションの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/da635dff-1011-0f60-46eb-bf65a9e768ed.png)


「サブスクリプションの作成」画面で以下の項目を入力し、左下の「作成」画面をクリックします。
<dl>
    <dt>サブスクリプションの作成</dt>
	<dd>プロトコル：電子メール を選択(デフォルト)</dd>
	<dd>電子メール：通知先となるメールアドレスを入力</dd>
 </dl>
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/fb19b613-0352-5471-2b67-8ac160e53b4c.png)


サブスクリプションを作成すると、状態は<strong>「保留中」</strong> になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/fc8c7dc3-eabc-eefa-1c2c-d2c685a98643.png)


設定したメールアドレスに Oracle Cloud から以下のような確認メールが送信されます。
メール内のURLをクリックして、状態を<strong>「アクティブ」</strong>にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/2e2f83a1-dd05-1856-fbd5-4d0731503f6f.png)

URLをクリックすると、以下のような「Subscription confirmed」のページが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/63009cc5-cf15-ff3d-8ab9-e655f8f3c352.png)

コンソール画面に戻ると、サブスクリプションの状態が<strong>「アクティブ」</strong>に変わっていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/0b4ab1a4-0718-dd94-9208-44195cd1b3f0.png)



# 7. アラーム定義の作成
次に、アラームの定義を作成します。

OCI のコンソール画面から 監視および管理 -> モニタリング -> アラーム定義 を選択し、アラーム画面を表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/18ae9a48-c1a4-7a1f-8b4b-891450a98414.png)


アラーム画面の「アラームの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/235328a0-9f08-d752-4a69-7ff5f3a298b8.png)


「アラームの作成」ウィンドウで以下の項目を入力し、左下の「作成」ボタンをクリックします。
<dl>
    <dt>アラームの定義</dt>
    <dd>アラーム名：任意</dd>
</dl>
<dl>
    <dt>メトリックの説明</dt>
    <dd>メトリックの範囲：メトリックのあるコンパートメントを選択</dd>
    <dd>メトリック・ネームスペース：<strong>oci-computeagent</strong> を選択</dd>
    <dd>メトリック名：<strong>CpuUtilization</strong> を選択</dd>
	<dd>間隔：1分(デフォルト)</dd>
	<dd>統計：Mean(デフォルト)</dd>
 </dl>
 <dl>
    <dt>メトリック・ディメンション</dt>
	<dd>ディメンション名：<strong>resourceDisplayName</strong> を選択</dd>
	<dd>ディメンション値：監視対象とするインスタンスの表示名を選択</dd>
 </dl>
 <dl>
     <dt>Trigger rule </dt>
	<dd>演算子：<strong>次より大きい</strong> を選択</dd>
	<dd>値：任意</dd>
	<dd>トリガー遅延分数：<strong>1</strong></dd>
	<dd>アラームの重大度：クリティカル(デフォルト)</dd>
	<dd>アラーム本体 オプション：任意</dd>
 </dl>
 <dl>
     <dt>アラーム通知の定義</dt>
	<dd>宛先サービス：通知</dd>
	<dd>コンパートメント：通知トピックのあるコンパートメントを選択</dd>
	<dd>トピック：先ほど作成したトピック名を選択</dd>
	
 <dl>
 <strong>メッセージのグループ化</strong>：メトリック・ストリーム全体で通知をグループ化 を選択</dl>
 <dl>
<strong>メッセージの書式</strong>：フォーマットされたメッセージの送信 を選択</dl>
<strong>「このアラームを有効化しますか。」</strong>にチェックが入っていることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/bca4182a-0655-674a-0f86-7e43a4b3e7ef.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/19025fa9-2934-463e-cabd-002869121dc5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/5a03de88-85df-7848-680e-8ea2db3cbbe1.png)


アラームが作成され、アラームが<strong>有効</strong>になっていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/3c89589e-5669-3b06-c48f-b4aa6f60734e.png)



# 8. メールで通知されることを確認
アラームと通知の設定が完了したため、コンピュート・インスタンスのCPU使用率を上げて、メールで通知されることを確認します。
ここでは、stress コマンドでCPU使用率を上げます。

stress パッケージをインストールする準備をします。stress パッケージを含む EPEL リポジトリが有効になっているかを以下のコマンドで確認します。
~~~linux:EPELリポジトリの有効を確認
[opc@hamorita-vm ~]$ sudo yum repolist all | grep -i epel
ol8_developer_EPEL               Oracle Linux 8 EPEL Packages for Devel disabled
ol8_developer_EPEL_modular       Oracle Linux 8 EPEL Modular Packages f disabled
~~~

ステータスが disabled になっている場合、yum-config-manager コマンドで enabled に変更します。
~~~linux:ステータスをenabledに変更
[opc@hamorita-vm ~]$ sudo yum-config-manager --enable ol8_developer_EPEL
~~~

ステータスが enabled に変更されたことを確認します。
~~~linux:enabledになったことを確認
[opc@hamorita-vm ~]$ sudo yum repolist all | grep -i epel
ol8_developer_EPEL               Oracle Linux 8 EPEL Packages for Devel enabled
ol8_developer_EPEL_modular       Oracle Linux 8 EPEL Modular Packages f disabled
~~~

stress パッケージをインストールします。
~~~linux:stressパッケージをインストール
[opc@hamorita-vm ~]$ sudo yum -y install stress
~~~

stress コマンドでCPUに負荷をかけます。
~~~linux:CPUに負荷をかける
[opc@hamorita-vm ~]$ stress -c 2 &
~~~

Top コマンドでCPU負荷が約100%になっていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/504a9dde-089f-7980-56e2-a5b93bf7a1b0.png)

以下のようなメールを受信したことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/862878b1-e82c-2c15-b09e-3278088f7000.png)

コンソールメニューから 監視および管理 -> モニタリング -> アラームのステータス を選択し、先ほど作成したアラーム名をクリックします。アラームが起動していることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3742484/a09e35f7-8fe4-f4dc-459b-42e92c0479ec.png)


アラームと通知の設定が正しくできていることが分かりました。


以上が、モニタリング機能による Compute のリソース監視とアラーム通知による動作です。