< back to blog

PrometheusでWindowsクラスターを監視する

清水 孝郎
PrometheusでWindowsクラスターを監視する
Published by:
清水 孝郎
@
PrometheusでWindowsクラスターを監視する
Published:
October 26, 2021
シスディグによるファルコフィード

Falco Feedsは、オープンソースに焦点を当てた企業に、新しい脅威が発見されると継続的に更新される専門家が作成したルールにアクセスできるようにすることで、Falcoの力を拡大します。

さらに詳しく

本文の内容は、2021年10月21日にÁngel Samitierが投稿したブログ(https://sysdig.com/blog/monitoring-windows-prometheus)を元に日本語に翻訳・再構成した内容となっております。

いくつかの Prometheus エクスポーターを試した結果、ラスボスと戦う準備ができたようだ。Prometheus で Windows クラスターを監視することです。すべての Windows マシンを一枚のガラスでモニターできるダッシュボードが必要です。やってみましょう。

Prometheusのリモートライトが助けてくれる


すべてのメトリクスを1台のPrometheusサーバーに集中させる必要があるので、各Windowsマシンに小さなPrometheusインスタンスをインストールするつもりです。これらの小さなPrometheusインスタンスは、エクスポーターからPrometheusサーバーにメトリクスを送信するクライアントとなります。こうすることで、Prometheusを使ってWindowsを監視する際に、すべてのメトリクスを一元管理することができます。

Prometheus remote writeでは、Prometheusサーバーに直接メトリクスを送信できるのが気に入っています。中間にPrometheusがなくても、HTTPエンドポイントにメトリクスを送信するだけでいいのです。Prometheus remote writeはアウトオブボックスで使えるので、中央のPrometheusでの設定は必要ありません。

Prometheus remote write のもう一つの魅力は、各クライアントの Prometheus に --storage.tsdb.retention.time=1dというフラグを立てて起動することで、メトリクスを一日だけ保存することができることです。このようにして、各インスタンスのストレージ使用量を気にすることなくPrometheusを実行することができます。

エクスポーターのインストールと設定

Prometheus で Windows をモニタリングするために、まず Windows エクスポーターをインストールします。これは、Windows 用の ノードエクスポーターに相当するものです。このエクスポーターは、HTTPエンドポイントを起動して、ローカルのWindowsインスタンスのすべてのメトリクスを公開し、クライアントのPrometheusがアクセスできるようにします。

最新版のエクスポーターをダウンロードして解凍し、ターミナルウィンドウでフォルダを開いて、以下のコマンドを実行するだけです。

windows_exporter-0.16.0-amd64.exe --collectors.enabled "cpu,cs,logical_disk,os,system,net"


エクスポーターが動作するようになりました。次にPrometheusにエクスポーターをスクレイプするように指示するために、scrape_configs配列の中に以下を追加します:

- job_name: "windows_exporter"
static_configs:
- targets: ["localhost:9182"]

これでほぼ完成です。次のステップでは、Prometheusのリモートライトを設定するために、root configに以下を追加します。

remote_write:
- url: "https://<PROMETHEUS_SERVER>/prometheus/remote/write"
tls_config:
insecure_skip_verify: true

あとは、ターミナルでPrometheusを次のように実行してください:

prometheus.exe --storage.tsdb.retention.time=1d
そうすると、Prometheus サーバーにすべてのメトリクスを送信し始めます。


Prometheusを --storage.tsdb.retention.time=1d フラグ付きで実行すると、メトリクスの保存期間が1日に設定されます。

リモートライトエンドポイントを通じてPrometheusサーバーにすべてのメトリクスをプッシュしているので、中間のPrometheusインスタンスに保存する必要はありません。


正しいラベルの設定

ラベルを作成する際には、賢くなりたいと思います。ダッシュボードでは、インスタンスだけでなく、アベイラビリティ・ゾーン、環境(開発、ステージング...)、クラウド・アカウントなどでフィルタリングしたいと考えています。

このように外部ラベルを使って、各指標にAZ、環境、クラウドアカウントに関連する情報を送信しています。これをグローバル設定の中に追加していきます。

external_labels:
cloud-account: aws-dev-1
cloud-region: us-east-1
cloud-az: use1-az1
environment: staging

なお、設定ファイルを変更した場合は、Prometheusの再起動を忘れないようにしてください。


いかがでしたか?


あなたはPrometheusでどのようにWindowsを監視していますか?この記事では、私が見つけたこのユースケースに最適なソリューションを紹介しました。これはうまく機能していて、クラスターの全情報を1つのダッシュボードで把握することができます。

もしあなたがこのような使い方をしているのであれば、遠慮なく@sysdigまでご連絡ください。


エンタープライズグレードのマネージド Prometheusが必要ですか?

今すぐSysdig Monitorの無料トライアルに登録して、マネージドPrometheusサービスをご利用ください。Prometheusインテグレーションを試したり、Prometheus Remote Writeでメトリクスを数分で送信できます!

About the author

Monitoring

セキュリティの専門家と一緒に、クラウド防御の最適な方法を探索しよう