はじめに
Prometheus は、元々 SoundCloud で開発された強力なオープンソースの監視およびアラートツールキットです。クラウドネイティブ環境における監視の標準となっています。主な機能には、多次元データモデル、柔軟なクエリ言語 (PromQL)、およびさまざまな可視化オプションがあります。
この実験では、Docker を使用して Prometheus インスタンスをセットアップする最も簡単な方法を学びます。このアプローチは、複雑なインストール手順を回避し、Prometheus を迅速に探索し始めることができます。公式 Docker イメージをプルし、コンテナとして実行し、Web インターフェイスと対話します。
Prometheus Docker イメージのプル
このステップでは、Docker Hub から公式の Prometheus Docker イメージをプルします。Docker Hub は Docker イメージの公開レジストリであり、prom/prometheus は Prometheus チームによってメンテナンスされている公式イメージです。
docker pull コマンドは、指定されたイメージをローカルマシンにダウンロードし、コンテナとして実行できるようにします。
Prometheus イメージの最新バージョンをプルするには、ターミナルで以下のコマンドを実行してください。
docker pull prom/prometheus
イメージレイヤーがダウンロードされていることを示す出力が表示されます。完了すると、イメージはローカルに保存されます。
期待される出力(バージョン番号は異なる場合があります):
Using default tag: latest
latest: Pulling from prom/prometheus
a4ca46b05734: Pull complete
542b5806d2b7: Pull complete
...
Digest: sha256:2c785d4e9af2224941598d142337931a5f8333065916938c6444294020b45f50
Status: Downloaded newer image for prom/prometheus
docker.io/prom/prometheus
ポート 9090 で Prometheus コンテナを実行
このステップでは、先ほどプルしたイメージを使用して Prometheus コンテナを実行します。docker run コマンドを使用してコンテナを作成し、起動します。
使用するコマンドオプションの内訳は以下の通りです。
-d: コンテナをデタッチモード(バックグラウンド)で実行します。-p 9090:9090: ホストマシンのポート 9090 をコンテナのポート 9090 にマッピングします。Prometheus の Web UI はデフォルトでポート 9090 で実行されます。--name prometheus: コンテナに、参照しやすいようにprometheusという名前を付けます。prom/prometheus: コンテナの作成に使用するイメージを指定します。
Prometheus コンテナを起動するには、以下のコマンドを実行してください。
docker run -d -p 9090:9090 --name prometheus prom/prometheus
コマンドは長いコンテナ ID を出力し、コンテナが起動したことを確認します。
コンテナが実行されていることを確認するには、実行中のすべてのコンテナを一覧表示する docker ps コマンドを使用できます。
docker ps
リストに prometheus コンテナが表示され、そのステータスが "Up" になっているはずです。
期待される出力:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 prom/prometheus "/bin/prometheus --c…" A few seconds ago Up a few seconds 0.0.0.0:9090->9090/tcp prometheus
localhost:9090 で Prometheus Web UI にアクセス
このステップでは、現在実行中でポート 9090 で公開されている Prometheus の Web インターフェースにアクセスします。LabEx 環境は、仮想マシン内で実行されている Web サービスにアクセスするための便利な方法を提供します。
ラボインターフェースの上部にある + (新規タブ) ボタンをクリックします。
Web Service オプションを選択し、ポートとして 9090 を入力します。

これにより、ラボ環境で実行されているサービスに接続された新しいブラウザタブが開きます。
ポート 9090 をマッピングしたため、Prometheus UI が利用可能になります。Prometheus Expression Browser が表示されるはずです。これはメインのランディングページです。このインターフェースを使用すると、PromQL クエリを作成して実行し、メトリクスを探索できます。

このページが表示されることは、Prometheus コンテナが正しく実行されており、アクセス可能であることを確認します。
Prometheus サービスステータスを確認
このステップでは、Prometheus UI を使用して、Prometheus サービス自体のステータスと実行時情報を確認します。
前のステップで開いた Prometheus Web UI で、上部のナビゲーションバーにある Status メニューをクリックし、次に Runtime & Build Information を選択してステータスページに移動します。
このページには、バージョン、ビルド日、コンパイルされた Go のバージョンなど、実行中の Prometheus インスタンスに関する詳細情報が表示されます。これは、サービスが完全に稼働していることを確認するのに良い方法です。
Prometheus サーバーのヘルスチェックとメトリクスを確認する別の方法として、/metrics エンドポイントにアクセスする方法があります。このエンドポイントは、Prometheus 自体に関する多くの内部メトリクスを公開しています。このデータは、ターミナルで curl を使用して表示できます。
curl http://localhost:9090/metrics
出力は、Prometheus のエクスポージャー形式でのメトリクスの長いリストになります。エンドポイントが機能していることを確認するために、prometheus_build_info のようなメトリクスを探してください。
期待される出力の一部:
## HELP prometheus_build_info A metric with a constant '1' value labeled with the version, revision, branch, and goversion from which prometheus was built.
## TYPE prometheus_build_info gauge
prometheus_build_info{branch="HEAD",goversion="go1.19.5",revision="233d305681c0da67c694b01d832131d173a0552b",version="2.41.0"} 1
...
Prometheus UI でデフォルトターゲットを探索
このステップでは、「ターゲット」という Prometheus における概念を探索します。ターゲットとは、Prometheus がメトリクスをスクレイピング(プル)するエンドポイントのことです。デフォルトでは、Prometheus サーバーは自身を監視するように設定されています。
Prometheus Web UI で、Status メニューをクリックし、次に Targets を選択してターゲットページに移動します。
このページには、設定されているすべてのスクレイピングターゲットのリストが表示されます。prometheus という名前のターゲットグループがあり、単一のエンドポイント http://localhost:9090/metrics が表示されているはずです。これは Prometheus サーバー自身のメトリクスエンドポイントです。

State 列に注目してください。緑色で UP と表示されているはずです。これは、Prometheus がターゲットに正常に接続し、メトリクスをスクレイピングしていることを示しています。ターゲットへの接続に問題があった場合、ステータスは「DOWN」になります。このページは、メトリクス収集の問題を診断するために非常に重要です。
まとめ
おめでとうございます!Docker を使用して Prometheus インスタンスを正常にインストールし、実行しました。この実験では、業界で最も人気のある監視ツールの 1 つである Prometheus の開始方法について実践的な入門を提供しました。
この実験では、以下の方法を学びました。
- Docker Hub から公式の Prometheus Docker イメージをプルする。
- Prometheus コンテナを実行し、ポートをホストにマッピングする。
- Prometheus Web UI にアクセスし、操作する。
- UI およびメトリクスエンドポイントを通じてサービスステータスを確認する。
- デフォルトの監視ターゲット設定を探索する。
これで、Prometheus のデプロイ方法に関する基本的な理解が得られました。次のステップとしては、他のアプリケーションやサービスを監視するためのカスタム設定ファイルを作成する方法を学ぶことが考えられます。



