ウェブサイト検索

AlmaLinux 9にPrometheusとNode Exporterをインストールする方法


AlmaLinux 9にPrometheusとNode Exporterをインストールする方法

このページで

  1. 知っておくべき基本概念
  2. 前提条件
  3. Prometheusのインストールと設定

    1. ユーザーとディレクトリの設定
    2. Prometheusのプリコンパイルパッケージをダウンロード中
    3. Prometheusの設定
  4. ターゲット監視におけるノードエクスポーターのインストールと設定

    1. ノードエクスポーターのダウンロードとインストール
    2. サービスとしてバックグラウンドでノードエクスポーターを実行する
  5. Prometheusサーバーにノードエクスポーターを追加する
  6. 結論

Prometheusはオープンソースの監視およびアラートプラットフォームです。

元々、Prometheusは2012年にSoundcloudによって作成されました。それ以来、Prometheusプロジェクトは有名な企業によって採用され、非常に活発な開発者とコミュニティを持つ大規模プロジェクトになりました。そして、2016年には、PrometheusプロジェクトはCloud Native Computing Foundation(CNCF)の下で卒業しました。

知っておくべき基本概念

基本的に、PrometheusはターゲットサーバーからHTTPエンドポイントを通じてデータとメトリクスを収集し、すべてのデータを時間系列として保存します。Prometheusでは、時間系列データはメトリック名とキー/バリューのペアによって識別されます。

PrometheusはPrometheus Query Language(PromQL)を通じて柔軟性を提供します。PromQLを使用して、Prometheusの時系列データベースをクエリできます。

ターゲットサーバーには、すべてのデータとメトリックをPrometheusに公開する'exporter'アプリケーションをインストールする必要があります。'Node Exporter'は、Linuxマシンを監視するために一般的に使用されるexporterです。

ノードエクスポータは、Linuxマシンからハードウェアおよびカーネルに関連する指標を公開します。それは、Prometheusサーバーにデータと指標を公開する単一のバイナリファイルです。

このガイドでは、AlmaLinux 9 サーバーに Prometheus と Node Exporter をインストールする方法を示します。

前提条件

開始する前に、以下のことを確認してください:

  • 2台のAlmaLinux 9サーバー - この例では、PrometheusとNode Exporter用に別のサーバーを使用します。
  • 非ルートユーザーは sudo を実行して root 権限を取得できます。

Prometheusのインストールと設定

プロメテウスは、オープンソースの最新のシステム監視およびアラートシステムです。従来のUnix/Linuxサーバーにプリコンパイル済みパッケージを使ってインストールするか、DockerやKubernetesなどのコンテナ技術を使用するか、Ansible、Chef、Puppet、Saltstackなどの構成管理ツールを使用してインストールできます。

以下のセクションでは、事前構築されたバイナリファイルを使用して、AlmaLinux 9サーバーにPrometheusをインストールする方法を示します。

AlmaLinuxサーバーにPrometheusを成功裏にインストールするための手順を以下に示します:

  • ユーザーとディレクトリの設定
  • Prometheusバイナリパッケージのダウンロード
  • Prometheusサーバーの設定
  • システムdサービスとしてバックグラウンドでPrometheusを実行する

ユーザーとディレクトリの設定

Prometheusをインストールする前に、新しいユーザーとディレクトリをシステム上に作成します。このユーザーはPrometheusを実行するために使用され、一部のディレクトリはPrometheusの設定ファイルやデータを保存するために使用されます。

次のコマンドを実行して、新しいシステムユーザー prometheus を作成します。

sudo adduser -M -r -s /sbin/nologin prometheus

以下のコマンドを実行して、Prometheusの設定ファイルを保存するために使用される新しいディレクトリ/etc/prometheusと、Prometheusのデータディレクトリとして使用される/var/lib/prometheusを作成します。

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

以下のコマンドを実行して、/etc/prometheusと/var/lib/prometheusの両方のディレクトリの所有権をユーザーprometheusおよびグループprometheusに変更します。

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

Prometheusのプリコンパイルパッケージをダウンロード中

さあ、サーバーにPrometheusをインストールします。このデモでは、事前にコンパイルされたバイナリパッケージを使ってPrometheusをインストールします。IPアドレス192.168.10.20を持つAlmaLinuxサーバーにPrometheusをインストールします。

以下のdnfコマンドを実行して、システムにwgetをインストールします。

sudo dnf install wget -y

/usr/src に作業ディレクトリを移動し、wgetを使用してPrometheusのプリコンパイルされたバイナリファイルをダウンロードしてください。

cd /usr/src
wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz

今、以下のtarコマンドを使用して、Prometheusのバイナリファイルprometheus-2.44.0.linux-amd64.tar.gzを抽出してください。Prometheusのバイナリファイルといくつかのデフォルト設定が含まれる新しいディレクトリprometheus-2.44.0.linux-amd64が得られるはずです。

tar -xf prometheus-2.44.0.linux-amd64.tar.gz

以下のコマンドを実行して、デフォルトのPrometheus設定ファイルprometheus.ymlおよびいくつかの重要なディレクトリを/etc/prometheus/にコピーします。

sudo cp /usr/src/prometheus-*/prometheus.yml /etc/prometheus/
sudo cp -r /usr/src/prometheus-*/consoles /etc/prometheus
sudo cp -r /usr/src/prometheus-*/console_libraries /etc/prometheus

その後、次のコマンドを使用して、/etc/prometheus/ディレクトリの所有権をユーザーprometheusとグループprometheusに変更します。

sudo chown -R prometheus:prometheus /etc/prometheus

次に、以下のコマンドを実行して、prometheusとpromtoolのバイナリファイルを/usr/bin/ディレクトリにコピーします。

sudo cp /usr/src/prometheus-*/prometheus /usr/bin/
sudo cp /usr/src/prometheus-*/promtool /usr/bin/

次に、以下のコマンドを使用してprometheusとpromtoolを確認してください。

which prometheus
prometheus --version
which promtool
promtool --version

インストールが成功すると、/usr/bin/ ディレクトリにある prometheus および promtool コマンドの完全なパスが表示されるはずです。また、インストールされた Prometheus のバージョンも表示されます。

Prometheusの設定

プロメテウスがダウンロードされ、インストールされた後、プロメテウスの基本設定を開始します。

nanoエディタを使って、Prometheusの設定ファイル/etc/prometheus/prometheus.ymlを開いてください。

nano /etc/prometheus/prometheus.yml

scrape_configsパラメータに、新しいジョブprometheusを追加し、ターゲットをPrometheusサーバー自体にします。この例では、PrometheusサーバーのIPアドレスは192.168.10.20であり、これがPrometheusのメトリックをスクレイプします。

A scrape configuration containing exactly one endpoint to scrape:
Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
      - targets: ["192.168.10.20:9090"]

作業が終わったら、ファイルを保存して閉じてください。

次に、nanoエディタコマンドを使用して、prometheusのための新しいsystemdサービスファイルを/etc/systemd/system/prometheus.serviceに作成します。

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

Prometheusをsystemdサービスとして実行するために、次の構成を追加してください。

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/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マネージャをリロードし、systemdに変更を適用してください。

sudo systemctl daemon-reload

次に、以下のsystemctlコマンドを使用してprometheusサービスを開始し、有効にします。

sudo systemctl start prometheus
sudo systemctl enable prometheus

プロメテウスサービスが実行されていることを確認してください。

sudo systemctl status prometheus

インストールが成功した場合、prometheusサービスのステータスがアクティブ (実行中)であることを確認できるはずです。

最後に、ウェブブラウザを起動し、サーバーのIPアドレスにポート9090を続けて訪問します(例:http://192.168.10:20:9090/)。インストールが成功していれば、次のようなPrometheusのグラフページが表示されるはずです:

モニタリングエンドポイントの状態は、ステータス > ターゲットをクリックすることでも確認できます。ジョブ名prometheusがUPの状態で表示されるはずです。

ターゲットモニタリングにおけるノードエクスポータのインストールと構成

ノードエクスポーターは、ターゲットの監視に関するシステムメトリクスを公開するためのPrometheusのアプリケーションです。さまざまなシステムメトリクスを収集でき、Prometheusにさらなる処理のために公開できます。

このセクションでは、IPアドレス192.168.10.21のAlmaLinux 9サーバーにNode Exporterをインストールします。Node Exporterは、Prometheusが提供する事前コンパイルされたバイナリパッケージを使用してインストールします。

ノードエクスポーターのダウンロードとインストール

Node Exporterをインストールするには、それ専用のシステムユーザーを作成し、Node Exporterのバイナリパッケージをシステムにダウンロードする必要があります。

まず、以下のコマンドを実行して新しいシステムユーザーnode_exporterを作成します。

sudo adduser -M -r -s /sbin/nologin node_exporter

以下のdnfコマンドを使用してwgetをインストールします。

sudo dnf install wget -y

次に、/usr/src ディレクトリに移動し、wgetを使用してNode Exporterの事前コンパイルされたバイナリファイルをダウンロードします。

cd /usr/src/
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz

ダウンロードが完了すると、node_exporter-1.6.0.linux-amd64.tar.gzというファイルが表示されるはずです。以下のtarコマンドを使用して抽出してください。

tar -xf node_exporter-1.6.0.linux-amd64.tar.gz

次に、以下のコマンドを使ってNode Exporterのバイナリファイルを/usr/binディレクトリに移動します。

mv node_exporter-*/node_exporter /usr/bin

以下のコマンドを使用してNode Exporterを確認してください。成功すると、Node Exporterの完全なバイナリパスとバージョンが表示されるはずです。

which node_exporter
node_exporter --version

サービスとしてバックグラウンドでノードエクスポーターを実行する

Node Exporterがインストールされた後、systemdサービスとしてバックグラウンドでNode Exporterを設定して実行します。

それを行うために、新しい systemd サービスファイル /etc/systemd/system/node_exporter.service を以下の nano エディタコマンドを使用して作成します。この例では、Node Exporter を systemd サービスとして実行します。

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

次の設定をファイルに挿入してください。

[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/bin/node_exporter
[Install]
WantedBy=multi-user.target

作業が完了したら、ファイルを保存して終了してください。

次に、systemdマネージャーを再読み込みするために、以下のsystemctlコマンドを実行してください。

sudo systemctl daemon-reload

次に、以下のコマンドを使用してnode_exporterサービスを開始し、有効にします。

sudo systemctl start node_exporter
sudo systemctl enable node_exporter

node_exporter が起動して有効になったら、次のコマンドを実行して確認し、サービスが実行されていることを確認してください。

sudo systemctl status node_exporter

実行中の場合、node_exporterサービスはステータスがアクティブ(実行中)であることが表示されるはずです。

最後に、次のコマンドを実行してNode Exporterのポートを確認してください。デフォルトではポート9100で実行されています。

ss -tulpn | grep node

ポート9100はnode_exporterサービスによって使用されていることを確認する必要があります。

ウェブブラウザを介して、ポート9100の後に続けてサーバーのIPアドレスを訪れることで、確認することもできます(例:http://192.168.10.21:9100/)。Node Exporterを介してサーバー監視のエンドポイントデータが表示されるはずです。

Prometheusサーバーにノードエクスポーターを追加する

このセクションでは、Node ExporterをPrometheusサーバーに追加します。あなたは192.168.10.21のサーバーにシステムメトリクスをインストールして公開しましたので、次にそれを192.168.10.20で実行されているPrometheusサーバーに追加します。

以下のnanoエディタを使用して、Prometheusの設定ファイル/etc/prometheus/prometheus.ymlを開いてください。

sudo nano /etc/prometheus/prometheus.yml

scrape_configパラメータ内に新しいjob_name node_exporter_metricsを追加し、Node Exporterの詳細エンドポイントを入力してください。以下の例では、IPアドレス192.168.10.21のサーバーnode1を監視します。

  - job_name: 'node_exporter_metrics'
    scrape_interval: 5s
    static_configs:
      - targets: ['192.168.10.21:9100']

ファイルを保存して、作業が完了したらエディタを終了してください。

次に、prometheusサービスを再起動し、変更を適用するために以下のコマンドを実行してください。

sudo systemctl restart prometheus

ウェブブラウザからPrometheusを開き、ステータス > ターゲットをクリックして、ノードエクスポータが追加されていることを確認してください。成功すると、状態がUPのジョブnode_exporter_metricsが表示されるはずです。

次に、グラフメニューに移動し、node_で始まるクエリを入力して、Node Exporterによって提供されるクエリのリストを取得します。

サーバー192.168.10.21上のネットワークデバイスのリストを取得するには、クエリnode_network_iface_idを入力してください。

あなたはまた、node_os_infoクエリを通じてOS情報の詳細を確認することもできます。

最後に、クエリ node_load15 を入力し、グラフ タブをクリックして、過去15分間のシステムロードの状態を取得します。

結論

素晴らしい仕事です!あなたはAlmaLinux 9サーバーにPrometheusを成功裏にインストールし、Node Exporterを通じてAlmaLinuxサーバーを監視しました。

今、別のサーバーを監視したり、Prometheusエクスポータを介してアプリケーションを監視することができます。また、監視システムの可視化のためにPrometheusをGrafanaと統合することもできます。

関連記事: