概要

Prometheusでサーバの監視をする際に、node_exporterを使っているという人は、多いのではないでしょうか。

Prometheusの特性上、Kubernetesなどを使い、Dockerのコンテナとして使うため、直接サーバにインストールするということは少ないかもしれません。

しかし、Dockerを使うのではなく、直接サーバにインストールして使いたいということもあると思います。

ここでは、直接サーバにインストールする方法を紹介します。

環境

  • Ubuntu 16.04
  • node_exporter 0.15.2

OSとして、Ubuntuを使いますが、CentOSなどのRedHat系のOSでも同じような方法でできます。

インストール

バイナリが用意されているのでそのバイナリを使います。

次のGitHubのリリースページから必要なバイナリをインストールしてきましょう。

github.com/prometheus/node_exporter/releases

通常は「node_exporter-バージョン-linux-amd64.tar.gz」という名前のバイナリをダウンロードしてくれば大丈夫です。

wget node_exporter-バージョン-linux-amd64.tar.gz

ダウンロードが終わったら、次のコマンドで解凍します。

tar -zxvf node_exporter-バージョン-linux-amd64.tar.gz

解凍して出てきたディレクトリの中に移動します。

cd node_exporter-バージョン-linux-amd64

次に解凍されたディレクトリに含まれているnode_exporterというバイナリファイルを適切な場所に移動します。

mv node_exporter /usr/local/bin

あとは、systemdにnode_expoterを登録して起動します。

登録のために/usr/lib/systemd/system/node_exporter.serviceというファイルを作成し、次の内容を書きます。

[Unit]
Description=Node Exporter

[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter
PrivateTmp=false

[Install]
WantedBy=multi-user.target

Ubuntuの場合、systemというディレクトリはない場合があるので、その時は次のコマンドでsystemディレクトリを作成してください。

mkdir /usr/lib/systemd/system

ファイルの作成が終わったら、次のコマンドでファイルを読み込みます。

systemctl daemon-reload

node_exporterをsystemdから起動するための設定が終わったので起動します。

systemctl start node_exporter.service

サーバの9100番ポートにアクセスすれば、メトリクスの取得ができます。

最後に、お好みでサーバの起動時に自動で起動するように設定しましょう。

systemctl enable node_exporter.service

さいごに

正直、結構面倒だと思いました。