Ubuntu16.04にPrometheusをインストールする方法

前書き ##

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

デフォルトでは、Prometheusはそれ自体に関するメトリック(たとえば、受信した要求の数、メモリ消費量など)のみをエクスポートします。ただし、* export *プログラムと、他のインジケーターを生成するオプションのプログラムをインストールすることで、Prometheusを大幅に拡張できます。

輸出業者(Prometheusチームが管理する公式出版物とコミュニティが提供する輸出業者)は、インフラストラクチャ、データベース、Webサーバーからメッセージングシステム、APIなどすべてに関する情報を提供します。

最も人気のあるオプションのいくつかは次のとおりです。

[Prometheus Webサイト](https://prometheus.io/docs/instrumenting/exporters/)で、公式およびコミュニティ貢献のエクスポーターのより完全なリストを見つけることができます。

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

コースの準備

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

ステップ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の現在の安定バージョンをホームディレクトリにダウンロードして解凍します。最新のバイナリファイルとそのチェックサムは、[Prometheusダウンロードページ](https://prometheus.io/download/)にあります。

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

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

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

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

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

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

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

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

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

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

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

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

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

consolesおよび console_librariesディレクトリを / etc / prometheusにコピーします。

sudo cp -r prometheus-2.0.0.linux-amd64/consoles /etc/prometheus
sudo cp -r prometheus-2.0.0.linux-amd64/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-2.0.0.linux-amd64.tar.gz prometheus-2.0.0.linux-amd64

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

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

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

sudo nano /etc/prometheus/prometheus.yml

警告: Prometheus構成ファイルは[YAML形式](http://www.yaml.org/start.html)を使用します。この[形式](http://www.yaml.org/start.html)はタブを厳密に禁止し、インデントするには2つのスペースが必要です。構成ファイルの形式が正しくない場合、Prometheusは起動しません。

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

global:
 scrape_interval: 15s

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

ここで、次の scrape_configsディレクティブを使用して、Prometheus自体をエクスポーターのリストに追加します。

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

Prometheusは job_nameを使用してラベルやチャートにエクスポーターをマークしているので、ここで説明的なコンテンツを選択してください。

さらに、Prometheusはパフォーマンスの監視とデバッグに使用できる重要なデータをエクスポートするため、グローバルな scrape_interval命令を15秒から5秒に書き直して、より頻繁に更新します。

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

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

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

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

次に、構成ファイルのユーザーとグループの所有権を、手順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 1014: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

サービスファイルは、Prometheusを** prometheus **ユーザーとして実行することを systemdに通知し、構成ファイルは / etc / prometheus / prometheus.ymlディレクトリにあり、そのデータは / var / lib / prometheusに保存されます。ディレクトリ。 ( systemdサービスファイルの詳細はこのチュートリアルの範囲を超えていますが、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)で詳細を学ぶことができます。)

以下をファイルにコピーします。

[ 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)、メモリ使用量などが表示されます。

サービスのステータスが「アクティブ」でない場合は、このチュートリアルを続行する前に、画面の指示に従い、上記の手順を再追跡して問題を解決してください。

● prometheus.service - Prometheus
 Loaded:loaded(/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
 Active:active(running) since Fri 2017-07-2111: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-ノードエクスポータをダウンロード

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

まず、NodeExporterの現在の安定バージョンをホームディレクトリにダウンロードします。最新のバイナリファイルとそのチェックサムは、[Prometheusダウンロードページ](https://prometheus.io/download/)にあります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ステップ6-ノードエクスポータを実行する

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

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

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

以下をサービスファイルにコピーします。

[ 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 README](https://github.com/prometheus/node_exporter/blob/master/README.md#enabled-by-default)で確認できます。これには、デフォルトで有効で非推奨のコレクターのリストが含まれます。

デフォルトのコレクターリストを上書きする必要がある場合は、次のような --collectors.enabledフラグを使用できます。

...
ExecStart=/usr/local/bin/node_exporter --collectors.enabled meminfo,loadavg,filesystem
...

前の例では、ノードエクスポーターに、 meminfo loadavg、および filesystemコレクターのみを使用してメトリックを生成するように指示します。必要に応じてコレクターを少数または多数に制限できますが、コンマの前後にスペースがないことに注意してください。

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

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

sudo systemctl daemon-reload

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

sudo systemctl start node_exporter

statusコマンドを使用して、ノードエクスポータが正しく実行されていることを確認します。

sudo systemctl status node_exporter

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

サービスのステータスが「アクティブ」でない場合は、続行する前に、画面のメッセージに従い、上記の手順を再追跡して問題を解決してください。

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

最後に、ノードエクスポータが起動時に開始できるようにします。

sudo systemctl enable node_exporter

Node Exporterが完全に構成され、期待どおりに動作している状態で、Prometheusに新しいメトリックのクロールを開始するように指示します。

ステップ7-ノードエクスポーターをスクレイプするようにPrometheusを構成します

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

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

sudo nano /etc/prometheus/prometheus.yml

scrape_configsブロックの最後に、 node_exporterという新しいエントリを追加します。

...- job_name:'node_exporter'
 scrape_interval: 5s
 static_configs:- targets:['localhost:9100']

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

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

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

サービスステータスが「アクティブ」に設定されていない場合は、画面の指示に従い、先に進む前に前の手順を再追跡してください。

● prometheus.service - Prometheus
 Loaded:loaded(/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
 Active:active(running) since Fri 2017-07-2111: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とその推奨される[データ視覚化](https://cloud.tencent.com/product/yuntu?from=10680)ツールGrafanaによって完全にサポートされています。

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

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

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

注: htpasswdは、このユーザーに関連付けるパスワードを入力して再確認するように求めます。また、手順9でPrometheusにログインする必要があるため、ここに入力したユーザー名とパスワードを書き留めてください。

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

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

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

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

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

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

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

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

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

すべてのトラフィックをPrometheusに転送するため、 try_filesディレクティブを次のように置き換えてください。

...
 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に送信します。

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

ここで、 / 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

出力には、「構文は問題ありません」および「テストは成功しました」と表示されます。エラーメッセージが表示された場合は、画面の指示に従って問題を解決してから、次の手順に進んでください。

nginx: 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:active(running) since Mon 2017-07-3121: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チームはテストとデバッグの代わりに[推奨](https://prometheus.io/docs/visualization/browser/)[Grafanaをインストールして使用](https://prometheus.io/docs/visualization/grafana/)します。

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

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

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

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

式を実行する前に、まず画面上部の[ステータス]メニューをクリックし、次に[ターゲット]メニューオプションをクリックして、Prometheusとノードエクスプローラーのステータスを確認します。 Prometheusをそれ自体とノードエクスポーターとして構成したので、「UP」ステータスに2つのターゲットがリストされているはずです。

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

sudo systemctl status prometheus
sudo systemctl status node_exporter

2つのサービスの出力は、ステータス「アクティブ:アクティブ(実行中)」を報告する必要があります。サービスが完全に非アクティブまたはアクティブであるにもかかわらず正しく機能しない場合は、画面の指示に従い、前の手順を再追跡してから続行してください。

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

まず、画面上部の「**グラフ」**メニューをクリックして「**エクスプレッションブラウザ」**に戻ります。

[**式] **フィールドに「node_memory_MemAvailable」と入力し、[**実行] **ボタンを押して、[**コンソール] **タブをサーバーのメモリ量で更新します。

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

「**式」**フィールドに「node_memory_MemAvailable / 1024/1024」と入力し、「**実行」**ボタンを押します。

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

結果を確認したい場合は、端末から「free」コマンドを実行してください。 ( -hフラグは、 freeに、メガバイト単位の人間が読み取れる形式でレポートを送信するように指示します。)

free -h

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

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

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

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

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

最後に、このタブで、チャートの上にマウスを置くと、チャートのX軸とY軸上の特定のポイントに関する追加の詳細が表示されます。

Prometheusの組み込みWebインターフェイスでの式の作成について詳しく知りたい場合は、公式ドキュメントの[Query Prometheus](https://prometheus.io/docs/querying/basics/)セクションを参照してください。

結論として ##

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

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

また、Prometheusの拡張について詳しくは、[Available Exporters List](https://prometheus.io/docs/instrumenting/exporters/)および[Grafana Official Website](https://grafana.com/)をご覧ください。

その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。


参照:「Ubuntu16.04にPrometheusをインストールする方法」

Recommended Posts

Ubuntu16.04にPrometheusをインストールする方法
Ubuntu14.04にDockerを使用してPrometheusをインストールする方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にMemcachedをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVagrantをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にPython3.8をインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu20.04にKVMをインストールする方法
ubuntu14.04にopencv3.0.0をインストールする方法
Ubuntu20.04にAnacondaをインストールする方法
Ubuntu18.04にJenkinsをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にRをインストールする方法
Ubuntu16.04にMoodleをインストールする方法
Ubuntu14.04にSolr5.2.1をインストールする方法
Ubuntu16.04にTeamviewerをインストールする方法
Ubuntu20.04にMariaDBをインストールする方法
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にMonoをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu20.04にZoomをインストールする方法
Ubuntu16.04にNginxをインストールする方法
Ubuntu20.04にOpenCVをインストールする方法
Ubuntu20.04にSpotifyをインストールする方法
Ubuntu18.04にPostmanをインストールする方法
Ubuntu16.04にGo1.6をインストールする方法
Ubuntu18.04にGoをインストールする方法
Ubuntu14.04にMySQLをインストールする方法
Ubuntu20.04にPostgreSQLをインストールする方法
Ubuntu18.04にVLCをインストールする方法
Ubuntu20.04にTeamViewerをインストールする方法
Ubuntu20.04にWebminをインストールする方法
Ubuntu18.04にDockerComposeをインストールする方法
RaspberryPiにUbuntuをインストールする方法
Ubuntu14.04にBaculaServerをインストールする方法
Ubuntu14.04パート2でPrometheusをクエリする方法
Ubuntu 18.04(linux)にMySQLをインストールする方法
Raspberry Pi4にUbuntu19.10をインストールする方法
Ubuntu18.04にApacheKafkaをインストールする方法
Ubuntu20.04にApacheMavenをインストールする方法
Ubuntu16.04にApacheTomcat8をインストールする方法
Ubuntu20.04 ubuntu / focal64にPython2をインストールする方法
Ubuntu18.04にGCCコンパイラをインストールする方法