メトリクスの可視化をもうちょっとやりたくて prometheus と grafana をセットアップした。監視は mackerel でやってるのでやらない。
prometheus
Ubuntu の prometheus が古いので最新を自分でおく。/usr/local/prometheus にバイナリを置いていく。node_exporter も同様に /usr/local/node_exporter に置く。
lm /usr/local/{node_exporter*,prometheus*} lrwxrwxrwx 1 root root 28 7月 14 22:32 /usr/local/prometheus -> prometheus-2.3.2.linux-amd64/ lrwxrwxrwx 1 root root 32 7月 14 23:07 /usr/local/node_exporter -> node_exporter-0.16.0.linux-amd64/ /usr/local/node_exporter-0.16.0.linux-amd64: 合計 17M -rwxr-xr-x 1 cho45 cho45 17M 5月 16 00:53 node_exporter* -rw-r--r-- 1 cho45 cho45 463 5月 16 00:57 NOTICE -rw-r--r-- 1 cho45 cho45 12K 5月 16 00:57 LICENSE drwxr-xr-x 2 cho45 cho45 4.0K 5月 16 00:58 ./ drwxr-xr-x 14 root root 4.0K 7月 14 23:07 ../ /usr/local/prometheus-2.3.2.linux-amd64: 合計 111M -rwxr-xr-x 1 cho45 cho45 68M 7月 12 23:04 prometheus* -rwxr-xr-x 1 cho45 cho45 43M 7月 12 23:05 promtool* -rw-r--r-- 1 cho45 cho45 926 7月 13 00:04 prometheus.yml drwxr-xr-x 2 cho45 cho45 4.0K 7月 13 00:04 consoles/ drwxr-xr-x 2 cho45 cho45 4.0K 7月 13 00:04 console_libraries/ -rw-r--r-- 1 cho45 cho45 2.8K 7月 13 00:04 NOTICE -rw-r--r-- 1 cho45 cho45 12K 7月 13 00:04 LICENSE drwxr-xr-x 4 cho45 cho45 4.0K 7月 13 00:05 ./ drwxr-xr-x 14 root root 4.0K 7月 14 23:07 ../
systemd の設定を置く
/etc/systemd/system/prometheus.service
[Unit] Description=Prometheus service After=network.target [Service] ExecStart=/usr/local/prometheus/prometheus --config.file=/etc/prometheus/prometheus.yml --log.level=debug --storage.tsdb.path=/var/lib/prometheus Restart=always [Install] WantedBy=multi-user.target
/etc/systemd/system/node_exporter.service
[Unit] Description=Prometheus node_exporter After=network.target [Service] ExecStart=/usr/local/node_exporter/node_exporter Restart=always [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload sudo systemctl start prometheus sudo systemctl enable prometheus sudo systemctl start node_exporter sudo systemctrl enable node_exporter
grafana
http://docs.grafana.org/installation/debian/ に従ってインストール。Ubuntu のレポジトリのやつはなんかおかしくてアイコンとかが表示されないので使わないほうが無難。
deb https://packagecloud.io/grafana/testing/debian/ stretch main
grafana は初回起動時に admin/admin で入れる。適当にパスワードをかえておくこと。
grafana へのデータソース追加方法はここ
https://prometheus.io/docs/visualization/grafana/
h2o prometheus exporeter
h2o の status に内部アクセスして prometheus 形式にするやつを書いている人がいるので、これを使うとよさそう。
https://gist.github.com/yannick/31d3d8ea6bcc3553dd422aad9d0e4173
リバースプロキシ
prometheus は 9090、grafana は 3000 がデフォルトポート。フロントの http サーバーからリバースプロキシを適当に設定しておく。prometheus は認証もつけておく。grafana は認証機構があるためフロントでは認証をかけない。