プロメテウスへようこそ!Prometheus は、ターゲット上のメトリクス HTTP エンドポイントをスクレイピングすることによって、監視対象のターゲットからメトリクスを収集するモニタリング プラットフォームです。
このガイドでは、Prometheus を使用して最初のリソースをインストール、構成、監視する方法を説明します。
Prometheus をダウンロード、インストールし、実行します。
また、ホストやサービス上の時系列データを公開するツールであるエクスポーターをダウンロードしてインストールします。
最初のエクスポータは Prometheus 自体で、メモリ使用量やガベージ コレクションなどに関するさまざまなホストレベルのメトリクスを提供します。
プロメテウスをダウンロード
使用しているプラットフォーム用のPrometheus の最新バージョンをダウンロードし、解凍します。
tar xvfz prometheus-*.tar.gz
cd prometheus-*
Prometheus Server は prometheus
(または) という名前prometheus.exe
の実行可能ファイルです。
パスします--help可以查看命令帮助
。
./prometheus --help
usage: prometheus [<flags>]
The Prometheus monitoring server
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
--config.file="prometheus.yml"
Prometheus configuration file path.
--web.listen-address="0.0.0.0:9090"
Address to listen on for UI, API, and telemetry.
--web.config.file="" [EXPERIMENTAL] Path to configuration file that can enable TLS or authentication.
. . .
Prometheus を起動する前に、Prometheus を設定しましょう。
プロメテウスの構成
Prometheus 構成はYAML形式です。prometheus.yml
ファイル内の設定例は、始めるのに適しています。
サンプル ファイルをより簡潔にするために、サンプル ファイル内のコメントのほとんどを削除しました (コメントは接頭辞付きの行です#
)。
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
サンプル構成ファイルにはglobal
、 、rule_files
、およびの 3 つの構成ブロックがありますscrape_configs
。
global
ブロックは、Prometheus サーバーのグローバル構成を制御します。選択肢は 2 つあります。1 つ目は、scrape_interval
Prometheus がターゲットをフェッチする頻度を制御します。これは個々のターゲットに対してオーバーライドできます。この場合、グローバル設定は 15 秒ごとにフェッチすることです。このevaluation_interval
オプションは、Prometheus がルールを評価する頻度を制御します。Prometheus はルールを使用して新しい時系列を作成し、アラートを生成します。
rule_files
ブロックは、Prometheus サーバーにロードするルールの場所を指定します。現在、ルールはありません。
最後のブロックは、scrape_configs
Prometheus が監視するリソースを制御します。Prometheus は自身に関するデータも HTTP エンドポイントとして公開するため、Prometheus 自体の健全性を収集して監視することができます。デフォルト構成では、prometheus
Prometheus サーバーによって公開される時系列データを収集するというジョブがあります。ジョブには、静的に構成されたターゲットが含まれていますlocalhost 的端口
9090
。Prometheus は、メトリクスが path で利用可能であることを期待します/metrics
。したがって、このデフォルトのジョブは URL: http://localhost:9090/metrics経由で取得されます。
返された時系列データは、Prometheus サーバーのステータスとパフォーマンスの詳細を示します。
構成オプションの詳細な仕様については、構成ドキュメントを参照してください 。
プロメテウスを起動する
新しく作成した構成ファイルを使用して Prometheus を起動するには、Prometheus 実行可能ファイルを含むディレクトリに移動して、次を実行します。
./prometheus --config.file=prometheus.yml
Prometheus は正常に起動するはずです。http://localhost:9090で自分自身に関するステータス ページを参照することもできます。自身の HTTP メトリクス エンドポイントから自身に関するデータを収集するのに約 30 秒かかります。
また、Prometheus 自体のメトリクス エンドポイント: http://localhost:9090/metricsにアクセスして、Prometheus がそれ自体に関するメトリクスを提供していることを確認することもできます。
式ブラウザの使用
Prometheus がそれ自体に関して収集するデータをいくつか見てみましょう。Prometheus の組み込み式ブラウザを使用するには、 http://localhost:9090/graphに移動し、[グラフ] タブの [テーブル] ビューを選択します。
http://localhost:9090/metrics から参照できるようにpromhttp_metric_handler_requests_total
、Prometheus がそれ自体についてエクスポートする 1 つのメトリクスは(Prometheus Server によって処理されたリクエストの総数/metrics
)と呼ばれます。先に進み、これを式コンソールに入力してください。
promhttp_metric_handler_requests_total
これにより、多数の異なる時系列 (および各レコードの最新値) が返されます。これらはすべてメトリック名を使用します promhttp_metric_handler_requests_total
が、ラベルは異なります。これらのタグは、さまざまなリクエスト状態を指定します。
HTTP コードを生成したリクエストのみに興味がある場合は200
、次のクエリを使用してその情報を取得できます。
promhttp_metric_handler_requests_total{code="200"}
返された時系列の数をカウントするには、次のように記述できます。
count(promhttp_metric_handler_requests_total)
式言語の詳細については、 「式言語のドキュメント」を参照してください。
GUIを使用する
式をグラフ化するには、 http://localhost:9090/graphに移動し、「グラフ」タブを使用します。
たとえば、Prometheus のクロールから 1 秒あたりステータス コード 200 を返す HTTP リクエストの割合をプロットするには、次の式を入力します。
rate(promhttp_metric_handler_requests_total{code="200"}[1m])
グラフ範囲パラメータやその他の設定を試してみることができます。
他のターゲットを監視する
Prometheus からのみメトリクスを収集することは、Prometheus の機能を適切に表現するものではありません。Prometheus で何ができるかをよりよく理解するには、他のエクスポーターのドキュメントを参照することをお勧めします。「Node Exporter を使用して Linux または macOS のホスト メトリックを監視するためのガイド」から始めるとよいでしょう。
要約する
このガイドでは、Prometheus をインストールし、リソースを監視するように Prometheus インスタンスを構成し、Prometheus の式ブラウザーで時系列データを操作するための基本を学習しました。Prometheus について学び続けるには、概要をチェックして、次に何を探索するかについてのアイデアを確認してください。