Ubuntu 16.04にPrometheusをインストールする方法

前書き

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

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

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

最も一般的な選択肢には次のものがあります。

  • node_exporter-これは、現在のCPU、メモリ、ディスクの使用量、およびIディスクまたはサーバーの平均負荷。

  • blackbox_exporter-これにより、HTTPやHTTPSなどのプローブプロトコルから派生したメトリックが生成され、エンドポイントの可用性、応答時間などが決定されます。

  • mysqld_exporter-これは、実行されたクエリの数、平均クエリ応答時間、クラスタ複製ステータスなど、MySQLサーバーに関連するメトリックを収集します。

  • rabbitmq_exporter-https://www.rabbitmq.com/[RabbitMQ]メッセージングシステムに関するメトリックを出力します。これには、発行されたメッセージの数、準備ができているメッセージの数が含まれます配信され、キュー内のすべてのメッセージのサイズ。

  • nginx-vts-exporter-これは、https://github.com/vozlt/nginx-module-vts [Nginxを使用して、Nginx Webサーバーに関するメトリックを提供しますVTSモジュール]。開いている接続の数、送信された応答の数(応答コードごとにグループ化)、および送信または受信された要求の合計サイズ(バイト単位)が含まれます。

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

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

前提条件

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

  • 1つのUbuntu 16.04ドロップレット。sudoを含むhttps://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04[Ubuntu 16.04での初期サーバーセットアップチュートリアル]に従ってセットアップします。非rootユーザーとファイアウォール。

  • Nginxは、https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 [Ubuntu 16.04にNginxをインストールする方法]チュートリアルの最初の2つの手順に従ってインストールしました。

手順1-サービスユーザーの作成

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

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

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

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

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

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

sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

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

ステップ2-プロメテウスのダウンロード

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

cd ~
curl -LO https://github.com/prometheus/prometheus/releases/download//

次に、 `+ sha256sum +`コマンドを使用して、ダウンロードしたファイルのチェックサムを生成します。

sha256sum

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

Output

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

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

tar xvf

これにより、2つのバイナリファイル( + prometheus +`および `+ promtool +)、 `+ consoles `および ` console_libraries +`ディレクトリが含まれ、Webインターフェイスファイル、ライセンス、通知、およびいくつかのサンプルファイル。

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

sudo cp /prometheus /usr/local/bin/
sudo cp /promtool /usr/local/bin/

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

sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool

+ console`および + console libraries`ディレクトリを `+ / etc / prometheus`にコピーします。

sudo cp -r /consoles /etc/prometheus
sudo cp -r /console_libraries /etc/prometheus

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

sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

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

rm -rf

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

ステップ3-Prometheusの構成

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

sudo nano /etc/prometheus/prometheus.yml

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

Prometheus構成ファイルパート1-/etc/prometheus/prometheus.yml

global:
 scrape_interval: 15s

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

次の `+ scrape_configs +`ディレクティブを使用して、Prometheus自体をエクスポーターのリストに追加して、スクレイピング元から削除します。

Prometheus構成ファイルパート2-/etc/prometheus/prometheus.yml

...
scrape_configs:
 - job_name: ''
   scrape_interval:
   static_configs:
     - targets: ['']

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

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

最後に、Prometheusは `+ static_configs `および ` targets `ディレクティブを使用して、エクスポーターが実行されている場所を判断します。 この特定のエクスポーターはPrometheus自体と同じサーバーで実行されているため、デフォルトのポート ` 9090 `とともにIPアドレスの代わりに ` localhost +`を使用できます。

設定ファイルは次のようになります。

プロメテウス設定ファイル-/etc/prometheus/prometheus.yml

global:
 scrape_interval: 15s

scrape_configs:
 - job_name: ''
   scrape_interval:
   static_configs:
     - targets: ['']

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

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

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

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

ステップ4-Prometheusの実行

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

sudo -u prometheus /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

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

Outputlevel=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 `を押してPrometheusを停止し、新しい ` systemd +`サービスファイルを開きます。

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

サービスファイルは `+ systemd `にPrometheusを* prometheus *ユーザーとして実行し、設定ファイルを ` / etc / prometheus / prometheus.yml `ディレクトリに配置し、そのデータを ` / var / libに保存するように指示します/ prometheus + `ディレクトリ。 ( `+ systemd +`サービスファイルの詳細はこのチュートリアルの範囲外ですが、https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files#で詳細を学ぶことができますwhere-systemd-unit-files-found [システム化されたユニットとユニットファイルについて])

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

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 +`をリロードします。

sudo systemctl daemon-reload

次のコマンドを使用して、Prometheusを起動できるようになりました。

sudo systemctl start prometheus

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

sudo systemctl status prometheus

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

サービスのステータスが「++」でない場合は、画面上の指示に従って、チュートリアルを続行する前に問題を解決するために前述の手順を再トレースします。

Output● prometheus.service - Prometheus
  Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
  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 +」コマンドを終了します。

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

sudo systemctl enable prometheus

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

ステップ5-Node Exporterのダウンロード

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

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

cd ~
curl -LO https://github.com/prometheus/node_exporter/releases/download//

`+ sha256sum +`コマンドを使用して、ダウンロードしたファイルのチェックサムを生成します。

sha256sum

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

Output

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

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

tar xvf

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

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

sudo cp /node_exporter /usr/local/bin
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

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

rm -rf

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

ステップ6-Node Exporterの実行

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

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

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

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

Node Exporterサービスファイル-/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

コレクターは、Node Exporterが生成するメトリックを定義します。 Node Exporterのコレクターの完全なリスト(デフォルトで有効になっているものと非推奨のものを含む)は、https://github.com/prometheus/node_exporter/blob/master/README.md#enabled-by-default [NodeエクスポーターのREADMEファイル]。

コレクターのデフォルトリストをオーバーライドする必要がある場合は、次のように `+-collectors.enabled +`フラグを使用できます。

Node Exporterサービスファイルパーツ-/etc/systemd/system/node_exporter.service

...
ExecStart=/usr/local/bin/node_exporter --collectors.enabled
...

上記の例は、Node Exporterに、 + meminfo ++ loadavg +、および `+ filesystem +`コレクターのみを使用してメトリックを生成するように指示します。 コレクターを必要な数に制限することもできますが、コンマの前後に空白スペースがないことに注意してください。

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

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

sudo systemctl daemon-reload

次のコマンドを使用してNode Exporterを実行できるようになりました。

sudo systemctl start node_exporter

`+ status +`コマンドを使用して、Node Exporterが正しく実行されていることを確認します。

sudo systemctl status node_exporter

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

サービスのステータスが「++」でない場合は、画面上のメッセージに従い、前述の手順を再度トレースして問題を解決し、続行します。

Output● node_exporter.service - Node Exporter
  Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled)
  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

最後に、Node Exporterを有効にして起動時に起動します。

sudo systemctl enable node_exporter

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

手順7-Node ExporterをスクレイプするためのPrometheusの構成

Prometheusは設定ファイルの `+ scrape_configs +`部分で定義されているエクスポーターのみをスクレイピングするため、Prometheus自体と同様に、Node Exporterのエントリを追加する必要があります。

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

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アドレスの代わりにlocalhostを再度使用し、Node Exporterのデフォルトポートである「9100」を使用できます。

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

プロメテウス設定ファイル-/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を再起動して、変更を有効にします。

sudo systemctl restart prometheus

もう一度、 `+ status +`コマンドですべてが正しく実行されていることを確認します。

sudo systemctl status prometheus

サービスのステータスが「++」に設定されていない場合は、画面の指示に従って、先に進む前に前の手順を再度トレースします。

Output● prometheus.service - Prometheus
  Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
  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がインストール、構成、および実行されました。 ウェブインターフェースに接続する前の最後の予防措置として、基本的なHTTP認証を使用してインストールのセキュリティを強化し、許可されていないユーザーがメトリックにアクセスできないようにします。

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

Prometheusには、組み込みの認証やその他の汎用セキュリティメカニズムは含まれていません。 一方で、これは、構成の制約が少ない非常に柔軟なシステムを得ていることを意味します。一方、指標と全体的な設定が十分に安全であることを確認するのはユーザー次第です。

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

まず、 `+ apache2-utils `をインストールします。これにより、パスワードファイルを生成するための ` htpasswd +`ユーティリティにアクセスできます。

sudo apt-get update
sudo apt-get install apache2-utils

次に、ファイルの保存場所と認証に使用するユーザー名を「+ htpasswd +」に伝えることで、パスワードファイルを作成します。

sudo htpasswd -c

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

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

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

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

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

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

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

/ etc / nginx / sites-available / default

...
   location / {
       try_files $uri $uri/ =404;
   }
...

すべてのトラフィックをPrometheusに転送するため、 `+ try_files +`ディレクティブを次のコンテンツに置き換えます。

/ etc / nginx / sites-available / prometheus

...
   location / {
       auth_basic "";
       auth_basic_user_file ;
       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に送信します。

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

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

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

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

sudo nginx -t

出力は、「構文がOK +」で「+テストが成功」であることを示す必要があります。 エラーメッセージが表示された場合は、画面の指示に従って問題を修正し、次の手順に進みます。

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

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

sudo systemctl reload nginx

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

sudo systemctl status nginx

出力がサービスのステータスが「++」であることを示していない場合は、画面上のメッセージに従って問題を解決するために前の手順を再トレースし、続行します。

出力

● nginx.service - A high performance web server and a reverse proxy server
  Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
  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は、自身とそのエクスポーターのステータスを監視し、クエリを実行し、グラフを生成するための基本的なWebインターフェイスを提供します。 しかし、インターフェースがシンプルであるため、Prometheusチームはhttps://prometheus.io/docs/visualization/browser/ [推奨] Grafanaのインストールと使用テストやデバッグよりも複雑です。

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

まず、Webブラウザで「+ http:// +」を指定します。

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

image:http://assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Authentication.png [プロメテウス認証]

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

image:http://assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Welcome.png [Prometheus Dashboard Welcome]

式を実行する前に、最初に画面上部の* Status メニューをクリックし、次に Targets *メニューオプションをクリックして、PrometheusとNode Explorerの両方のステータスを確認します。 Prometheusがそれ自体とNode Exporterの両方をスクレイプするように設定したので、両方のターゲットが「+ UP +」状態で一覧表示されるはずです。

image:http://assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Targets.png [Prometheus Dashboard Targets]

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

sudo systemctl status prometheus
sudo systemctl status node_exporter

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

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

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

image:http://assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Graph.png [Prometheus Dashboard Graph]

  • Expression フィールドに「+ node_memory_MemAvailable +」と入力し、 Execute ボタンを押して、 Console *タブをサーバーのメモリ量で更新します。

image:http://assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-MemTotal.png [Prometheus Dashboard MemTotal]

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

  • Expression フィールドに、「+ node_memory_MemAvailable / 1024/1024 +」と入力し、 Execute *ボタンを押します。

画像:http://assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-MemTotal-MB.png [Prometheus Dashboard MemTotal MB]

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

結果を確認したい場合は、ターミナルから `+ free `コマンドを実行します。 (「 -h 」フラグは、「 free +」に人間が読める形式で報告するよう指示し、メガバイト単位で量を提供します。)

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 + `」と入力し、[ Execute *]ボタンをクリックします。 結果は、過去5分間の平均使用可能メモリ(メガバイト単位)になります。

image:http://assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Average-Memory.png [Prometheus Average Memory]

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

image:http://assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Graph-Average-Memory2.png [Prometheus Graph Average Memory]

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

Prometheusの組み込みのウ​​ェブインターフェースで式を作成する方法について詳しく知りたい場合は、公式ドキュメントのhttps://prometheus.io/docs/querying/basics/[Querying Prometheus]の部分をご覧ください。

結論

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

Prometheusが内部でどのように機能するかについて詳しく知りたい場合は、https://www.digitalocean.com/community/tutorials/how-to-query-prometheus-on-ubuntu-14-04-をご覧ください。 part-1#step-2-%E2%80%94-installing-the-demo-instances [Ubuntu 14.04でPrometheusを照会する方法]。 (Prometheusが既にインストールされているので、最初のステップをスキップできます。)

Prometheusで他に何ができるかを確認するには、https://prometheus.io/docs/introduction/overview/ [公式のPrometheusドキュメント]にアクセスしてください。

また、Prometheusの拡張の詳細については、https://prometheus.io/docs/instrumenting/exporters/ [利用可能なエクスポーターのリスト]およびhttps://grafana.com/ [公式のGrafana Webサイト]をご覧ください。

Related