ホーム テクノロジー 開発 Blackbox Exporter と Grafana を使用して Web サイトのパフォーマンスを監視するにはどうすればよいですか?

サーバーメトリクス監視用の Grafana が気に入っていますか? Web サイト監視用の Blackbox Exporter もきっと気に入っていただけるでしょう。

このチュートリアルでは、Blackbox Exporter を CentOS/RHEL にインストールする方法を学習し、それを Prometheus および Grafana と組み合わせて使用​​して Web サイトのパフォーマンスと稼働時間を監視する方法を理解します。

ブラックボックスエクスポーターとは何ですか?

Prometheus のBlackbox Exporter は、 HTTPS、HTTP、TCP、DNS、ICMP などのエンドポイントを調査するために使用されます。エンドポイントを定義すると、Blackbox エクスポーターは、Grafana を使用して視覚化できる数百のメトリクスを生成します。応答時間の測定は、Blackbox エクスポーターの最も重要な機能です。

Blackbox Exporter はセルフホスト型のソリューションです。 SaaS またはクラウドベースで同様のものを探している場合は、Grafana worldPing を試すことができます。

前提条件

Prometheus と Grafana を事前にインストールする必要があります。この記事に従って Prometheus と Grafana をインストールします。

ブラックボックス エクスポーターのインストール

まず、Blackbox エクスポーターをインストールする方法を説明します。

ステップ 1: Blackbox Exporter をダウンロードする

公式ページに移動して、最新の Linux AMD Blackbox エクスポータ パッケージをダウンロードします。 blackbox_exporter-0.16.0.linux-amd64.tar.gzファイルをダウンロードしています。

  • ダウンロードしたファイルをサーバーに転送します
  • パッケージからファイルを抽出します。
 [centos@ ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz

Blackbox エクスポーター内のすべてのファイルを確認します。

 [centos@ ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[centos@ blackbox_exporter-0.16.0.linux-amd64]$ ls -l
total 16672
-rwxr-xr-x. 1 centos centos 17050332 Nov 11 2019 blackbox_exporter
-rw-r--r--. 1 centos centos 629 Nov 11 2019 blackbox.yml
-rw-r--r--. 1 centos centos 11357 Nov 11 2019 LICENSE
-rw-r--r--. 1 centos centos 94 Nov 11 2019 NOTICE

ここでは、 blackbox_exporterblackbox.yml 2 つのファイルが重要です。

  • blackbox_exporter: サービスを実行するための実行可能ファイルです。
  • blackbox.yml: すべてのバックボックス エクスポーター設定を含む YAML ファイル。プローブするすべてのエンドポイントと実行するモジュールを定義します。

以下のコマンドは、Blackbox エクスポーターで使用できるすべてのフラグを提供します。

 [centos@ blackbox_exporter-0.16.0.linux-amd64]$ ./blackbox_exporter -h
usage: blackbox_exporter [<flags>]

Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).

--config.file="blackbox.yml"
Blackbox exporter configuration file.
--web.listen-address=":9115"
The address to listen on for HTTP requests.

--timeout-offset=0.5 Offset to subtract from timeout in seconds.

--config.check If true validate the config file and then exit.

--history.limit=100 The maximum amount of items to keep in the history.

--web.external-url=<url>
The URL under which Blackbox exporter is externally reachable (for example, if Blackbox exporter is served via a
reverse proxy). Used for generating relative and absolute links back to Blackbox exporter itself. If the URL has a
path portion, it will be used to prefix all HTTP endpoints served by Blackbox exporter. If omitted, relevant URL
components will be derived automatically.

--web.route-prefix=<path>
Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url.

--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]

--log.format=logfmt Output format of log messages. One of: [logfmt, json]
--version Show application version.

ステップ 2: Blackbox のユーザーを作成する

これはオプションです。

Blackbox を実行する新しいユーザーを作成することも、既存の Prometheus ユーザーを使用して Blackbox を実行することもできます。

権限を付与し、すべてのファイルの所有権を新しいユーザーに割り当てます。

 [centos@ ~]$ sudo useradd -rs /bin/false blackbox
[centos@ ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[centos@ ~]$ sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64

ステップ 3: ブラックボックス サービスを構成する

Blackbox Exporter を systemd 内のサービスとして構成します。 blackbox.serviceファイルを作成し、以下の行をファイルに記述して保存します。

 [centos@ ~]$ sudo gedit /etc/systemd/system/blackbox.service

[Unit]
Description=Blackbox Exporter Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=blackbox
Group=blackbox
ExecStart=/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox_exporter --config.file==/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox.yml

[Install]
WantedBy=multi-user.target

パスを実際に抽出した場所に変更することを忘れないでください。

ステップ 4: Blackbox Exporter を開始する

以下のコマンドを実行して、Blackbox エクスポーターをサービスとして開始します。

 [centos@ ~]$ sudo systemctl daemon-reload
[centos@ ~]$ sudo systemctl start blackbox.service
[centos@ ~]$ sudo systemctl status blackbox.service
● blackbox.service - Blackbox Exporter Service
Loaded: loaded (/etc/systemd/system/blackbox.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-06-13 17:28:40 EDT; 1s ago
Main PID: 30427 (blackbox_export)
Tasks: 5
CGroup: /system.slice/blackbox.service
└─30427 /usr/local/bin/blackbox_exporter --config.file=/etc/blackbox.yml

Jun 13 17:28:40 .linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 .linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:212 msg="Starting b...b9a9)"
Jun 13 17:28:40 .linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:213 msg="Build cont...SSING)
Jun 13 17:28:40 .linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:225 msg="Loaded config file"
Jun 13 17:28:40 .linuxvmimages.com blackbox_exporter[30

素晴らしい!

ブラックボックス エクスポータが正常に起動しました。 http://localhost:9115/で、Blackbox Exporter が実行されていることがわかります。

ブラックボックスエクスポーター -
ブラックボックスエクスポーター –

Blackbox と Prometheus の統合

Blackbox Exporter を Prometheus と統合して、メトリクスの収集を開始しましょう。

  • 以下の構成を持つブラックボックスジョブをprometheus.ymlファイル内に追加します。 https://www.telegraph.co.ukのパフォーマンスを監視するつもりです。
 [centos@ ~]$ sudo gedit /etc/prometheus/prometheus.yml

- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response.
static_configs:
- targets:
- https://www.telegraph.co.uk
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # The blackbox exporter's real hostname:port.
  • プロメテウスを再起動します。
 [centos@ ~]$ sudo systemctl restart prometheus.service
  • http://localhost:9090/targetsでターゲットを再度確認すると、定義したエンドポイントでブラックボックス ジョブが実行されていることがわかります。
ブラックボックス ジョブ ターゲット -
ブラックボックス ジョブ ターゲット –
  • グラフをクリックし、クエリ「 probe_http_duration_seconds」を実行します。
プロメテウスのクエリ -
プロメテウスのクエリ –
  • Prometheus によって監視されているデータに基づいてビジュアライゼーションが作成されます。
プロメテウスの視覚化 -
プロメテウスの視覚化 –

次に、Grafana 上で Blackbox ジョブを視覚化します。

これを開始するには多くの方法がありますが、最も簡単な方法の 1 つは、既製のダッシュボードであるPrometheus Blackbox Exporterから開始することです。

  • Grafana ダッシュボードに移動し、+ 記号をクリックして、インポートをクリックします。
  • [Import via grafana.com] で、ダッシュボード ID 7587を入力し、[Load] をクリックします。
  • 次に、Prometheus データ ソースを選択し、[インポート] をクリックします。
グラファナのインポ​​ート -
グラファナのインポ​​ート –
  • Prometheus Blackbox Exporter ダッシュボードがインポートされます。
  • グローバル プローブ期間、ステータス、HTTP 期間、平均プローブ期間、平均 DNS ルックアップ、SSL 有効期限などのメトリクスを視覚化できるようになります。
grafana ダッシュボード -
grafana ダッシュボード –
grafana ダッシュボード 1 -
grafana ダッシュボード 1 –
  • これらはすべて、ダッシュボード上の個別のパネルです。 HTTP 期間パネルを詳しく説明します。このパネルには、接続、処理、解決、TLS、および転送リクエストにかかる時間が視覚的に表示されます。
HTTP期間
HTTP期間

ダッシュボードにはさまざまなオプションがあり、いろいろ試してみることができます。ビジュアライゼーションを表示する時間範囲を変更できます。データ更新の時間間隔を変更することもできます。ここでは、新しいデータが 5 秒ごとにダッシュボードに受信されます。

時間範囲
時間範囲
  • [HTTP 期間] 下矢印をクリックすると、以下に示すオプションが表示されます。 「編集」をクリックします。
パネル編集
パネル編集
  • 視覚化パネルの下に、クエリ エディターが表示されます。現在、以下のスナップショットに示されているクエリは、 probe_http_duration_secondsで視覚化されています。
クエリエディタ
クエリエディタ
  • 何百ものクエリがあり、簡単に視覚化して、要件に応じてダッシュボードに追加できます。
メトリクス
メトリクス
  • 視覚化のタイプを変更するためのオプションも多数あります。平均プローブ期間はダッシュボードにテキスト形式で表示されます。右側の視覚化パネルで、平均プローブ期間の[ゲージ]オプションをクリックします。
平均プローブ時間
平均プローブ時間
  • そしてこれが視覚化がどのように変化するかです。
平均プローブ継続時間ゲージ
平均プローブ継続時間ゲージ

結論

上記は、Prometheus Blackbox と Grafana を使用して Web サイトを監視するのがいかに簡単かを理解していただくためのものです。オプションはたくさんありますので、実際に試して体験してみることを強くお勧めします。 Grafana の学習に興味がある場合は、彼のオンライン コースをチェックしてください。

「 Blackbox Exporter と Grafana を使用して Web サイトのパフォーマンスを監視するにはどうすればよいですか?」についてわかりやすく解説!絶対に観るべきベスト2動画

[Lab 42] Prometheus HTTP Monitoring Using Blackbox Exporter
Monitoring Websites with Prometheus | Prometheus Synthetic Monitoring | Prometheus Blackbox Exporter

Share via
Copy link