OCIのCompute Instanceからメトリックが取りたい!!!
テーマにも書きましたが、クラウド上で提供されているメトリック収集機能だけでは
「APの監視や、OSレベルの詳細な情報」が出来なくて困ったので備忘メモとして公開したいと思いますーー。
■この検証に必要なもの
- OCIコンソールユーザ(以下のリストをいじれる権限は必要です)
- VCN, Subnet(外部と通信できるようにセキュリティリストの穴あけを忘れずに!)
- Compute Instance(VMで今回はやりました)
■■ゴールまでに実施すること
- VCN, VMの用意(ここは省略)
- VMのOracle Cloudエージェント設定
- ポリシー設定
- Prometeus Node Exporterインストール
- カスタムメトリック設定
- カスタムメトリックの利用先紹介
■■■やってみる
1. VCN, VMの用意
省略します。。
2. VMのOracle Cloudエージェント設定
OCIコンソールから1. の手順で作成したVMの詳細画面に進み、
Oracle Cloudエージェントの設定を確認すると下図のようになっています。

「管理エージェント」に着目すると無効になっています。
これを有効にしましょう!

有効になるには時間がかかりますが、完了すると実行中というステータスに変化します。
3. ポリシー設定
ここでは、作成したVMのメトリックを収集するため必要な設定を実行します。
- ポリシー名:任意の名称
- 説明:VMのメトリック収集等自由に記載(任意)
- ポリシー
Allow any-user to use metrics in compartment id <VM構築したコンパートメントのOCID> where all {instance.compartment.id='<VM構築したコンパートメントのOCID>'}
4. Prometeus Node Exporterインストール
作成したVMにopcユーザでログイン
ログイン後、GitHubからのPrometheus Node ExporterのDownloadを実行します。
wget -P /tmp https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
ダウンロードしたものを解凍します
sudo mkdir -p /etc/prometheus/nodeExporter
sudo chmod 755 /etc/prometheus
sudo chmod 755 /etc/prometheus/nodeExporter
sudo tar xvfz /tmp/node_exporter-1.6.1.linux-amd64.tar.gz -C /etc/prometheus/nodeExporter --strip-components 1
Node Exporterの動作テストをします
cd /etc/prometheus/nodeExporter/node_exporter
curl http://localhost:9100/metrics
ここでメトリックがたくさん表示されたらOKです!
(メトリックの実例はいつか持ってきます。取得忘れました。。)
Node Exporterをサービス化します
sudo vi /etc/systemd/system/node_exporter.service
---記述例
[Unit]
Description=Node Exporter
[Service]
User=opc
ExecStart=/etc/prometheus/nodeExporter/node_exporter-1.6.1.linux-amd64/node_exporter
[Install]
WantedBy=multi-user.target
-----
sudo systemctl daemon-reload
sudo systemctl enable node_exporter
sudo systemctl start node_exporter
sudo systemctl status node_exporter
statusがActiveになっていたらOKです
5. カスタムメトリック設定
まずSELinuxをpermissiveにする
※変更後、再起動が必要です。
次にメトリックを飛ばす設定をします
vi /opt/oracle/mgmt_agent/agent_inst/discovery/PrometheusEmitter/<任意の名称>.properties
---記載例
url=http://<ip_address>:9100/metrics
nodeName=<vm_name>
namespace=<OCIコンソール上での表示名>
metricDimensions=nodeName
allowMetrics=*
compartmentId=<コンパートメントOCID>
今回はnamespace=test_metricにしました。
設定が完了すると、
OCIコンソール>メトリックエクスプローラ画面にて対象のメトリックを確認することが可能になります。

この設定の参考資料
こちらで主な作業は終了です。
6. カスタムメトリックの利用先紹介
-
カスタムメトリックで収集できる情報について
カスタムメトリックを用いることでHelidonなどのMicroProfile準拠フレームワークを用いたアプリからのメトリック収集も可能になります。
これによりOSだけでなくAPの監視を実行することが可能です。 -
収集したメトリックの活用
- 収集したメトリックはダッシュボードに表示し確認する。
- アラートを設定し、閾値を超えた場合にメール・slack等に通知を実施する。
などの活用法があります。
監視にお悩みの方に参考になればと思います。
おしまい