【Windows Server2019】Prometheusインストールとセッティング

Prometheus(プロメテウス)とは?
Prometheusは、オープンソースのシステムおよびサービスの監視およびアラーティングシステムです。Prometheusは、GoogleのBorgmonシステムからインスピレーションを得て開発され、2012年に公開されました。現在は、Cloud Native Computing Foundation(CNCF)のプロジェクトとしてホストされています。
Prometheusは、高度に拡張可能なデータモデルと柔軟なクエリ言語を提供し、システムやアプリケーションのメトリクス(指標)を収集、保存、可視化、アラーティングするための機能を提供します。
By chatGPT

というわけで、Prometheusをインストールし、リソース管理できるようにします。
また、最終的にはGrafanaと連携し、そちらでダッシュボードを作成します。

1.Prometheusのダウンロード

以下からPrometheusのWindows版、かつLTS版を取得します。(現時点は2.45.0)
https://prometheus.io/download/

zipファイルを解凍し、適切な場所にフォルダを配置します。
例)C:\systemwatch\prometheus

2.windows_exporterのダウンロード

windows_exporterを使うことでWindows機のリソース監視を行うことができるようになります。
EXEファイルを以下からダウンロード。

https://github.com/martinlindhe/wmi_exporter/releases
windows_exporter-0.22.0-amd64.exe

PowerShellを起動し、ダウンロードした先に移動。
以下のコマンドで実行を行います。
> .\windows_exporter-0.22.0-amd64.exe

3.Prometheusの設定ファイル変更

解凍したフォルダ配下のprometheus.ymlの内容を以下に変更。
ポート変更によって、windows_exporterを利用した監視が可能となります。

prometheus.yml

static_configs:
- targets: ["localhost:9090"]

static_configs:
#- targets: ["localhost:9090"]
- targets: ["localhost:9182"]

4.Prometheusの実行

PowerShellを起動し、以下のコマンドを実行する。
> C:\systemwatch\prometheus\prometheus.exe --config.file=C:\systemwatch\prometheus\prometheus.yml --web.listen-address=:9095
※最後のパラメータは起動するポート番号。デフォルトは9090ですが、バッティングしている場合は上記のように指定し、別ポートを利用します。
なお、すでにポートが使われているかは以下のコマンドをコマンドプロンプトで実行することで把握が可能。
> netstat -ano | find "9090"


以下の画面が出てくれば問題なし。

5.ブラウザにて以下のURLにアクセスを行う

http://localhost:9095

検索欄の右側にある[地球儀マーク](?)を押下し、見たいデータを選択。[Execute]を押下してデータを確認することが可能となります。
ただし、それだけでは欲しい情報は手に入らないため、以下の内容で表示することで、それぞれの情報を確認できます。
ただし、表示に関してはとても簡素なので、見やすさ的にはやはりGrafanaと連携した方が良いと思われます。
 
▽CPU使用率
・コアすべてをまとめて表示
100 - (avg by (instance) (irate(windows_cpu_time_total{mode="idle"}[1m])) * 100)

・CPU使用率(コア/スレッド毎)
rate(windows_cpu_processor_utility_total[5m]) / rate(windows_cpu_processor_rtc_total[5m])

▽メモリ使用率
100 - (windows_os_physical_memory_free_bytes / windows_os_visible_memory_bytes * 100)

▽メモリ使用量
・メモリ使用可能量
windows_os_visible_memory_bytes / 1024 / 1024 / 1024

・メモリ使用量
(windows_os_visible_memory_bytes - windows_os_physical_memory_free_bytes) / 1024 / 1024 / 1024

▽HDD使用率(例としてCドライブを指定)
100 - (windows_logical_disk_free_bytes{volume = "C:"} / windows_logical_disk_size_bytes{volume = "C:"} * 100)

▽HDD空き容量
・使用可能領域(例としてCドライブを指定)
windows_logical_disk_size_bytes{volume = "C:"}

・使用済領域(例としてCドライブを指定)
(windows_logical_disk_size_bytes{volume = "C:"}) - (windows_logical_disk_free_bytes{volume = "C:"})