Zabbix のダッシュボード代わりに grafana を使えるようにしてみる(その1)

Zabbix に関して言えば、このところずっと開発版を追っかけているわけですけど、ダッシュボードでグラフを表示させた後、グラフの自動再描画がかかっても、ずっと更新されずにいる、という状況が起きています。DB を MySQL から MariaDB に変えたタイミングぐらいから、のような気もするんですが、いまいち原因が判らずに困っているわけですが…。

それとは別に、 grafana というダッシュボードを統合できるツールがあるということで、コレを機会にちょっと使ってみようか思いまして、インストールしてみた次第。

kibana等でも使用されているOSSのダッシュボードツールです。zabbixだけでなく、ElasticsearchやGraphite、AWS CloudWatchなど複数のデータソースのものを可視化することができます。ライブデモもあるので、実際どういうものか気になったらまずは見てみてください。

[From grafanaを使用してzabbixのモダンなダッシュボードを簡単作成! - Catcher in the tech]

複数の Zabbix サーバのコンソールを統合できるようなので、そのあたりにも興味があったりしますし。

さくっとインストール

まず、 grafana 関連のパッケージがどれだけあるのか、チェック。

root@vps2:~# aptitude search grafana
p   grafana                                 - feature rich metrics dashboard and graph editor
p   grafana-data                            - feature rich metrics dashboard and graph editor -
p   grafana-zabbix                          - Zabbix datasource for Grafana

結果からみれば、 grafana-zabbix を指定してインストールすれば、依存関係の解消が行われるので、念のためシミュレーションモードで、どんなパッケージがインストールされるのかを確認。

root@vps2:~# aptitude -s install grafana-zabbix
以下の新規パッケージがインストールされます:
  adwaita-icon-theme{a} at-spi2-core{a} dconf-gsettings-backend{a} dconf-service{a}
  fonts-font-awesome{a} glib-networking{a} glib-networking-common{a}
  glib-networking-services{a} golang-1.7-go{a} golang-1.7-src{a} golang-go{a} golang-src{a}
  grafana{a} grafana-data{a} grafana-zabbix gsettings-desktop-schemas{a}
  gstreamer1.0-plugins-base{a} libatk-bridge2.0-0{a} libatspi2.0-0{a} libcairo-gobject2{a}
  libcdparanoia0{a} libcolord2{a} libdconf1{a} libepoxy0{a} libevdev2{a} libglew2.0{a}
  libgstreamer-plugins-base1.0-0{a} libgstreamer1.0-0{a} libgtk-3-0{a} libgtk-3-bin{a}
  libgtk-3-common{a} libgudev-1.0-0{a} libinput-bin{a} libinput10{a}
  libjs-jquery-metadata{a} libjs-jquery-tablesorter{a} libjs-twitter-bootstrap{a}
  libjson-glib-1.0-0{a} libjson-glib-1.0-common{a} libmtdev1{a} libproxy1v5{a}
  libqt5core5a{a} libqt5dbus5{a} libqt5gui5{a} libqt5network5{a} libqt5opengl5{a}
  libqt5printsupport5{a} libqt5qml5{a} libqt5quick5{a} libqt5sql5{a} libqt5sql5-sqlite{a}
  libqt5svg5{a} libqt5webkit5{a} libqt5widgets5{a} librest-0.7-0{a} libsoup-gnome2.4-1{a}
  libsoup2.4-1{a} libvisual-0.4-0{a} libwacom-bin{a} libwacom-common{a} libwacom2{a}
  libwayland-cursor0{a} libxcb-icccm4{a} libxcb-image0{a} libxcb-keysyms1{a}
  libxcb-render-util0{a} libxcb-util0{a} libxcb-xinerama0{a} libxcb-xkb1{a}
  libxkbcommon-x11-0{a} libxkbcommon0{a} mesa-utils{a} phantomjs{a}
  qt5-gtk-platformtheme{a} qttranslations5-l10n{a}
更新: 0 個、新規インストール: 75 個、削除: 0 個、保留: 96 個。
アーカイブの 79.5 MB を取得する必要があります。展開後に 346 MB のディスク領域が新たに消費されます。

注意: 'シミュレーション' モードを使用します。 先に進みますか? [Y/n/?] y パッケージのダウンロード/インストール/削除を行います。

今回、grafana のインストールを試みるサーバでは 75個のパッケージを追加することになるようですね。
あとは、シミュレーションモードを外して、"aptitude install grafana-zabbix" でインストール。

インストールが完了すると、grafana が自動的に起動、3000/tcp に web ブラウザでアクセスして、ログイン画面が表示されれば、まずは OK 。


root@vps2:~# lsof -i:3000
COMMAND   PID    USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
grafana 29368 grafana    6u  IPv6 44304948      0t0  TCP *:3000 (LISTEN)

のはずなんですが、ブラウザでアクセスしても、ウィンドウが黒く表示されるだけ。ログを見ても、特にエラーを吐いているわけでは無いのでインストールをしくじっているような感じではない…。

気を取り直して、やり直し

で、色々調べながら、grafana の公式サイトでチェックしてみたら、公式に配布されている deb パッケージは 4.0.2 で、 Debian に取り込まれているのが 2.6.0 。

root@vps2:~# aptitude show grafana
パッケージ: grafana
バージョン: 2.6.0+dfsg-3
状態: インストール済み
自動的にインストールされた: いいえ
優先度: 任意
セクション: web
メンテナ: Dmitry Smirnov 
アーキテクチャ: amd64
展開サイズ: 17.5 M
依存: init-system-helpers (>= 1.18~), libc6 (>= 2.3.2), libsqlite3-0 (>= 3.7.15), grafana-data
    (= 2.6.0+dfsg-3), golang-go, adduser, libfontconfig
説明: feature rich metrics dashboard and graph editor
 Grafana is a feature rich metrics dashboard and graph editor for Graphite, InfluxDB & OpenTSDB.

This package provides Grafana daemon. ホームページ: http://grafana.org

この辺に何か解決のヒントがあるのかも、ということで一旦インストール済みの grafana 2.6.0 をバッサリと削除してから、公式サイトの手順に従って、 grafana をインストールし直すことに。

削除して、公式サイトからパッケージをインストール

まず、インストール済みの grafana 2.6.0 をバッサリとアンインストール。

root@vps2:~# aptitude purge grafana grafana-zabbix
以下のパッケージが削除されます:
  at-spi2-core{u} dconf-gsettings-backend{u} dconf-service{u} fonts-font-awesome{u}
  glib-networking{u} glib-networking-common{u} glib-networking-services{u} golang-1.7-go{u}
  golang-1.7-src{u} golang-go{u} golang-src{u} grafana{p} grafana-data{u} grafana-zabbix{p}
  gsettings-desktop-schemas{u} gstreamer1.0-plugins-base{u} libatk-bridge2.0-0{u}
  libatspi2.0-0{u} libcairo-gobject2{u} libcdparanoia0{u} libcolord2{u} libdconf1{u}
  libepoxy0{u} libevdev2{u} libglew2.0{u} libgstreamer-plugins-base1.0-0{u}
  libgstreamer1.0-0{u} libgtk-3-0{u} libgtk-3-bin{u} libgtk-3-common{u} libgudev-1.0-0{u}
  libinput-bin{u} libinput10{u} libjs-jquery-metadata{u} libjs-jquery-tablesorter{u}
  libjs-twitter-bootstrap{u} libjson-glib-1.0-0{u} libjson-glib-1.0-common{u} libmtdev1{u}
  libproxy1v5{u} libqt5core5a{u} libqt5dbus5{u} libqt5gui5{u} libqt5network5{u}
  libqt5opengl5{u} libqt5printsupport5{u} libqt5qml5{u} libqt5quick5{u} libqt5sql5{u}
  libqt5sql5-sqlite{u} libqt5svg5{u} libqt5webkit5{u} libqt5widgets5{u} librest-0.7-0{u}
  libsoup-gnome2.4-1{u} libsoup2.4-1{u} libvisual-0.4-0{u} libwacom-bin{u}
  libwacom-common{u} libwacom2{u} libwayland-cursor0{u} libxcb-icccm4{u} libxcb-image0{u}
  libxcb-keysyms1{u} libxcb-render-util0{u} libxcb-util0{u} libxcb-xinerama0{u}
  libxcb-xkb1{u} libxkbcommon-x11-0{u} libxkbcommon0{u} mesa-utils{u} phantomjs{u}
  qt5-gtk-platformtheme{u} qttranslations5-l10n{u}
更新: 0 個、新規インストール: 0 個、削除: 74 個、保留: 1 個。
アーカイブの 0 B を取得する必要があります。展開後に 316 MB のディスク領域が解放されます。
先に進みますか? [Y/n/?] 

"Y" を押下して、アンインストールを実行したら、あとは公式サイトに記載さているインストール手順を基本として、進めていきます。

まずは、 /etc/apt/sources.list を編集して、以下を追記。

# grafana
deb https://packagecloud.io/grafana/stable/debian/ jessie main

apt リポジトリの公開鍵を追加。

root@vps2:~# curl https://packagecloud.io/gpg.key | apt-key add -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3889  100  3889    0     0   4652      0 --:--:-- --:--:-- --:--:--  4651
OK

ここまで出来たところで、パッケージDBの更新( aptitude update など)、grafana インストール、となります。

root@vps2:~# aptitude update
発見 http://debian-mirror.sakura.ne.jp/debian sid InRelease
無視 http://debian-mirror.sakura.ne.jp/debian stable InRelease
発見 http://debian-mirror.sakura.ne.jp/debian stable Release
無視 http://download.webmin.com/download/repository sarge InRelease
無視 http://download.owncloud.org/download/repositories/stable/Debian_8.0  InRelease
発見 http://download.webmin.com/download/repository sarge Release
発見 http://download.owncloud.org/download/repositories/stable/Debian_8.0  Release
取得: 1 https://packagecloud.io/grafana/stable/debian jessie InRelease [23.2 kB]
取得: 2 https://packagecloud.io/grafana/stable/debian jessie/main amd64 Packages [2,375 B]
25.6 kB を 5秒 秒で取得しました (4,549 B/s)

root@vps2:~# aptitude install grafana 以下の新規パッケージがインストールされます: grafana 更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 4 個。 アーカイブの 42.4 MB を取得する必要があります。展開後に 124 MB のディスク領域が新たに消費されます。 取得: 1 https://packagecloud.io/grafana/stable/debian jessie/main amd64 grafana amd64 4.0.2-1481203731 [42.4 MB] 42.4 MB を 5秒 秒で取得しました (7,785 kB/s) 以前に未選択のパッケージ grafana を選択しています。 (データベースを読み込んでいます ... 現在 173868 個のファイルとディレクトリがインストールされています。) .../grafana_4.0.2-1481203731_amd64.deb を展開する準備をしています ... grafana (4.0.2-1481203731) を展開しています... systemd (232-7) のトリガを処理しています ... grafana (4.0.2-1481203731) を設定しています ... ### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable grafana-server ### You can start grafana-server by executing sudo /bin/systemctl start grafana-server systemd (232-7) のトリガを処理しています ...

で、プロンプトまで戻ってくれば、インストールは完了。
で、ブラウザで http://hogehoge.example.jp:3000/ のように grafana をインストールしたホストにアクセス。

grafana ログイン画面

上のように表示されたら、初期アカントとパスワードでログイン出来ることを確認しておきます。

Zabbix との連携設定

で、今回の最大の目的である Zabbix との連携についてですが、 garafina 側に Zabbix にアクセスするためのプラグインをインストールする必要があります。

プラグインのインストールgrafana-cli を使えば良いとのことなのですが、まずはどんなプラグインがあるのかをチェック。

root@vps2:~# grafana-cli plugins list-remote
id: abhisant-druid-datasource version: 0.0.2
id: alexanderzobnin-zabbix-app version: 3.1.2
id: belugacdn-app version: 1.2.0
id: bosun-app version: 0.0.25
id: bosun-datasource version: 0.0.5
id: briangann-gauge-panel version: 0.0.1
id: btplc-alarm-box-panel version: 0.0.1
id: btplc-peak-report-panel version: 0.0.1
id: btplc-trend-box-panel version: 0.0.1
id: btplc-trend-dot-panel version: 0.0.1
id: crate-datasource version: 0.2.0
id: digiapulssi-breadcrumb-panel version: 1.0.0
id: fastweb-openfalcon-datasource version: 1.0.0
id: fetzerch-sunandmoon-datasource version: 0.1.1
id: foursquare-clouderamanager-datasource version: 0.9.2
id: grafana-belugacdn-app version: 1.1.0
id: grafana-clock-panel version: 0.0.8
id: grafana-example-app version: 1.0.1
id: grafana-influxdb-08-datasource version: 1.0.2
id: grafana-kairosdb-datasource version: 1.0.1
id: grafana-piechart-panel version: 1.1.4
id: grafana-simple-json-datasource version: 1.2.3
id: grafana-worldmap-panel version: 0.0.16
id: gridprotectionalliance-openhistorian-datasource version: 1.0.1
id: gridprotectionalliance-osisoftpi-datasource version: 1.0.0
id: hawkular-datasource version: 1.0.5
id: jdbranham-diagram-panel version: 1.4.0
id: kentik-app version: 1.1.0
id: monitoringartist-monitoringart-datasource version: 1.0.0
id: mtanda-heatmap-epoch-panel version: 0.1.7
id: mtanda-histogram-panel version: 0.1.6
id: neocat-cal-heatmap-panel version: 0.0.2
id: ns1-app version: 0.0.5
id: opennms-datasource version: 2.0.2
id: percona-percona-app version: 1.0.0
id: praj-ams-datasource version: 1.0.1
id: rackerlabs-blueflood-datasource version: 0.0.2
id: raintank-snap-app version: 0.0.4
id: raintank-worldping-app version: 1.2.0
id: ryantxu-ajax-panel version: 0.0.2
id: savantly-heatmap-panel version: 0.1.0
id: sileht-gnocchi-datasource version: 1.0.6
id: sraoss-sunburst-panel version: 1.0
id: stagemonitor-elasticsearch-app version: 0.26.0
id: udoprog-heroic-datasource version: 0.1.0
id: voxter-app version: 0.0.1

Restart grafana after installing plugins . <service grafana-server restart>

Zabbix と連携するためのプラグインは alexanderzobnin-zabbix-app なので、これをインストールします。
インストールもコマンド一発で終わり。

root@vps2:~# grafana-cli plugins install alexanderzobnin-zabbix-app
installing alexanderzobnin-zabbix-app @ 3.1.2
from url: https://grafana.net/api/plugins/alexanderzobnin-zabbix-app/versions/3.1.2/download
into: /var/lib/grafana/plugins

✔ Installed alexanderzobnin-zabbix-app successfully
Restart grafana after installing plugins . <service grafana-server restart>

インストールが終わったら、grafana を再起動から、Web ブラウザで garafana にログインします。

インストール直後のホーム画面(但しZabbix Appインストール済み)

"Installed Apps" のところに、おなじみのアイコンと Zabbix と表示されていれば、プラグインのインストールも無事に完了しています。

あとは、 Zabbix をデータソースとして grafana 側にグラフなどを設定していくわけですが、この先は別エントリーにて。

トラックバック(1)

とりあえず、インストールして Zabbix プラグインまでのインストールまで完了した状態になったわけですが、ここから... 続きを読む

コメントする