[ 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をインストール、構成、および保護して、サーバーのパフォーマンスをより簡単に監視できるメトリックを生成します。
このチュートリアルを実行する前に、次のことを確認してください。
セキュリティ上の理由から、最初に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を初めて実行するための最小限の構成ファイルを作成できるようになりました。
まず、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
という名前のディレクトリが作成され、ディレクトリ consoles
と console_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がインストールされたので、最初の実行に備えて構成ファイルとサービスファイルを作成します。
/ 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
の代わりに localhost
IPアドレスを使用できます。
構成ファイルは次のようになります。
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をテストするために初めて実行する準備が整います。
** 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が稼働しているので、追加のエクスポーターをインストールして、サーバーリソースに関するメトリックを生成できます。
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をインストールしたので、サービスファイルを作成する前に実行し、これを使用して、起動時に起動するようにテストします。
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に新しいメトリックのクロールを開始するように指示します。
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認証を通じてインストールのセキュリティを強化し、許可されていないユーザーがインジケーターにアクセスできないようにします。
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インターフェイスにログインしてメトリックの表示を開始できます。
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