翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lightsail で Prometheus を使用してシステムリソースとアプリケーションをモニタリングする
Prometheus は、さまざまなシステムリソースとアプリケーションを管理するためのオープンソースの時系列監視ツールです。多次元データモデル、収集されたデータのクエリ機能、Grafana による詳細なレポート作成とデータの視覚化を提供します。
デフォルトでは、Prometheus はインストール先のサーバーでメトリクスを収集できるようになっています。ノードエクスポータを使用すると、ウェブサーバー、コンテナ、データベース、カスタムアプリケーション、その他のサードパーティシステムなどの他のリソースからメトリクスを収集できます。このチュートリアルでは、Lightsail インスタンスでノードエクスポーターを使用して Prometheus をインストールして設定する方法を説明します。利用可能なエクスポーターの全リストについては、「Prometheus ドキュメント」の「エクスポーターと統合
目次
ステップ 1: 前提条件を満たす
Prometheus を Amazon Lightsail インスタンスにインストールするには、次の作業を行う必要があります。
-
Lightsail のインスタンスを作成します。インスタンスには Ubuntu 20.04 LTS ブループリントを使用することをお勧めします。詳細については、「Amazon Lightsail でインスタンスを作成する」を参照してください。
-
静的 IP アドレスを作成して新規インスタンスにアタッチします。詳細については、「Amazon Lightsail で静的 IP アドレスを作成する」を参照してください。
-
新しいインスタンスのファイアウォールのポート 9090 と 9100 を開きます。Prometheus では、ポート 9090 と 9100 が開いている必要があります。詳細については、「Amazon Lightsail でインスタンスファイアウォールルールの追加および編集」を参照してください。
ステップ 2: Lightsail インスタンスにユーザーとローカルシステムディレクトリを追加する
以下の手順を実行して Lightsail インスタンスに接続し SSH を使用してユーザーとシステムディレクトリを追加します。この手順では、次の Linux ユーザーアカウントを作成します。
-
prometheus– このアカウントは、サーバー環境のインストールと構成に使用されます。 -
exporter– このアカウントは、node_exporter拡張の構成に使用されます。
これらのユーザーアカウントは管理のみを目的として作成されるため、この設定の範囲を超える追加のユーザーサービスや権限は必要ありません。この手順では、Prometheus がリソースを監視するために使用するファイル、サービス設定、およびデータを保存および管理するためのディレクトリも作成します。
-
Lightsail コンソール
にサインインします。 -
インスタンス管理ページの [接続] タブで、[SSH を使用して接続] を選択します。
-
接続後に、次のコマンドを 1 つずつ入力して、2 つの Linux ユーザーアカウント (
prometheusおよびexporter) を作成します。sudo useradd --no-create-home --shell /bin/false prometheussudo useradd --no-create-home --shell /bin/false exporter -
次のコマンドを 1 つずつ入力して、ローカルシステムディレクトリを作成します。
sudo mkdir /etc/prometheus /var/lib/prometheussudo chown prometheus:prometheus /etc/prometheussudo chown prometheus:prometheus /var/lib/prometheus
ステップ 3: Prometheus バイナリパッケージをダウンロードする
以下の手順を実行して、Prometheus バイナリパッケージを Lightsail インスタンスにダウンロードします。
-
ローカルコンピュータでウェブブラウザを開き、Prometheus のダウンロードページ
に移動します。 -
ページの上部で、[Operating system] (オペレーティングシステム) ドロップダウンから [Linux] を選択します。[Architecture] (アーキテクチャ) で [amd64] を選択します。
-
表示される [Prometheus] ダウンロードリンクを選択または右クリックし、リンクアドレスをコンピュータ上のテキストファイルにコピーします。表示される [node_exporter] ダウンロードリンクにも同じ操作を行います。この手順の後半で、コピーした両方のアドレスを使用します。
-
SSH を使用して Lightsail インスタンスに接続します。
-
次のコマンドを入力して、ディレクトリをホームディレクトリに変更します。
cd ~ -
以下のコマンドを入力して、Prometheus バイナリパッケージをインスタンスにダウンロードします。
curl -LOprometheus-download-addressprometheus-download-addressを、この手順で先ほどでコピーしたアドレスに置き換えます。アドレスの追加時は、コマンドは次の例のようになります。curl -LOhttps://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz -
以下のコマンドを入力して、
node_exporterバイナリパッケージをインスタンスにダウンロードします。curl -LOnode_exporter-download-addressnode_exporter-download-addressを、この手順の前のステップでコピーしたアドレスに置き換えます。アドレスの追加時は、コマンドは次の例のようになります。curl -LOhttps://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz -
次のコマンドを 1 つずつ実行して、ダウンロードされた Prometheus と Node Exporter ファイルの内容を抽出します。
tar -xvfprometheus-2.37.0.linux-amd64.tar.gztar -xvfnode_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/binsudo 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/prometheussudo cp -r ./prometheus-2.37.0.linux-amd64/console_libraries /etc/prometheus -
次のコマンドを 1 つずつ入力して、コピーしたファイルの所有権をこのチュートリアルの前半で作成した
prometheusユーザーに変更します。-Rオプションは階層内のすべてのファイルおよびディレクトリの所有権を再帰的に変更します。sudo chown -R prometheus:prometheus /etc/prometheus/consolessudo 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/prometheussudo 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: 前提条件を満たす) セクションで説明されているように、インスタンスのファイアウォールルールを作成する手順に従っていることを確認します。 -
prometheusjob_nameの設定と同様に、Lightsail インスタンスに添付される性的 IP アドレスと<ip_addr>を置き換えます。
-
-
[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] ジョブです。
これで、メトリックの収集とサーバーの監視のための環境が適切に設定されました。