ASUSのNAS AS-202TEでPrometheusを動かす

だいたいこの記事を参考にした。DigitalOceanはサービスもさることながら、こういった記事を公開してくれるので好き。

www.digitalocean.com

AS-202TEにPrometheusを導入する

それ以前にAS-202TEにSSH接続できるようにする必要があるけど割愛。妙なことをしなくてもWebの画面からポチッとするだけでいいので楽。

今回はprometheusとnode_exporterを使用する。以下のURLからダウンロードすればよい。

prometheus.io

CPUアーキテクチャは386、OSはlinuxを選択する。ダウンロードしたら展開しておく。

$ wget https://github.com/prometheus/prometheus/releases/download/v1.4.1/prometheus-1.4.1.linux-386.tar.gz
$ wget https://github.com/prometheus/node_exporter/releases/download/v0.13.0/node_exporter-0.13.0.linux-386.tar.gz
$ tar xzf prometheus-1.4.1.linux-386.tar.gz
$ tar xzf node_exporter-0.13.0.linux-386.tar.gz

node_exporterを動かす

node_exporter はNode.jsの情報をエクスポートするものではなく、CPU使用率など、対象ノードの基本的なメトリクスをエクスポートしてくれるもの。

Prometheusで監視をしようとしたら必須で使うことになるものだと思う。

github.com

先に紹介した記事ではupstartで起動していたが、遊びでやるので雑に nohup する。

$ cd node_exporter-0.13.0.linux-386/
$ nohup ./node_exporter > node_exporter.log 2>&1 &

curl で動作確認しておくといいかも。

$ curl localhost:9100/metrics

prometheusを動かす

こちらは node_exporter と違って設定ファイルを編集する必要がある。

AS-202TEには vim が入っていないので vi で編集する。

$ cd prometheus-1.4.1.linux-386/
$ vi prometheus.yml

末尾に以下の行を追加する。これは先程起動した node_exporter からメトリクスを取得するためのもの。

# ...省略...
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

編集が終わったら、同梱の promtool で設定ファイルをチェックしておく。

$ ./promtool check-config ./prometheus.yml
Checking ./prometheus.yml
  SUCCESS: 0 rule files found

あとは prometheus を起動するだけ、これは先の記事でも nohup を使っていたので、そのまま利用する。

$ nohup ./prometheus > prometheus.log 2>&1 &

node_exporter と同じく、 curl で動作確認しておく。

$ curl localhost:9090/metrics

動作確認

http://AS-202TEのIPアドレス:9090/graph にアクセスすれば、以下のような画面が表示されるはず。

f:id:ariarijp:20161211203005p:plain

あとは公式ドキュメントなどを参考にいろいろいじってみる。

prometheus.io

感想

Go言語で書かれている監視ツール・監視エージェントはこれからも増えていきそう。クロスプラットフォームで動作し、かつシングルバイナリなのは強いですね。

監視ツールといえば、先日Mackerel Advent Calendar 2016の記事を書いたので、こちらもよろしくお願いします。

ariarijp.hatenablog.com

この記事ではNASにPrometheusをいれてみましたが、最近のNASVMも動いたりするみたいですね、欲しいけどおもちゃにするにはちょっと高いかな。