翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lightsail で Prometheus を使用してシステムリソースとアプリケーションをモニタリングする
Prometheus は、さまざまなシステムリソースとアプリケーションを管理するためのオープンソースの時系列監視ツールです。多次元データモデル、収集されたデータのクエリ機能、Grafana による詳細なレポート作成とデータの視覚化を提供します。
デフォルトでは、Prometheus はインストール先のサーバーでメトリクスを収集できるようになっています。ノードエクスポータを使用すると、ウェブサーバー、コンテナ、データベース、カスタムアプリケーション、その他のサードパーティシステムなどの他のリソースからメトリクスを収集できます。このチュートリアルでは、Lightsail インスタンスにノードエクスポーターを使用して Prometheus をインストールおよび設定する方法を示します。使用可能なエクスポーターの詳細なリストについては、Prometheus ドキュメントの「Exporters and integrations
目次
ステップ 1: 前提条件を満たす
Amazon Lightsail インスタンスに Prometheus をインストールする前に、次の操作を行う必要があります。
-
Lightsail でインスタンスを作成します。インスタンスには Ubuntu 20.04 LTS ブループリントを使用することをお勧めします。詳細については、Amazon Lightsail でインスタンスを作成する」を参照してください。
-
静的 IP アドレスを作成して新規インスタンスにアタッチします。詳細については、Amazon Lightsail」を参照してください。
-
新しいインスタンスのファイアウォールのポート 9090 と 9100 を開きます。Prometheus では、ポート 9090 と 9100 が開いている必要があります。詳細については、Amazon Lightsail でのインスタンスファイアウォールルールの追加と編集」を参照してください。
ステップ 2: Lightsail インスタンスにユーザーとローカルシステムディレクトリを追加する
SSH を使用して Lightsail インスタンスに接続し、ユーザーとシステムディレクトリを追加するには、次の手順を実行します。この手順では、次の Linux ユーザーアカウントを作成します。
-
prometheus
– このアカウントは、サーバー環境のインストールと構成に使用されます。 -
exporter
– このアカウントは、node_exporter
拡張の構成に使用されます。
これらのユーザーアカウントは管理のみを目的として作成されるため、この設定の範囲を超える追加のユーザーサービスや権限は必要ありません。この手順では、Prometheus がリソースを監視するために使用するファイル、サービス設定、およびデータを保存および管理するためのディレクトリも作成します。
-
Lightsail コンソール
にサインインします。 -
インスタンス管理ページの [接続] タブで、[SSH を使用して接続] を選択します。
-
接続後に、次のコマンドを 1 つずつ入力して、2 つの Linux ユーザーアカウント (
prometheus
およびexporter
) を作成します。sudo useradd --no-create-home --shell /bin/false prometheus
sudo useradd --no-create-home --shell /bin/false exporter
-
次のコマンドを 1 つずつ入力して、ローカルシステムディレクトリを作成します。
sudo mkdir /etc/prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
ステップ 3: Prometheus バイナリパッケージをダウンロードする
次の手順を実行して、Prometheus バイナリパッケージを Lightsail インスタンスにダウンロードします。
-
ローカルコンピュータでウェブブラウザを開き、Prometheus のダウンロードページ
に移動します。 -
ページの上部で、[Operating system] (オペレーティングシステム) ドロップダウンから [Linux] を選択します。[Architecture] (アーキテクチャ) で [amd64] を選択します。
-
表示される [Prometheus] ダウンロードリンクを選択または右クリックし、リンクアドレスをコンピュータ上のテキストファイルにコピーします。表示される [node_exporter] ダウンロードリンクにも同じ操作を行います。この手順の後半で、コピーした両方のアドレスを使用します。
-
SSH を使用して Lightsail インスタンスに接続します。
-
次のコマンドを入力して、ディレクトリをホームディレクトリに変更します。
cd ~
-
以下のコマンドを入力して、Prometheus バイナリパッケージをインスタンスにダウンロードします。
curl -LO
prometheus-download-address
を、この手順の前半でコピーしたアドレス
prometheus-download-address
に置き換えます。アドレスの追加時は、コマンドは次の例のようになります。curl -LO
https://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz
-
以下のコマンドを入力して、
node_exporter
バイナリパッケージをインスタンスにダウンロードします。curl -LO
node_exporter-download-address
node_exporter-download-address
を、この手順の前のステップでコピーしたアドレスに置き換えます。アドレスの追加時は、コマンドは次の例のようになります。curl -LO
https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
-
次のコマンドを 1 つずつ実行して、ダウンロードされた Prometheus と Node Exporter ファイルの内容を抽出します。
tar -xvf
prometheus-2.37.0.linux-amd64.tar.gz
tar -xvf
node_exporter-1.3.1.linux-amd64.tar.gz
ダウンロードしたファイルの内容が抽出された後、いくつかのサブディレクトリが作成されます。
-
次のコマンドを 1 つずつ入力して、
prometheus
およびpromtool
の抽出されたファイルを/usr/local/bin
プログラムのディレクトリにコピーします。sudo cp -p ./prometheus-2.37.0.linux-amd64/prometheus /usr/local/bin
sudo cp -p ./prometheus-2.37.0.linux-amd64/promtool /usr/local/bin
-
次のコマンドを入力して、
prometheus
およびpromtool
のファイルをこのチュートリアルの前半で作成したprometheus
ユーザーに変更します。sudo chown prometheus:prometheus /usr/local/bin/prom*
-
次のコマンドを 1 つずつ入力して、
consoles
とconsole_libraries
のサブディレクトリを/etc/prometheus
にコピーします。-r
オプションは階層内のすべてのディレクトリを再帰的にコピーします。sudo cp -r ./prometheus-2.37.0.linux-amd64/consoles /etc/prometheus
sudo cp -r ./prometheus-2.37.0.linux-amd64/console_libraries /etc/prometheus
-
次のコマンドを 1 つずつ入力して、コピーしたファイルの所有権をこのチュートリアルの前半で作成した
prometheus
ユーザーに変更します。-R
オプションは階層内のすべてのファイルおよびディレクトリの所有権を再帰的に変更します。sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
-
次のコマンドを 1 つずつ入力して、設定ファイル
prometheus.yml
を/etc/prometheus
ディレクトリにコピーし、コピーしたファイルの所有権をこのチュートリアルの前半で作成したprometheus
ユーザーに変更します。sudo cp -p ./prometheus-2.37.0.linux-amd64/prometheus.yml /etc/prometheus
sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
-
以下のコマンドを入力して、
./node_exporter*
サブディレクトリから/usr/local/bin
プログラムのディレクトリにnode_exporter
ファイルをコピーします。sudo cp -p ./node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin
-
次のコマンドを入力して、このチュートリアルの前半で作成した
exporter
ユーザーにファイルの所有権を変更します。sudo chown exporter:exporter /usr/local/bin/node_exporter
ステップ 4: Prometheus を設定する
Prometheus を設定するには、次の手順を実行します。この手順では、prometheus.yml
ファイルを開いて編集します。このファイルには、Prometheus ツールのさまざまな設定が含まれています。Prometheus は、ファイルに設定した設定に基づいて監視環境を確立します。
-
SSH を使用して Lightsail インスタンスに接続します。
-
prometheus.yml
ファイルを開いて編集する前に、次のコマンドを入力してこのファイルのバックアップコピーを作成します。sudo cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml.backup
-
次のコマンドを入力して、 Vim を使用し、
prometheus.yml
ファイルを開きます。sudo vim /etc/prometheus/prometheus.yml
以下に、
prometheus.yml
ファイルに設定する必要があるいくつかの重要なパラメータを示します。-
scrape_interval
— このパラメータは、global
ヘッダーの下に置かれ、Prometheus が特定のターゲットのメトリックスデータをどの頻度で収集するか、またはスクレイプするかの時間間隔 (秒) を定義します。global
タグで示されているように、この設定は Prometheus が監視するすべてのリソースに共通です。この設定は、個々のエクスポーターがグローバル値をオーバーライドする別の値を提供しない限り、エクスポーターにも適用されます。このパラメータは、現在の 15 秒に設定したままにしておくことができます。 -
job_name
—scrape_configs
ヘッダー下に配置されるこのパラメータは、データクエリまたはビジュアルディスプレイの結果セット内のエクスポーターを識別するラベルです。ジョブ名の値は、環境内で監視されているリソースを最もよく反映するように指定できます。たとえば、ウェブサイトを管理するジョブにbusiness-web-app
というラベルを付けたり、データベースにmysql-db-1
というラベルを付けることができます。この初期設定では、Prometheus サーバーのみを監視しているので、最新のprometheus
値を保つことができます。 -
targets
—static_configs
ヘッダー下に配置されるtargets
設定では、特定のエクスポーターが実行されている場所を識別するためにip_addr:port
キーバリューのペアを使用します。この手順のステップ 4~7 で、デフォルト設定を変更できます。
注記
この初期セットアップでは、
alerting
およびrule_files
のパラメータを設定する必要はありません。 -
-
Vim で開いている
prometheus.yml
ファイルでは、[I] キーを押して Vim 挿入モードに移ります。 -
static_configs
ヘッダーの下に置かれているtargets
パラメータをスクロールして見つけます。 -
デフォルト設定を
に変更します。インスタンスの静的 IP アドレスを<ip_addr>
:9090
に置き換えます。変更されたパラメータは、次の例のようになります。<ip_addr>
-
[Esc] キーを押して挿入モードを終了し、[:wq!] と入力して変更内容を保存して Vim を終了します。
-
(オプション) 何か問題が発生した場合は、次のコマンドを入力してこの手順で前に作成したバックアップと
prometheus.yml
を置き換えます。sudo cp /etc/prometheus/prometheus.yml.backup /etc/prometheus/prometheus.yml
ステップ 5: Prometheus をスタートする
インスタンスで Prometheus サービスを開始するには、次のステップを実行します。
-
SSH を使用して Lightsail インスタンスに接続します。
-
次のコマンドを入力して 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
コマンドラインは、起動プロセスやその他のサービスの詳細を出力します。また、サービスがポート 9090 でリッスンしていることも示しているはずです。
サービスが起動しない場合、このポートでのトラフィックを許可するインスタンスファイアウォールルールの作成については、このチュートリアルの「ステップ 1: 前提条件を満たす」セクションを参照してください。その他のエラーについては、
prometheus.yml
ファイルを見直して構文エラーがないことを確認します。 -
実行中のサービスが検証されたら、[Ctrl+C] を押してストップします。
-
以下のコマンドを入力し、Vim を使用して
systemd
設定ファイルを開きます。このファイルは Prometheus を起動するために使用されます。sudo vim /etc/systemd/system/prometheus.service
-
ファイルに以下の行を挿入します。
[Unit] Description=PromServer 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
前述の手順は Linux
systemd
サービスマネージャーがサーバー上で Prometheus を起動するために使用されます。Prometheus は、呼び出されるとprometheus
ユーザーとして実行されprometheus.yml
ファイルを参照して、設定を読み込み/var/lib/prometheus
ディレクトリの時系列データを保存するします。コマンドラインからman systemd
を実行し、サービスの詳細情報を確認できます。 -
[Esc] キーを押して挿入モードを終了し、[:wq!] と入力して変更内容を保存して Vim を終了します。
-
次のコマンドを入力して、
systemd
サービスマネージャに情報を読み込みます。sudo systemctl daemon-reload
-
次のコマンドを入力して Prometheus を再起動します。
sudo systemctl start prometheus
-
Prometheus サービスの状態を確認するには、次のコマンドを入力します。
sudo systemctl status prometheus
サービスが正常に起動された場合は、次の例のような出力が表示されます。
-
[Q] を押して、ステータスコマンドを終了します。
-
次のコマンドを入力して、インスタンスが起動されたときに Prometheus が起動できるようにします。
sudo systemctl enable prometheus
-
ローカルコンピュータで Web ブラウザを開き、次の Web アドレスにアクセスして Prometheus 管理インターフェイスを表示します。
http:
<ip_addr>
:9090<ip_addr>
を Lightsail インスタンスの静的 IP アドレスに置き換えます。次の例に示すようなダッシュボードが表示されます。
ステップ 6: Node Exporter をスタートする
Node Exporter サービスを開始するには、以下の手順を実行します。
-
SSH を使用して Lightsail インスタンスに接続します。
-
次のコマンドを入力し、Vim を使用して
node_exporter
のsystemd
サービスファイルを作成します。sudo vim /etc/systemd/system/node_exporter.service
-
[I] キーを押して、Vim を挿入モードにします。
-
ファイルの末尾に次の行を追加します。これにより、CPU 負荷、ファイルシステムの使用状況、およびメモリリソースの監視コレクターを使用して
node_exporter
を設定します。[Unit] Description=NodeExporter Wants=network-online.target After=network-online.target [Service] User=exporter Group=exporter Type=simple ExecStart=/usr/local/bin/node_exporter --collector.disable-defaults \ --collector.meminfo \ --collector.loadavg \ --collector.filesystem [Install] WantedBy=multi-user.target
注記
これらの手順では、Node Exporter のデフォルトのマシンメトリックを無効にします。Ubuntu で利用できるメトリクスの詳しいリストについては、Ubuntu ドキュメンテーションの Prometheus node_exporter マニュアルのページ
を参照してください。 -
[Esc] キーを押して挿入モードを終了し、[:wq!] と入力して変更内容を保存して Vim を終了します。
-
次のコマンドを入力して、
systemd
プロセスをリロードします。sudo systemctl daemon-reload
-
次のコマンドを入力して
node_exporter
サービスを開始します。sudo systemctl start node_exporter
-
node_exporter
サービスの状態を確認するには、次のコマンドを入力します。sudo systemctl status node_exporter
サービスが正常に起動された場合は、次の例のような出力が表示されます。
-
[Q] を押して、ステータスコマンドを終了します。
-
次のコマンドを入力して、インスタンスが起動されたときに Node Exporter が起動できるようにします。
sudo systemctl enable node_exporter
ステップ 7: Node Exporter データコレクタで Prometheus を設定する
以下の手順を実行して、Node Exporter データコレクタで Prometheus を設定します。そのためには、prometheus.yml
ファイルの node_exporter
に新しい job_name
パラメータを追加します。
-
SSH を使用して Lightsail インスタンスに接続します。
-
次のコマンドを入力して、 Vim を使用し、
prometheus.yml
ファイルを開きます。sudo vim /etc/prometheus/prometheus.yml
-
[I] キーを押して、Vim を挿入モードにします。
-
既存の
- targets: ["
パラメータの下で、次のテキスト行をファイルに追加します。<ip_addr>
:9090"]- job_name: "node_exporter" static_configs: - targets: ["
<ip_addr>
:9100"]prometheus.yml
ファイルの変更されたパラメータは、次の例のようになります。次の点に注意してください。
-
Node Exporter は、
prometheus
サーバーのポート 9100 をリッスンしてデータをスクレイピングします。このチュートリアルの「Step 1: Complete the prerequisites」(ステップ 1: 前提条件を満たす) セクションで説明されているように、インスタンスのファイアウォールルールを作成する手順に従っていることを確認します。 -
の設定と同様に
prometheus
job_name
、<ip_addr>
を Lightsail インスタンスにアタッチされている静的 IP アドレスに置き換えます。
-
-
[Esc] キーを押して挿入モードを終了し、[:wq!] と入力して変更内容を保存して Vim を終了します。
-
以下のコマンドを入力して Prometheus サービスを再起動し、設定ファイルへの変更を確定します。
sudo systemctl restart prometheus
-
Prometheus サービスの状態を確認するには、次のコマンドを入力します。
sudo systemctl status prometheus
サービスが正常に再起動された場合は、次のような出力が表示されます。
-
[Q] を押して、ステータスコマンドを終了します。
-
ローカルコンピュータで Web ブラウザを開き、次の Web アドレスにアクセスして Prometheus 管理インターフェイスを表示します。
http:
<ip_addr>
:9090<ip_addr>
を Lightsail インスタンスの静的 IP アドレスに置き換えます。次の例に示すようなダッシュボードが表示されます。 -
メインメニューで、[Status] (ステータス) ドロップダウンを選択し、[Targets] (ターゲット) を選択します。
次の画面には、2 つのターゲットが表示されます。最初のターゲットは [node_exporter] メトリクスコレクターのジョブで、2 つ目のターゲットは [Prometheus] ジョブです。
これで、メトリックの収集とサーバーの監視のための環境が適切に設定されました。