Prometheusの監視対象サーバにnode_exporterをセットアップする手順
この記事では、Prometheusを利用した監視で、監視対象サーバにnode_exporterをセットアップする手順を紹介します。
はじめに
Prometheus はシステムの監視やアラート発信などを助けてくれるツールです。
Prometheusを利用した監視システムを構築することで、サーバ状態を監視したり、サーバダウンのような異常を検知してメール等でアラート発信したりすることができます。
アーキテクチャとエコシステム
公式サイト Overview によるとPrometheusのアーキテクチャとエコシステムは下図の通りです。
https://prometheus.io/docs/introduction/overview/
より
ただ、これは初めて見る人にとってはちょっと複雑かも知れません。
情報の流れ
上図は情報の流れにフォーカスすると、もう少し分かりやすくなると思います。
つまり、Prometheusが行うのは監視対象のシステムから「今どんな状態か」という情報を引っ張ってきて集約する、ということです。そして、その情報を必要に応じて別のツールに渡すことでグラフ化やアラート発信をしている、という流れです。
情報の流れだけざっと図示すると次のような感じになります。
なおアーキテクチャとエコシステムの図にもありますけれど、Prometheusを利用した監視では、グラフ化は Grafana が、アラート発信は Alertmanager が、それぞれ使われるようです。
それでは、これから監視対象のシステムがLinuxサーバであると仮定して、それにnode_exporterをセットアップする手順を説明します。
node_exporterのセットアップ
Linuxサーバに node_exporter にセットアップすると、ハードウェアやカーネルに関する情報、具体的にはCPUの使用率やディスクの使用量などをPrometheusから取得できるようになります。[1]
セットアップは次のような手順で行います。
ダウンロード
はじめに wget
や curl
コマンドで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をセットアップする手順を紹介しました。どなたかのお役に立てば幸いです。
Discussion