😎

Prometheusの監視対象サーバにnode_exporterをセットアップする手順

2022/05/15に公開

この記事では、Prometheusを利用した監視で、監視対象サーバにnode_exporterをセットアップする手順を紹介します。

はじめに

Prometheus はシステムの監視やアラート発信などを助けてくれるツールです。

Prometheusを利用した監視システムを構築することで、サーバ状態を監視したり、サーバダウンのような異常を検知してメール等でアラート発信したりすることができます。

アーキテクチャとエコシステム

公式サイト Overview によるとPrometheusのアーキテクチャとエコシステムは下図の通りです。

Prometheusのアーキテクチャ
https://prometheus.io/docs/introduction/overview/ より

ただ、これは初めて見る人にとってはちょっと複雑かも知れません。

情報の流れ

上図は情報の流れにフォーカスすると、もう少し分かりやすくなると思います。

つまり、Prometheusが行うのは監視対象のシステムから「今どんな状態か」という情報を引っ張ってきて集約する、ということです。そして、その情報を必要に応じて別のツールに渡すことでグラフ化やアラート発信をしている、という流れです。

情報の流れだけざっと図示すると次のような感じになります。

なおアーキテクチャとエコシステムの図にもありますけれど、Prometheusを利用した監視では、グラフ化は Grafana が、アラート発信は Alertmanager が、それぞれ使われるようです。

それでは、これから監視対象のシステムがLinuxサーバであると仮定して、それにnode_exporterをセットアップする手順を説明します。

node_exporterのセットアップ

Linuxサーバに node_exporter にセットアップすると、ハードウェアやカーネルに関する情報、具体的にはCPUの使用率やディスクの使用量などをPrometheusから取得できるようになります。[1]

セットアップは次のような手順で行います。

ダウンロード

はじめに wgetcurl コマンドでnode_exporterをダウンロードします。例えば

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

あるいは

curl -OL https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

みたいな感じです。

展開と配置

圧縮ファイルを展開して適当に配置します。私は /usr/local/bin に置きました。

tar xzvf node_exporter-1.3.1.linux-amd64.tar.gz
cd node_exporter-1.3.1.linux-amd64
sudo mv node_exporter /usr/local/bin/

なお、実行ファイル node_exporter がある場所で

./node_exporter

と実行すると、普通に実行できます。

サービスの登録と実行

サービスとして登録しておけば、Linuxサーバの起動にあわせて自動で起動するので便利です。

実際にやってみましょう。

まず node_exporter を実行するユーザを作成し、実行ファイルの所有権を変更します。

sudo useradd -s /sbin/nologin node_exporter
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

続けてサービスファイルを作成します。

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

中身はGitHubの prometheus/node_exporter/examples/systemd を参考に次のようにしました。

[Unit]
Description=Node Exporter

[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

最後に、サービスを有効化して実行を開始します。

sudo systemctl daemon-reload
sudo systemctl enable node_exporter
sudo systemctl start node_exporter

以上で、PrometheusからLinuxサーバを監視できるようになりました。[2]

おわりに

Prometheusを利用した監視システムで、監視対象サーバにnode_exporterをセットアップする手順を紹介しました。どなたかのお役に立てば幸いです。

脚注
  1. 動作確認はUbuntu 20.04とCentOS 7の、2つのLinuxディストリビューションで行いました。 ↩︎

  2. Prometheus自体のセットアップは情報が多いように思いましたので、この記事では省略しました。 ↩︎

Discussion