Prometheus の最初のステップ

Prometheus へようこそ!Prometheus は、ターゲットの HTTP エンドポイントからメトリックをスクレイピングすることで、監視対象ターゲットからメトリックを収集する監視プラットフォームです。このガイドでは、Prometheus をインストール、設定し、最初のリソースを監視する方法を説明します。Prometheus をダウンロード、インストール、実行します。また、ホストやサービスで時系列データを公開するツールであるエクスポーターをダウンロードしてインストールします。最初のエクスポーターは Prometheus 自体であり、メモリ使用量、ガベージコレクションなどに関するさまざまなホストレベルのメトリックを提供します。

Prometheus のダウンロード

最新リリースをダウンロードし、解凍してください。

tar xvfz prometheus-*.tar.gz
cd prometheus-*

Prometheus サーバーは prometheus (Microsoft Windows では prometheus.exe) と呼ばれる単一のバイナリです。バイナリを実行し、--help フラグを渡すことでオプションに関するヘルプを確認できます。

./prometheus --help
usage: prometheus [<flags>]

The Prometheus monitoring server

. . .

Prometheus を起動する前に、設定を行いましょう。

Prometheus の設定

Prometheus の設定は YAML です。Prometheus のダウンロードには、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']

サンプル設定ファイルには、globalrule_filesscrape_configs の 3 つの設定ブロックがあります。

global ブロックは Prometheus サーバーのグローバル設定を制御します。ここでは 2 つのオプションがあります。最初の scrape_interval は、Prometheus がターゲットをスクレイピングする頻度を制御します。これは個々のターゲットで上書きできます。この例では、グローバル設定は 15 秒ごとにスクレイピングします。evaluation_interval オプションは、Prometheus がルールを評価する頻度を制御します。Prometheus はルールを使用して新しい時系列を作成したり、アラートを生成したりします。

rule_files ブロックは、Prometheus サーバーにロードさせたいルールの場所を指定します。現時点ではルールはありません。

最後のブロックである scrape_configs は、Prometheus が監視するリソースを制御します。Prometheus は自身に関するデータも HTTP エンドポイントとして公開しているため、それをスクレイピングして自身を監視できます。デフォルトの設定では、prometheus という名前の単一のジョブがあり、Prometheus サーバーによって公開される時系列データをスクレイピングします。このジョブには、静的に設定された単一のターゲット、ポート 9090localhost が含まれています。Prometheus は、ターゲット上のメトリックが /metrics パスで利用可能であることを期待します。したがって、このデフォルトのジョブは次の URL を介してスクレイピングします: https://:9090/metrics

返される時系列データは、Prometheus サーバーの状態とパフォーマンスの詳細を示します。

設定オプションの完全な仕様については、設定ドキュメントを参照してください。

Prometheus の起動

新しく作成した設定ファイルで Prometheus を起動するには、Prometheus バイナリが含まれるディレクトリに移動し、次を実行します。

./prometheus --config.file=prometheus.yml

Prometheus が起動します。また、https://:9090 でステータスページをブラウズできるはずです。自身の HTTP メトリックエンドポイントからデータを収集するのに約 30 秒かかります。

自身のメトリックエンドポイントにアクセスすることでも、Prometheus が自身に関するメトリックを公開していることを確認できます: https://:9090/metrics

式ブラウザの使用

Prometheus が自身について収集したデータを見てみましょう。Prometheus の組み込み式ブラウザを使用するには、https://:9090/graph にアクセスし、「Graph」タブ内の「Table」ビューを選択してください。

https://:9090/metrics からわかるように、Prometheus が自身についてエクスポートするメトリックの 1 つは promhttp_metric_handler_requests_total (Prometheus サーバーが処理した /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)

式言語の詳細については、式言語ドキュメントを参照してください。

グラフインターフェイスの使用

式をグラフ化するには、https://:9090/graph にアクセスし、「Graph」タブを使用してください。

たとえば、自己スクレイピングされた Prometheus で発生したステータスコード 200 を返す HTTP リクエストの 1 秒あたりのレートをグラフ化するには、次の式を入力します。

rate(promhttp_metric_handler_requests_total{code="200"}[1m])

グラフの範囲パラメータやその他の設定を試すことができます。

他のターゲットの監視

Prometheus 単体からメトリックを収集しても、Prometheus の機能の優れた代表にはなりません。Prometheus が何ができるかをよりよく理解するには、他のエクスポーターに関するドキュメントを調べることをお勧めします。Node Exporter を使用した Linux または macOS ホスト メトリックの監視 ガイドは良い出発点です。

概要

このガイドでは、Prometheus をインストールし、リソースを監視するように Prometheus インスタンスを設定し、Prometheus の式ブラウザで時系列データを操作する際のいくつかの基本を学びました。Prometheus についてさらに学習するには、概要 を参照して、次に探索するアイデアを見つけてください。

このページの内容