序章

Prometheus は、サービスからメトリックを収集して時系列データベースに保存する、強力なオープンソースの監視システムです。 多次元データモデル、柔軟なクエリ言語、Grafanaなどのツールによる多様な視覚化の可能性を提供します。

デフォルトでは、Prometheusはそれ自体に関するメトリックのみをエクスポートします(例: 受信したリクエストの数、メモリ消費量など)。 ただし、追加のメトリックを生成するオプションのプログラムである exporters をインストールすることにより、Prometheusを大幅に拡張できます。

プロメテウスチームが維持している公式のものとコミュニティが提供しているものの両方のエクスポーターは、インフラストラクチャ、データベース、Webサーバーからメッセージングシステム、APIなどすべてに関する情報を提供します。

最も人気のある選択肢のいくつかは次のとおりです。

  • node_exporter -これにより、現在のCPU、メモリ、ディスクの使用状況、I / O、ディスクから読み取られたバイト数やサーバーの平均負荷などのネットワーク統計など、インフラストラクチャに関するメトリックが生成されます。
  • blackbox_exporter -これは、エンドポイントの可用性、応答時間などを決定するために、HTTPやHTTPSなどのプロービングプロトコルから派生したメトリックを生成します。
  • mysqld_exporter -これは、実行されたクエリの数、平均クエリ応答時間、クラスターレプリケーションステータスなど、MySQLサーバーに関連するメトリックを収集します。
  • javbitmq_exporter -これは、 RabbitMQ メッセージングシステムに関するメトリックを出力します。これには、公開されたメッセージの数、配信の準備ができているメッセージの数、キュー内のすべてのメッセージのサイズが含まれます。
  • nginx-vts-exporter -これは、 Nginx VTSモジュールを使用するNginxWebサーバーに関するメトリックを提供します。これには、開いている接続の数、送信された応答の数(応答コードでグループ化)が含まれます。 、および送信または受信したリクエストの合計サイズ(バイト単位)。

PrometheusのWebサイトで、公式およびコミュニティが提供するエクスポーターのより完全なリストを見つけることができます。

このチュートリアルでは、PrometheusとNode Exporterをインストール、構成、および保護して、サーバーのパフォーマンスの監視を容易にするメトリックを生成します。

前提条件

このチュートリアルを実行する前に、次のことを確認してください。

ステップ1—サービスユーザーの作成

セキュリティ上の理由から、prometheusnode_exporterの2つの新しいユーザーアカウントを作成することから始めます。 チュートリアル全体でこれらのアカウントを使用して、Prometheusのコアファイルとディレクトリの所有権を分離します。

これらの2人のユーザーを作成し、 --no-create-home--shell /bin/false これらのユーザーがサーバーにログインできないようにするためのオプション。

  1. sudo useradd --no-create-home --shell /bin/false prometheus
  2. sudo useradd --no-create-home --shell /bin/false node_exporter

Prometheusバイナリをダウンロードする前に、Prometheusのファイルとデータを保存するために必要なディレクトリを作成します。 標準のLinux規則に従って、次の場所にディレクトリを作成します。 /etc Prometheusの構成ファイルとディレクトリ /var/lib そのデータのために。

  1. sudo mkdir /etc/prometheus
  2. sudo mkdir /var/lib/prometheus

次に、新しいディレクトリのユーザーとグループの所有権をprometheusユーザーに設定します。

  1. sudo chown prometheus:prometheus /etc/prometheus
  2. sudo chown prometheus:prometheus /var/lib/prometheus

ユーザーとディレクトリが整ったら、Prometheusをダウンロードして、Prometheusを初めて実行するための最小限の構成ファイルを作成できます。

ステップ2—Prometheusをダウンロードする

まず、Prometheusの現在の安定バージョンをホームディレクトリにダウンロードして解凍します。 最新のバイナリとそのチェックサムは、Prometheusダウンロードページで見つけることができます。

  1. cd ~
  2. curl -LO https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz

次に、 sha256sum ダウンロードしたファイルのチェックサムを生成するコマンド:

  1. sha256sum prometheus-2.0.0.linux-amd64.tar.gz

このコマンドの出力をPrometheusダウンロードページのチェックサムと比較して、ファイルが本物であり、破損していないことを確認します。

Output
e12917b25b32980daee0e9cf879d9ec197e2893924bd1574604eb0f550034d46 prometheus-2.0.0.linux-amd64.tar.gz

チェックサムが一致しない場合は、ダウンロードしたファイルを削除し、前の手順を繰り返してファイルを再ダウンロードします。

次に、ダウンロードしたアーカイブを解凍します。

  1. tar xvf prometheus-2.0.0.linux-amd64.tar.gz

これにより、というディレクトリが作成されます prometheus-2.0.0.linux-amd64 2つのバイナリファイルを含む(prometheuspromtool), consolesconsole_libraries Webインターフェイスファイル、ライセンス、通知、およびいくつかのサンプルファイルを含むディレクトリ。

2つのバイナリをにコピーします /usr/local/bin ディレクトリ。

  1. sudo cp prometheus-2.0.0.linux-amd64/prometheus /usr/local/bin/
  2. sudo cp prometheus-2.0.0.linux-amd64/promtool /usr/local/bin/

バイナリのユーザーとグループの所有権を、手順1で作成したprometheusユーザーに設定します。

  1. sudo chown prometheus:prometheus /usr/local/bin/prometheus
  2. sudo chown prometheus:prometheus /usr/local/bin/promtool

をコピーします consolesconsole_libraries にディレクトリ /etc/prometheus.

  1. sudo cp -r prometheus-2.0.0.linux-amd64/consoles /etc/prometheus
  2. sudo cp -r prometheus-2.0.0.linux-amd64/console_libraries /etc/prometheus

ディレクトリのユーザーとグループの所有権をprometheusユーザーに設定します。 を使用して -R フラグは、ディレクトリ内のファイルにも所有権が設定されていることを確認します。

  1. sudo chown -R prometheus:prometheus /etc/prometheus/consoles
  2. sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

最後に、残ったファイルは不要になったため、ホームディレクトリから削除します。

  1. rm -rf prometheus-2.0.0.linux-amd64.tar.gz prometheus-2.0.0.linux-amd64

Prometheusがインストールされたので、最初の実行の準備として、構成ファイルとサービスファイルを作成します。

ステップ3—Prometheusを構成する

の中に /etc/prometheus ディレクトリ、使用 nano または、お気に入りのテキストエディタを使用して、という名前の構成ファイルを作成します prometheus.yml. 今のところ、このファイルには、Prometheusを初めて実行するのに十分な情報が含まれています。

  1. sudo nano /etc/prometheus/prometheus.yml

警告:Prometheusの構成ファイルはYAML形式を使用します。これはタブを厳密に禁止し、インデントに2つのスペースを必要とします。 構成ファイルの形式が正しくないと、Prometheusの起動に失敗します。

の中に global 設定で、メトリックをスクレイピングするためのデフォルトの間隔を定義します。 個々のエクスポーター自身の設定がグローバルをオーバーライドしない限り、Prometheusはこれらの設定をすべてのエクスポーターに適用することに注意してください。

Prometheus設定ファイルパート1-/etc/prometheus/prometheus.yml
global:
  scrape_interval: 15s

これ scrape_interval valueは、Prometheusに15秒ごとにエクスポーターからメトリックを収集するように指示します。これは、ほとんどのエクスポーターにとって十分な長さです。

次に、Prometheus自体をエクスポーターのリストに追加して、次のようにスクレイプします。 scrape_configs 指令:

Prometheus設定ファイルパート2-/etc/prometheus/prometheus.yml
...
scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']

プロメテウスは job_name クエリやグラフでエクスポーターにラベルを付けるために、ここで説明的なものを選択してください。

また、Prometheusは、パフォーマンスの監視とデバッグに使用できる自身に関する重要なデータをエクスポートするため、グローバルをオーバーライドしました。 scrape_interval より頻繁な更新のための15秒から5秒へのディレクティブ。

最後に、Prometheusは static_configstargets エクスポーターが実行されている場所を判別するためのディレクティブ。 この特定のエクスポーターはPrometheus自体と同じサーバーで実行されているため、次を使用できます。 localhost デフォルトのポートと一緒にIPアドレスの代わりに、 9090.

構成ファイルは次のようになります。

Prometheus設定ファイル-/etc/prometheus/prometheus.yml
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']

ファイルを保存して、テキストエディタを終了します。

次に、構成ファイルのユーザーとグループの所有権を、手順1で作成したprometheusユーザーに設定します。

  1. sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

構成が完了したら、Prometheusを初めて実行してテストする準備が整いました。

ステップ4—Prometheusを実行する

prometheus ユーザーとしてPrometheusを起動し、構成ファイルとデータディレクトリの両方へのパスを指定します。

  1. sudo -u prometheus /usr/local/bin/prometheus \
  2. --config.file /etc/prometheus/prometheus.yml \
  3. --storage.tsdb.path /var/lib/prometheus/ \
  4. --web.console.templates=/etc/prometheus/consoles \
  5. --web.console.libraries=/etc/prometheus/console_libraries

出力には、Prometheusの読み込みの進行状況、構成ファイル、および関連サービスに関する情報が含まれています。 また、Prometheusがポートでリッスンしていることも確認します 9090.

Output
level=info ts=2017-11-17T18:37:27.474530094Z caller=main.go:215 msg="Starting Prometheus" version="(version=2.0.0, branch=HEAD, re vision=0a74f98628a0463dddc90528220c94de5032d1a0)" level=info ts=2017-11-17T18:37:27.474758404Z caller=main.go:216 build_context="(go=go1.9.2, user=root@615b82cb36b6, date=20171108- 07:11:59)" level=info ts=2017-11-17T18:37:27.474883982Z caller=main.go:217 host_details="(Linux 4.4.0-98-generic #121-Ubuntu SMP Tue Oct 10 1 4:24:03 UTC 2017 x86_64 prometheus-update (none))" level=info ts=2017-11-17T18:37:27.483661837Z caller=web.go:380 component=web msg="Start listening for connections" address=0.0.0.0 :9090 level=info ts=2017-11-17T18:37:27.489730138Z caller=main.go:314 msg="Starting TSDB" level=info ts=2017-11-17T18:37:27.516050288Z caller=targetmanager.go:71 component="target manager" msg="Starting target manager... " level=info ts=2017-11-17T18:37:27.537629169Z caller=main.go:326 msg="TSDB started" level=info ts=2017-11-17T18:37:27.537896721Z caller=main.go:394 msg="Loading configuration file" filename=/etc/prometheus/promethe us.yml level=info ts=2017-11-17T18:37:27.53890004Z caller=main.go:371 msg="Server is ready to receive requests."

エラーメッセージが表示された場合は、構成ファイルでYAML構文を使用していることを再確認してから、画面の指示に従って問題を解決してください。

次に、を押してプロメテウスを停止します CTRL+C、次に新しいものを開きます systemd サービスファイル。

  1. sudo nano /etc/systemd/system/prometheus.service

サービスファイルは systemd Prometheusをprometheusユーザーとして実行するには、構成ファイルは /etc/prometheus/prometheus.yml ディレクトリとそのデータをに保存するには /var/lib/prometheus ディレクトリ。 (の詳細 systemd サービスファイルはこのチュートリアルの範囲を超えていますが、 Systemdユニットとユニットファイルについてで詳細を学ぶことができます。)

次のコンテンツをファイルにコピーします。

Prometheusサービスファイル-/etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

最後に、ファイルを保存してテキストエディタを閉じます。

新しく作成したサービスを使用するには、リロードします systemd.

  1. sudo systemctl daemon-reload

これで、次のコマンドを使用してPrometheusを起動できます。

  1. sudo systemctl start prometheus

Prometheusが実行されていることを確認するには、サービスのステータスを確認してください。

  1. sudo systemctl status prometheus

出力には、Prometheusのステータス、メインプロセス識別子(PID)、メモリ使用量などが表示されます。

サービスのステータスがそうでない場合 active、画面の指示に従い、チュートリアルを続行する前に、前の手順をたどって問題を解決してください。

Output
● prometheus.service - Prometheus Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2017-07-21 11:40:40 UTC; 3s ago Main PID: 2104 (prometheus) Tasks: 7 Memory: 13.8M CPU: 470ms CGroup: /system.slice/prometheus.service ...

先に進む準備ができたら、を押します Q やめるには status 指図。

最後に、起動時にサービスを開始できるようにします。

  1. sudo systemctl enable prometheus

Prometheusが稼働しているので、追加のエクスポーターをインストールして、サーバーのリソースに関するメトリックを生成できます。

ステップ5—ノードエクスポーターのダウンロード

Prometheusをそれ自体に関するメトリックを超えて拡張するために、NodeExporterと呼ばれる追加のエクスポーターをインストールします。 Node Exporterは、CPU、ディスク、メモリ使用量など、システムに関する詳細情報を提供します。

まず、NodeExporterの現在の安定バージョンをホームディレクトリにダウンロードします。 最新のバイナリとそのチェックサムは、Prometheusのダウンロードページで見つけることができます。

  1. cd ~
  2. curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz

使用 sha256sum ダウンロードしたファイルのチェックサムを生成するコマンド:

  1. sha256sum node_exporter-0.15.1.linux-amd64.tar.gz

チェックサムをダウンロードページのチェックサムと比較して、ダウンロードしたファイルの整合性を確認します。

Output
7ffb3773abb71dd2b2119c5f6a7a0dbca0cff34b24b2ced9e01d9897df61a127 node_exporter-0.15.1.linux-amd64.tar.gz

チェックサムが一致しない場合は、ダウンロードしたファイルを削除して、前の手順を繰り返します。

次に、ダウンロードしたアーカイブを解凍します。

  1. tar xvf node_exporter-0.15.1.linux-amd64.tar.gz

これにより、というディレクトリが作成されます node_exporter-0.15.1.linux-amd64 名前の付いたバイナリファイルを含む node_exporter、ライセンス、および通知。

バイナリをにコピーします /usr/local/bin ディレクトリを作成し、ユーザーとグループの所有権を、手順1で作成したnode_exporterユーザーに設定します。

  1. sudo cp node_exporter-0.15.1.linux-amd64/node_exporter /usr/local/bin
  2. sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

最後に、残ったファイルは不要になったため、ホームディレクトリから削除します。

  1. rm -rf node_exporter-0.15.1.linux-amd64.tar.gz node_exporter-0.15.1.linux-amd64

Node Exporterをインストールしたので、起動時に起動するようにサービスファイルを作成する前に、NodeExporterを実行してテストしてみましょう。

ステップ6—NodeExporterを実行する

Node Exporterを実行する手順は、Prometheus自体を実行する手順と同様です。 NodeExporterのSystemdサービスファイルを作成することから始めます。

  1. sudo nano /etc/systemd/system/node_exporter.service

このサービスファイルは、デフォルトのコレクターセットを有効にしてnode_exporterユーザーとしてNodeExporterを実行するようにシステムに指示します。

次のコンテンツをサービスファイルにコピーします。

ノードエクスポーターサービスファイル-/etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

コレクターは、NodeExporterが生成するメトリックを定義します。 Node Exporter READMEファイルで、Node Exporterのコレクターの完全なリスト(デフォルトで有効になっているものと非推奨になっているものを含む)を確認できます。

コレクターのデフォルトリストを上書きする必要がある場合は、 --collectors.enabled フラグ、のように:

ノードエクスポーターサービスファイル部分-/etc/systemd/system/node_exporter.service
...
ExecStart=/usr/local/bin/node_exporter --collectors.enabled meminfo,loadavg,filesystem
...

前の例では、NodeExporterに meminfo, loadavg、 と filesystem コレクター。 コレクターは必要な数または多数に制限できますが、コンマの前後に空白スペースがないことに注意してください。

ファイルを保存して、テキストエディタを閉じます。

最後に、リロードします systemd 新しく作成されたサービスを使用します。

  1. sudo systemctl daemon-reload

これで、次のコマンドを使用してNodeExporterを実行できます。

  1. sudo systemctl start node_exporter

NodeExporterがで正しく実行されていることを確認します status 指図。

  1. sudo systemctl status node_exporter

以前と同様に、この出力はノードエクスポータのステータス、メインプロセス識別子(PID)、メモリ使用量などを示します。

サービスのステータスがそうでない場合 active、画面上のメッセージに従い、前の手順をたどって問題を解決してから続行してください。

Output
● node_exporter.service - Node Exporter Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2017-07-21 11:44:46 UTC; 5s ago Main PID: 2161 (node_exporter) Tasks: 3 Memory: 1.4M CPU: 11ms CGroup: /system.slice/node_exporter.service

最後に、NodeExporterを起動時に開始できるようにします。

  1. sudo systemctl enable node_exporter

Node Exporterが完全に構成され、期待どおりに実行されたら、Prometheusに新しいメトリックのスクレイピングを開始するように指示します。

ステップ7—ノードエクスポーターをスクレイプするためのPrometheusの構成

Prometheusは、で定義されているエクスポーターのみをスクレイプするためです。 scrape_configs 構成ファイルの一部として、Prometheus自体の場合と同様に、NodeExporterのエントリを追加する必要があります。

構成ファイルを開きます。

  1. sudo nano /etc/prometheus/prometheus.yml

の終わりに scrape_configs ブロックし、という新しいエントリを追加します node_exporter.

Prometheus設定ファイルパート1-/etc/prometheus/prometheus.yml
...
  - job_name: 'node_exporter'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9100']

このエクスポーターはPrometheus自体と同じサーバー上でも実行されているため、ノードエクスポーターのデフォルトポートとともに、IPアドレスの代わりにローカルホストを再度使用できます。 9100.

構成ファイル全体は次のようになります。

Prometheus設定ファイル-/etc/prometheus/prometheus.yml
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node_exporter'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9100']       

続行する準備ができたら、ファイルを保存してテキストエディタを終了します。

最後に、Prometheusを再起動して、変更を有効にします。

  1. sudo systemctl restart prometheus

もう一度、すべてが正しく実行されていることを確認します status 指図。

  1. sudo systemctl status prometheus

サービスのステータスがに設定されていない場合 active、画面の指示に従い、先に進む前に前の手順をたどってください。

Output
● prometheus.service - Prometheus Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2017-07-21 11:46:39 UTC; 6s ago Main PID: 2219 (prometheus) Tasks: 6 Memory: 19.9M CPU: 433ms CGroup: /system.slice/prometheus.service

これで、PrometheusとNode Exporterがインストール、構成、および実行されました。 Webインターフェイスに接続する前の最後の予防策として、基本HTTP認証を使用してインストールのセキュリティを強化し、許可されていないユーザーがメトリックにアクセスできないようにします。

ステップ8—プロメテウスの保護

Prometheusには、組み込みの認証やその他の汎用セキュリティメカニズムは含まれていません。 一方では、これは、構成の制約が少なく、柔軟性の高いシステムを実現していることを意味します。 一方、それはあなたのメトリクスと全体的なセットアップが十分に安全であることを保証するのはあなた次第であることを意味します。

簡単にするために、Nginxを使用して基本HTTP認証をインストールに追加します。これは、Prometheusとその推奨データ視覚化ツールであるGrafanaの両方が完全にサポートしています。

インストールすることから始めます apache2-utils、これにより、 htpasswd パスワードファイルを生成するためのユーティリティ。

  1. sudo apt-get update
  2. sudo apt-get install apache2-utils

次に、次のように指示してパスワードファイルを作成します htpasswd ファイルを保存する場所と、認証に使用するユーザー名。

注: htpasswd このユーザーに関連付けるパスワードを入力して再確認するように求められます。 また、ステップ9でPrometheusにログインするために必要になるため、ここに入力したユーザー名とパスワードの両方をメモしておきます。

  1. sudo htpasswd -c /etc/nginx/.htpasswd sammy

このコマンドの結果は、次のように新しく作成されたファイルです。 .htpasswd、にあります /etc/nginx 入力したパスワードのユーザー名とハッシュバージョンを含むディレクトリ。

次に、新しく作成されたパスワードを使用するようにNginxを構成します。

まず、問題が発生した場合に後でデフォルトに戻すことができるように、デフォルトのNginx構成ファイルのPrometheus固有のコピーを作成します。

  1. sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/prometheus

次に、新しい構成ファイルを開きます。

  1. sudo nano /etc/nginx/sites-available/prometheus

を見つけます location / 下のブロック server ブロック。 次のようになります。

/ etc / nginx / sites-available / default
...
	location / {
		try_files $uri $uri/ =404;
	}
...

すべてのトラフィックをPrometheusに転送するため、 try_files 次の内容のディレクティブ:

/ etc / nginx / sites-available / prometheus
...
	location / {
		auth_basic "Prometheus server authentication";
		auth_basic_user_file /etc/nginx/.htpasswd;
		proxy_pass http://localhost:9090;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection 'upgrade';
		proxy_set_header Host $host;
		proxy_cache_bypass $http_upgrade;
	}
...

これらの設定により、ユーザーは新しい各セッションの開始時に認証を行う必要があります。 さらに、リバースプロキシは、このブロックによって処理されるすべての要求をPrometheusに転送します。

変更が完了したら、ファイルを保存してテキストエディタを閉じます。

次に、デフォルトのNginx構成ファイルへのリンクを削除して、そのファイルを非アクティブ化します。 /etc/nginx/sites-enabled ディレクトリに移動し、新しい構成ファイルへのリンクを作成してアクティブにします。

  1. sudo rm /etc/nginx/sites-enabled/default
  2. sudo ln -s /etc/nginx/sites-available/prometheus /etc/nginx/sites-enabled/

Nginxを再起動する前に、次のコマンドを使用して構成にエラーがないか確認してください。

  1. sudo nginx -t

出力は、 syntax is ok そしてその test is successful. エラーメッセージが表示された場合は、画面の指示に従って問題を修正してから、次の手順に進んでください。

Output of Nginx configuration tests
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

次に、Nginxをリロードして、すべての変更を組み込みます。

  1. sudo systemctl reload nginx

Nginxが稼働していることを確認します。

  1. sudo systemctl status nginx

出力がサービスのステータスが active、画面上のメッセージに従い、前の手順をたどって問題を解決してから続行してください。

出力
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Mon 2017-07-31 21:20:57 UTC; 12min ago
  Process: 4302 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s r
 Main PID: 3053 (nginx)
    Tasks: 2
   Memory: 3.6M
      CPU: 56ms
   CGroup: /system.slice/nginx.service

この時点で、完全に機能し、セキュリティで保護されたPrometheusサーバーができたので、Webインターフェイスにログインしてメトリックの確認を開始できます。

ステップ9—プロメテウスのテスト

Prometheusは、Prometheusとそのエクスポーターのステータスを監視し、クエリを実行し、グラフを生成するための基本的なWebインターフェイスを提供します。 ただし、インターフェイスが単純なため、Prometheusチームは、テストやデバッグよりも複雑なものについては、Grafanaのインストールと使用を推奨します。

このチュートリアルでは、組み込みのWebインターフェイスを使用して、PrometheusとNode Exporterが稼働していることを確認します。また、簡単なクエリとグラフについても見ていきます。

まず、Webブラウザで http://your_server_ip.

[HTTP認証]ダイアログボックスで、手順8で選択したユーザー名とパスワードを入力します。

ログインすると、 Expression Browser が表示され、カスタムクエリを実行して視覚化できます。

式を実行する前に、まず画面上部の Status メニューをクリックし、次に Targets メニューオプションをクリックして、PrometheusとNodeExplorerの両方のステータスを確認します。 Prometheusをそれ自体とNodeExporterの両方をスクレイピングするように構成したので、両方のターゲットがリストされているはずです。 UP 州。

エクスポータが見つからないか、エラーメッセージが表示される場合は、次のコマンドを使用してサービスのステータスを確認してください。

  1. sudo systemctl status prometheus
  1. sudo systemctl status node_exporter

両方のサービスの出力は、次のステータスを報告する必要があります Active: active (running). サービスがまったくアクティブになっていないか、アクティブであるがまだ正しく機能していない場合は、画面の指示に従い、前の手順を再度トレースしてから続行してください。

次に、エクスポーターが正しく機能していることを確認するために、NodeExporterに対していくつかの式を実行します。

まず、画面上部のグラフメニューをクリックして、式ブラウザに戻ります。

Expressionフィールドに次のように入力します node_memory_MemAvailable 実行ボタンを押して、コンソールタブをサーバーのメモリ容量で更新します。

デフォルトでは、NodeExporterはこの量をバイト単位で報告します。 メガバイトに変換するには、数学演算子を使用して1024で2回除算します。

Expressionフィールドに次のように入力します node_memory_MemAvailable/1024/1024 次に、実行ボタンを押します。

コンソールタブに結果がメガバイト単位で表示されるようになりました。

結果を確認したい場合は、 free 端末からのコマンド。 ( -h フラグが伝えます free 人間が読める形式で報告し、メガバイト単位で報告します。)

  1. free -h

この出力には、 available 列に表示される使用可能なメモリなど、メモリ使用量に関する詳細が含まれています。

Output
total used free shared buff/cache available Mem: 488M 144M 17M 3.7M 326M 324M Swap: 0B 0B 0B

基本的な演算子に加えて、Prometheusクエリ言語は結果を集計するための多くの機能も提供します。

Expressionフィールドに次のように入力します avg_over_time(node_memory_MemAvailable[5m])/1024/1024 実行ボタンをクリックします。 結果は、過去5分間の平均使用可能メモリ(メガバイト単位)になります。

次に、グラフタブをクリックして、実行された式をテキストではなくグラフとして表示します。

最後に、このタブを押したまま、グラフの上にマウスを置くと、グラフのX軸とY軸に沿った特定のポイントに関する詳細が表示されます。

Prometheusの組み込みWebインターフェイスでの式の作成について詳しく知りたい場合は、公式ドキュメントの QueryingPrometheusの部分を参照してください。

結論

このチュートリアルでは、1つの追加のエクスポーターを使用して、完全なPrometheusインストールをダウンロード、構成、保護、およびテストしました。

Prometheusが内部でどのように機能するかについて詳しく知りたい場合は、 Ubuntu14.04でPrometheusをクエリする方法をご覧ください。 (すでにPrometheusがインストールされているので、最初のステップをスキップできます。)

Prometheusが他に何ができるかを確認するには、公式のPrometheusドキュメントにアクセスしてください。

また、Prometheusの拡張の詳細については、利用可能なエクスポーターのリスト公式のGrafanaWebサイトを確認してください。