-
タグ
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- XDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- イベントレポート
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR
システムの健全性を評価するために各種リソースの状況を定期的に確認することは、パブリック・クラウドを利用するシステムであっても、オンプレミス環境と同様に利用者側の責任において実施が必要です。
一般的なクラウドでは各リソースのヘルス、容量およびパフォーマンスをモニタリングするための「メトリック」と呼ばれるデータが標準で収集されています。しかし、自動で取得されるメトリックだけでは十分とは言えず他の監視ソフトを利用する、または監視用のスクリプトなどを独自に作成して運用するというシステムも少なくありません。
本記事では、Oracle Cloud Infrastructure(以下、OCI)において、クラウドの標準メトリックでは取得できないコンピュートVMの情報を無償のPrometheusを利用して収集し、OCIモニタリング・サービスへ連携する方法について紹介します。
Prometheusとは
Prometheusは、Go言語で開発されたオープンソースの監視およびアラートのツールキットです。監視したいホストに各種情報を取得するためのExporterを導入することで、簡易的なWebサーバを起動します。監視する側はExporterに対して定期的にポーリングを行い、定義されたメトリック情報を取得し保管、そして必要に応じてアラートを通知します。
Prometheus Exporter
Exporterは監視エージェントの位置づけとして稼働するソフトウェアです。Exporterは監視対象のサーバや機器から取得したデータを元にPrometheus形式のメトリックを生成し、HTTPエンドポイントとして公開します。
Exporterは監視する対象(ハードウェア、OS、ミドルウェアなど)ごとに個別のモジュールに分けて提供され、公式サイトではサードパーティ製を含めると200以上のExporterが公開されています。
本記事で紹介するコンピュートVMのOS監視では以下のExporterを使用します。
- Node/system metrics exporter:Linux OSから各種情報を取得するExporter
- Process exporter:/procよりプロセスの稼働情報を取得するExporter
- Windows exporter:Windows OSから各種情報を取得するExporter
その他、OracleやMySQLといったデータベースに対するExporterだけでなく、ApacheやSquidなど様々なミドルウェアに関するものがあるため、システム環境に適したExporterを選択し利用できます。
それぞれのExporterの概要説明やダウンロードは以下のページを参照してください。
Exporters and integrations | Prometheus
OCI管理エージェントとの連携
OCIでは、Oracle Cloud Infrastructure Management Agentsサービス(以下、管理エージェント)と呼ばれるエージェントを使用してデータ・ソースとやり取りし、取得したデータを別のOCIサービスに連携します。管理エージェントはOracle Linuxなど一部のコンピュートVMでは標準で導入されますが、Windows Serverや他から持ち込んだイメージなど、サポートされているOSであれば手動でデプロイして使用できます。
そして管理エージェントは、Prometheus形式でメトリック・データを公開する任意のリソースから時系列パフォーマンス・メトリック・データの収集をサポートしています。そのため簡単な設定だけでExporterで取得したメトリックを識別し、OCIモニタリング・サービスへカスタム・メトリックとしてアップロードさせることができます。

Prometheusを使用するための事前準備
OCI上で稼働する監視対象のサーバにPrometheus Exporterを導入し、各種メトリック・データを連携させるための事前準備として、OCIのポリシーや管理エージェントを構成します。
ポリシーの設定
Exporterで取得するデータを、管理エージェントからモニタリング・サービスへ、カスタム・メトリックとして連携させるために必要なIAMポリシーを作成します。
動的グループの作成
最初に、連携対象とするコンピュートVMの管理エージェントが配置されたコンパートメントに対するルールを定義した動的ポリシーを作成します。
一致ルールの定義
ALL {resource.type='managementagent', resource.compartment.id='<AGENT_COMPARTMENT_OCID>'}

IAMポリシーの作成
次に、先ほど作成した動的グループを指定したIAMポリシーを作成し、管理エージェントが収集したメトリック・データをOCIモニタリング・サービスにポストすることを許可します。メトリック・ネームスペースの指定は後続の手順(管理エージェント構成ファイルの作成)で指定するネームスペース名と一致させる必要がありますが、ネームスペース名で連携を制限しない場合はwhereの条件は省略可能です。
ポリシー・ステートメント
allow dynamic-group <DYNAMIC_GROUP_NAME> to use metrics in compartment <COMPARTMENT_NAME> where target.metrics.namespace = '<ネームスペース名>'

管理エージェントの有効化
Oracle Linux
Oracle Linuxの管理エージェントは、Oracle Cloudエージェントのプラグインとして構成されています。OCIコンソールを使用してインスタンスの詳細画面にある「Oracle Cloudエージェント」タブから、「管理エージェント」が有効化されていることを確認します。初期構築時のデフォルトは無効ですが、トグルボタンを有効に切り替えることで数分後にステータスが「実行中」に変わります。

Windows Server
Windows Serverなど、管理エージェントが導入されていないOSでは、事前に管理エージェントをインストールし稼働させる必要があります。
Windows Serverの管理エージェントは大まかに次のステップで導入します。
- OCIコンソールより管理エージェント・ソフトウェアのダウンロード
- OCIコンソールよりインストール・キーの作成
- レスポンス・ファイルの構成
- JDK8(1.8u281以上)のインストール
- 管理エージェントのインストール
管理エージェントのソフトウェアやインストールのキーは、ナビゲーション・メニューから、「監視および管理」>「管理エージェント」>「ダウンロードとキー」を選択し、表示された画面からダウンロードします。

本記事では管理エージェントの導入手順の詳細は割愛しますが、公式マニュアルなどを参照して導入を行ってください。
Oracle Cloud Infrastructureドキュメント - 管理エージェントのインストール
Windows Serverに管理エージェントを導入すると、Windowsサービスに「Oracle Management Agent」が追加されます。

Prometheus Exporterの準備
導入するExporterのモジュールをPrometheusのサイトよりダウンロードします。
本記事では執筆時点の最新バージョンを使用します。
Exporter | バージョン | バージョン | ファイル名 |
---|---|---|---|
node_exporter | 1.8.2 | node_exporter-1.8.2.linux-amd64.tar.gz | |
process-exporter | 0.8.5 | process-exporter-0.8.5.linux-amd64.tar.gz | |
windows_exporter | 0.30.1 | windows_exporter-0.30.1-amd64.msi |
Oracle Linux 8をPrometheusと連携させる
ここからは、Oracle Linux 8に各種Exporterを導入し、管理エージェントと連携させる手順を説明します。
導入設定
項目 | 設定値 | 備考 |
---|---|---|
Prometheus稼働ユーザ | opc | 専用のOSユーザを作成してもよい |
Node exporter導入ディレクトリ | /etc/prometheus/nodeExporter | |
Process exporter導入ディレクトリ | /etc/prometheus/processExporter |
収集メトリック
Exporter | 収集対象 | メトリック名 |
---|---|---|
Node exporter | ファイルシステムの容量 | node_filesystem_size_bytes |
ファイルシステムの空き容量 | node_filesystem_avail_bytes | |
Systemd(rsyslog.service)のステータス | node_systemd_unit_state | |
Process exporter | プロセス(rsyslogd)の稼働数 | namedprocess_namegroup_num_procs |
Prometheus Exporterの導入
導入ディレクトリの作成
Linux環境へExporterを導入する方法は、tar.gz形式のファイルを解凍するだけです。監視対象のサーバに初めてExporterを導入する場合、Exporterを展開する任意のディレクトリを作成します。本手順では、/etc/prometheusを使用します。
$ id uid=1000(opc) gid=1000(opc) groups=1000(opc),4(adm),190(systemd-journal) $ sudo mkdir /etc/prometheus $ sudo chown opc:opc /etc/prometheus $ ls -ld /etc/prometheus drwxr-xr-x. 2 opc opc 6 Feb 1 13:21 /etc/prometheus
Node exporterのインストール
ファイルシステムやSystemdサービスのメトリックを取得するためにNode exporterを導入します。本手順では導入するモジュールをwgetコマンドで/tmpにダウンロードしますが、事前にダウンロードしたファイルをサーバにアップロードしても問題ありません。
$ PNE_DL_URL=https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz $ cd /tmp $ wget ${PNE_DL_URL} <中略> HTTP request sent, awaiting response... 200 OK Length: 10676343 (10M) [application/octet-stream] Saving to: 'node_exporter-1.8.2.linux-amd64.tar.gz' node_exporter-1.8.2.linu 100%[=======================>] 10.18M --.-KB/s in 0.05s 2025-02-01 13:23:07 (210 MB/s) - 'node_exporter-1.8.2.linux-amd64.tar.gz' saved [10676343/10676343]
Node exporterを展開します。
$ PNE_DIR=/etc/prometheus/nodeExporter $ mkdir ${PNE_DIR} $ ls -l /etc/prometheus drwxrwxr-x. 2 opc opc 6 Feb 1 13:24 nodeExporter $ tar xvfz node_exporter-* -C ${PNE_DIR} --strip-components 1 node_exporter-1.8.2.linux-amd64/NOTICE node_exporter-1.8.2.linux-amd64/node_exporter node_exporter-1.8.2.linux-amd64/LICENSE $ rm -f /tmp/node_exporter-*.tar.gz
Process exporterのインストール
次に、プロセスの状態を取得するためのProcess exporterを導入します。作業の流れはNode exporterと同様の手順となりますが、ダウンロードするURLのパスが変わることに注意してください。
$ PPE_DL_URL=https://github.com/ncabatoff/process-exporter/releases/download/v0.8.5/process-exporter-0.8.5.linux-amd64.tar.gz $ cd /tmp $ wget ${PPE_DL_URL} <中略> HTTP request sent, awaiting response... 200 OK Length: 4475835 (4.3M) [application/octet-stream] Saving to: 'process-exporter-0.8.5.linux-amd64.tar.gz' process-exporter-0.8.5.linux-am 100%[===================>] 4.27M 25.0MB/s in 0.2s 2025-02-01 13:25:05 (25.0 MB/s) - 'process-exporter-0.8.5.linux-amd64.tar.gz' saved [4475835/4475835]
Process exporterを展開します。
$ PPE_DIR=/etc/prometheus/processExporter $ mkdir ${PPE_DIR} $ ls -l /etc/prometheus drwxrwxr-x. 2 opc opc 56 Feb 1 13:24 nodeExporter drwxrwxr-x. 2 opc opc 6 Feb 1 13:26 processExporter $ tar xvfz process-exporter-* -C ${PPE_DIR} --strip-components 1 process-exporter-0.8.5.linux-amd64/LICENSE process-exporter-0.8.5.linux-amd64/README.md process-exporter-0.8.5.linux-amd64/process-exporter $ rm -f /tmp/process-exporter-*.tar.gz
Exporter稼働確認
Node exporterを起動し、正常に動作することを確認します。
$ /etc/prometheus/nodeExporter/node_exporter <中略> ts=2025-02-01T04:27:15.652Z caller=tls_config.go:313 level=info msg="Listening on" address=[::]:9100 ts=2025-02-01T04:27:15.652Z caller=tls_config.go:316 level=info msg="TLS is disabled." http2=false address=[::]:9100
デフォルトではNode exporterはhttp/9100で要求を受け付けます。別のターミナルを開き、curlコマンドでメトリック情報を取得できることを確認します。
$ curl http://localhost:9100/metrics <中略> # HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code. # TYPE promhttp_metric_handler_requests_total counter promhttp_metric_handler_requests_total{code="200"} 0 promhttp_metric_handler_requests_total{code="500"} 0 promhttp_metric_handler_requests_total{code="503"} 0
続けて、Process exporterが正常に動作することを確認します。Node exporterを稼働させたターミナルで一旦コマンドを終了(Ctrl+c)し、代わりにProcess exporterを起動します。
<Ctrl+c> $ /etc/prometheus/processExporter/process-exporter 2025/02/01 13:28:15 Reading metrics from /proc for procnames: [] level=info ts=2025-02-01T04:28:15.822Z caller=tls_config.go:313 msg="Listening on" address=[::]:9256 level=info ts=2025-02-01T04:28:15.822Z caller=tls_config.go:316 msg="TLS is disabled." http2=false address=[::]:9256
デフォルトではProcess exporterはhttp/9256で要求を受け付けます。別ターミナルより、curlコマンドでメトリック情報を取得できることを確認します。
$ curl http://localhost:9256/metrics <中略> # HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code. # TYPE promhttp_metric_handler_requests_total counter promhttp_metric_handler_requests_total{code="200"} 0 promhttp_metric_handler_requests_total{code="500"} 0 promhttp_metric_handler_requests_total{code="503"} 0
Exporterサービスの自動起動設定
Systemdを使用し、サーバを再起動した場合にも導入した各Exporterが自動で起動するように設定します。なお、テストで必要なメトリック情報だけを取得する設定も同時に行います。本手順では以下の情報を取得対象とします。
Exporter | 取得対象 | 指定パラメータ※ |
---|---|---|
Node exporter | filesystemコレクタ systemdコレクタ |
--collector |
Process exporter | rsyslogdプロセス | -procnames |
※ Exporterによって引数指定時の「-」の指定方法に違いがあります。使用する際にはExporterのヘルプなどを確認してください。
Node exporterの自動起動設定
記述例を参考にして、Systemdのユニットファイルを作成します。
$ sudo vi /etc/systemd/system/node_exporter.service
node_exporter.service記述例
[Unit] Description=Prometheus Node exporter [Service] Type=simple User=opc ExecStart=/etc/prometheus/nodeExporter/node_exporter --collector.disable-defaults ¥ --collector.filesystem ¥ --collector.systemd --collector.systemd.unit-include "rsyslog.service" Restart=always [Install] WantedBy=multi-user.target
作成したサービスを有効化し、起動させます。
$ sudo systemctl daemon-reload $ sudo systemctl enable node_exporter.service Created symlink /etc/systemd/system/multi-user.target.wants/node_exporter.service -> /etc/systemd/system/node_exporter.service. $ sudo systemctl start node_exporter.service $ systemctl status node_exporter.service * node_exporter.service - Prometheus Node exporter Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2025-02-01 13:31:15 JST; 5s ago Main PID: 9375 (node_exporter) Tasks: 4 (limit: 48354) Memory: 4.9M CGroup: /system.slice/node_exporter.service `-9375 /etc/prometheus/nodeExporter/node_exporter --collector.disable-defaults --collector.filesystem --collector.systemd --collector.systemd.unit-include rsyslog.service <中略>
Process exporterの自動起動設定
記述例を参考にして、Systemdのユニットファイルを作成します。
$ sudo vi /etc/systemd/system/process_exporter.service
process_exporter.service記述例
[Unit] Description=Prometheus Process exporter [Service] Type=simple User=opc ExecStart=/etc/prometheus/processExporter/process-exporter -procnames rsyslogd Restart=always [Install] WantedBy=multi-user.target
作成したサービスを有効化し、起動させます。
$ sudo systemctl daemon-reload $ sudo systemctl enable process_exporter.service Created symlink /etc/systemd/system/multi-user.target.wants/process_exporter.service -> /etc/systemd/system/process_exporter.service. $ sudo systemctl start process_exporter.service $ systemctl status process_exporter.service * process_exporter.service - Prometheus Process exporter Loaded: loaded (/etc/systemd/system/process_exporter.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2025-02-01 13:32:43 JST; 5s ago Main PID: 9470 (process-exporte) Tasks: 4 (limit: 48354) Memory: 8.3M CGroup: /system.slice/process_exporter.service `-9470 /etc/prometheus/processExporter/process-exporter -procnames rsyslogd
管理エージェント構成ファイルの作成
管理エージェントがPrometheusのメトリックをスクレイプできるように、検出ディレクトリに構成ファイルを作成します。ファイル名は管理しやすい任意の名称で問題ありませんが、拡張子は「.properties」にする必要があります。
Oracle Linux環境の検出ディレクトリを示します。
- /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/discovery/PrometheusEmitter
構成ファイルで指定する、代表的なプロパティを示します。
プロパティ名 | 必須/オプション | 説明 |
---|---|---|
url | 必須 | Prometheus Exporterがメトリックを公開するURL |
compartmentId | 必須 | スキャンされたメトリックをアップロードするコンパートメントのOCID |
namespace | 必須 | スキャンされたメトリックをアップロードするOCIモニタリング・ネームスペース |
metricDimensions | オプション | アップロードされたすべてのデータ・ポイントのディメンションとして使用される固定値として表される、他のユーザ指定のプロパティの名前 |
allowMetrics | オプション | 必要なスクレイプされたメトリックの完全なセット。必要に応じて、このプロパティを使用してアップロードするメトリックのセットを制限する |
resourceGroup | オプション | OCIモニタリングのリソース・グループ |
scheduleMins | オプション | スクレイピング間隔(分)。指定しない場合デフォルト値は5分(最小値は1分) |
その他のプロパティは公式マニュアルを参照してください。
Oracle Cloud Infrastructureドキュメント:構成ファイルの作成|Prometheusノード・エクスポータを使用してメトリックを収集するための管理エージェントの構成
Node exporterの設定
コンピュートVMと同じコンパートメントにメトリックをアップロードする場合、構成ファイルに指定するコンパートメントIDをコマンドで確認できます。別のコンパートメントを使用する場合はOCIコンソールなどで事前にOCIDを確認してください。
$ METAD=$(curl -H 'Authorization: Bearer Oracle' http://169.254.169.254/opc/v2/instance) % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 3194 0 3194 0 0 779k 0 --:--:-- --:--:-- --:--:-- 1039k $ OCID=$(echo ${METAD} | jq -r '.compartmentId') $ echo ${OCID} ocid1.compartment.oc1..aaaaaaaxxxx・・・
記述例を参考にして、構成ファイルを作成します。ファイル名は取得するメトリックを識別しやすい名称にします。また、連携するメトリックとして「ファイルシステム使用量、空き容量」および「Systemdサービスのステータス」のみを指定します。
$ CONF_DIR=/var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/discovery/PrometheusEmitter $ sudo vi ${CONF_DIR}/filesystem.properties
filesystem.properties記述例
url=http://localhost:9100/metrics compartmentId=ocid1.compartment.oc1..aaaaaaaxxxx... namespace=node_exporter nodeName=LINSVR01 metricDimensions=nodeName allowMetrics=node_filesystem_size_bytes,node_filesystem_avail_bytes,node_systemd_unit_state scheduleMins=5
管理エージェントが正常に構成ファイルを検出すると、以下のディレクトリにjsonファイルが作成されます。検出には数分かかるため、作成されるまで何度か確認します。
$ sudo ls /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/config/sources OCI.Agent.PrometheusEmitter.1.filesystem.json
jsonファイルが作成されない場合、何らかの設定が間違っている可能性があります。管理エージェントのログを参照して原因を確認してみてください。
$ sudo ls -l /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/log total 1612 -rwxr-x---. 1 oracle-cloud-agent oracle-cloud-agent 75 Feb 1 19:48 agent.pid -rwxr-x---. 1 oracle-cloud-agent oracle-cloud-agent 394114 Feb 1 20:03 mgmt_agent.log -rwxr-x---. 1 oracle-cloud-agent oracle-cloud-agent 26265 Feb 1 20:03 mgmt_agent_awr.log -rwxr-x---. 1 oracle-cloud-agent oracle-cloud-agent 1035695 Feb 1 20:04 mgmt_agent_client.log -rwxr-x---. 1 oracle-cloud-agent oracle-cloud-agent 0 Feb 1 16:47 mgmt_agent_errors.log -rwxr-x---. 1 oracle-cloud-agent oracle-cloud-agent 721 Feb 1 19:48 mgmt_agent_logan.log -rwxr-x---. 1 oracle-cloud-agent oracle-cloud-agent 25921 Feb 1 20:03 mgmt_agent_work.log -rwxr-x---. 1 oracle-cloud-agent oracle-cloud-agent 3220 Feb 1 19:48 startup.info
Process exporterの設定
記述例を参考にして、構成ファイルを作成します。ファイル名は同様に取得するメトリックを識別できる名称にします。また、連携するメトリックとして「プロセスの稼働数」のみを指定します。
$ sudo vi ${CONF_DIR}/process.properties
process.properties記述例
url=http://localhost:9256/metrics compartmentId=ocid1.compartment.oc1..aaaaaaaae... namespace=process_exporter nodeName=LINSVR01 metricDimensions=nodeName allowMetrics=namedprocess_namegroup_num_procs scheduleMins=5
jsonファイルが追加で作成されたことを確認します。
$ sudo ls -1 /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/config/sources OCI.Agent.PrometheusEmitter.1.filesystem.json OCI.Agent.PrometheusEmitter.2.process.json
以上で、Oracle LinuxからPrometheus Exporterでメトリック・データを連携させる設定は完了です。正しく構成されていればOCIモニタリング・サービスに選択したメトリックが表示できるようになります。
Windows Server 2022をPrometheusと連携させる
ここからは、Windows Server 2022にWindows exporterを導入し、管理エージェントと連携させる手順を説明します。
導入設定
項目 | 設定値 | 備考 |
---|---|---|
Windows exporter導入ディレクトリ | C:¥Program Files¥windows_exporter | デフォルト設定 |
収集メトリック
Exporter | 収集対象 | メトリック名 |
---|---|---|
Windows exporter | 論理ドライブ容量 | windows_logical_disk_size_bytes |
論理ドライブ空き容量 | windows_logical_disk_free_bytes | |
Windowsサービスの稼働ステータス | windows_service_state |
Windows exporterの導入
Windows exporterのインストール
コマンドプロンプトを管理者権限で起動し、サーバにアップロードしたWindowsインストーラを実行します。また、導入と同時にテストで必要なメトリック情報だけを取得する設定も行います。本手順では以下の情報を取得対象としています。
Exporter | 取得対象 | 指定パラメータ |
---|---|---|
Windows exporter | logical_diskコレクタ serviceコレクタ |
ENABLE_COLLECTORS |
実行コマンドの末尾にある「/qn」を省略することで、GUIでのセットアップ ウィザードを起動させることもできます。
C:¥> msiexec /i windows_exporter-0.30.1-amd64.msi ENABLED_COLLECTORS=logical_disk,service /qn
Windows exporterの導入が完了すると、Windowsサービスが作成されます。デフォルトで自動起動が有効となるため、Oracle Linuxとは違い追加での設定は必要ありません。

自サーバの管理エージェントと連携する場合はlocalhostで接続するため必須ではありませんが、別のサーバからメトリックを収集する場合はExporterインストール時のコマンドに「ADDLOCAL=FirewallException」を付けることで、Windows Defender Firewallのインバウンド・ルールに、Windows exporterで必要なポートを許可するルールを自動設定できます。

Exporter稼働確認
デフォルトではWindows exporterはhttp/9182で要求を受け付けます。EdgeなどのWebブラウザを起動し、メトリック情報を取得できることを確認します。
- URL:http://localhost:9182/metrics

管理エージェント構成ファイルの作成
管理エージェントがPrometheusのメトリックをスクレイプできるように、検出ディレクトリに構成ファイルを作成します。ファイル名は管理しやすい任意の名称で問題ありませんが、拡張子は「.properties」にする必要があります。
なお、構成ファイルで指定する代表的なプロパティは、Oracle Linuxの説明を参照してください。
Windows exporterの設定
記述例を参考にして、検出ディレクトリに構成ファイルを作成します。ファイル名はExporter名に合わせ「windows.properties」とします。
- 検出ディレクトリ:C:¥Oracle¥mgmt_agent¥agent_inst¥discovery¥PrometheusEmitter
windows.properties記述例
url=http://localhost:9182/metrics compartmentId=ocid1.compartment.oc1..aaaaaaaae... namespace=windows_exporter nodeName=WINSVR01 metricDimensions=nodeName allowMetrics=windows_logical_disk_size_bytes,windows_logical_disk_free_bytes,windows_service_state scheduleMins=5
管理エージェントが正常に構成ファイルを検出すると、以下のディレクトリにjsonファイルが作成されます。検出には数分かかるため、作成されるまでエクスプローラなどで何度か確認します。
- ディレクトリ:C:¥Oracle¥mgmt_agent¥agent_inst¥config¥sources

以上で、Windows ServerからPrometheus Exporterでメトリック・データを連携させる設定は完了です。正しく構成されていればOCIモニタリング・サービスに選択したメトリックが表示できるようになります。
OCIコンソールから設定結果を確認する
最後にOCIコンソールを使用して、登録したデータ・ソースの設定や連携したメトリックを確認します。
管理エージェントの確認
管理エージェントと連携したPrometheusの設定は、OCIコンソールから確認ができます。
ナビゲーション・メニューから、「監視および管理」>「管理エージェント」>「エージェント」を選択し、表示された画面の左ペインにある「Agents with DataSource」をクリックします。

一覧からエージェントの詳細画面を開き、「Manage DataSources」ボタンをクリックすると、作成した構成ファイルの名前でデータ・ソースが登録されていることを確認できます。

データ・ソースの右側にある三点リーダーから「Edit」を選択することで、各種設定を参照および修正できます。

ディメンションや選択したメトリックなどの情報を追加・修正できますが、OCIコンソールからデータ・ソースの設定を変更した場合jsonファイルのみが反映されるため、検出ディレクトリに作成した構成ファイルとの整合性が取れなくなる点には注意してください。

モニタリング・サービスで連携したメトリックを確認
OCIモニタリング・サービスから、Prometheus Exporterで連携したメトリック・データを確認します。
ナビゲーション・メニューから、「監視および管理」>「モニタリング」>「メトリック・エクスプローラ」を選択し、画面下部の「問合せ」領域にある「Compartment」を管理エージェントから転送したメトリックに設定すると、「Metric namespace」に今回設定した各種Exporterのネームスペースが表示されます。

ここからは、今回設定したExporterのメトリック・データが取得できていることを確認します。なお、すべての例で省略していますが、通常のシステムでは複数サーバが存在することと思いますので、実際の現場ではMetric dimensionsの「nodeName」で確認対象のサーバを識別してください。
Node exporter:ファイルシステム容量・空き容量
node_exporterで連携した「node_filesystem_size_bytes」「node_filesystem_avail_bytes」メトリックを複数のQueryを使用して選択します。さらにデフォルトではすべてのファイルシステムが対象となるため、Metric dimensionsで「/」だけを指定します。
- mountpoint:/

Node exporter:Systemdサービスのステータス
node_exporterで連携した「node_systemd_unit_state」メトリックを選択します。本手順では「rsyslog.service」のみ連携しているため省略も可能ですが、複数サービスの情報を取得した場合には、Metric dimensionsで対象のサービスだけを指定します。
- name:rsyslog.service
- state:active

このようにSystemdサービスに登録されたミドルウェアの場合は、Node exporterだけでステータスの監視が可能となります。
Process exporter:プロセスのステータス
process_exporterで連携した「namedprocess_namegroup_num_procs」メトリックを選択します。本手順では「rsyslogd」のみ連携しているため省略も可能ですが、複数プロセスのステータスを取得した場合には、Metric dimensionsで対象のプロセスだけを指定します。
- groupname:rsyslogd

Windows exporter:論理ドライブの容量・空き容量
windows_exporterで連携した「windows_logical_disk_size_bytes」「windows_logical_disk_free_bytes」メトリックを複数のQueryを使用して選択します。さらにデフォルトではすべてのボリュームが対象となるため、Metric dimensionsで「Cドライブ」だけを指定します。
- volume:C:

Windows exporter:Windowsサービスのステータス
windows_exporterで連携した「windows_service_state」メトリックを選択します。本手順では例としてWindowsタイム・サービスのステータスを指定します。
- name:W32Time
- state:running

おわりに
OCIでは、コンピュートVMの管理エージェントとPrometheusを連携させることで、標準メトリックでは取得できないリソース情報を追加で収集できます。本記事では説明を省略しましたが、Prometheusで取得したメトリックも標準のものと変わりはないため、OCIアラームと通知サービスを組み合わせれば、特定の条件をトリガーにアラートとしてメール通知することも可能となります。OCIの標準メトリックだけでは物足りず、あきらめていた監視項目があれば、まずPrometheusで実現できないか検討してみてはいかがでしょうか。
ラックではOCIだけではなく、AWS、Azure、Google Cloudも取り扱っています。企業のシステム環境、課題に合わせ、適切なソリューション・サービスを提案いたしますので、マルチクラウドやハイブリッドクラウドも含めたシステム構成に関するお悩みがありましたら、ぜひラックまでお問い合わせください。
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- もっと見る +
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- XDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- イベントレポート
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR