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

ということで、前回からの続きです。

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

[From Zabbix のダッシュボード代わりに grafana を使えるようにしてみる(その1) - Soukaku's HENA-CHOKO Blog]

とりあえず、インストールして Zabbix プラグインまでのインストールまで完了した状態になったわけですが、ここからもう少し設定をいじっていきます。

バックエンドのデータベースを MariaDB に変更

インストールした素のままだと、バックエンドに使っているデータベースは sqlite3 が使われるようになっているのですが、ここを MariaDB (or MySQL) に変更してみます。もちろん、必須ではないですけどね。

まず、 MariaDB に grafana 用の grafana というデータベースを作成。そこに、 session という名前のテーブルをひとつだけ作成します。

soukaku@vpsdb:~$ mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 731303
Server version: 10.0.28-MariaDB-2 Debian unstable

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database grafana character set utf8; Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> grant all privileges on grafana.* to grafana identified by '**********'; Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> use grafana Database changed MariaDB [grafana]> create table `session` ( `key` char(16) not null, `data` blob, `expiry` int(11) unsigned not null, primary key (`key`) ) ENGINE=MyISAM default charset=utf8; Query OK, 0 rows affected (0.01 sec)
MariaDB [grafana]> show tables; +-------------------+ | Tables_in_grafana | +-------------------+ | session | +-------------------+ 1 row in set (0.01 sec)
MariaDB [grafana]> quit Bye

session テーブルを作る必要がある点は、ドキュメントに記載されてますので、それも参考に。データベースへのアクセス権の設定は、各自調べてください。
今回のうちの環境では、grafanaが稼働するサーバと、DB サーバを別にしているので、そのあたりにも注意。


次に、grafana 側の設定で MairaDB を使うように設定を変更します。
/etc/grafana/grafana.ini の 73 行目辺りに、MySQL を使う時の設定のサンプルがあるので、それに従って作成した DB 名やアクセス権を持つユーザの情報を記述することで、 sqlite3 から MariaDB にバックエンドが切り替わります。

root@vps2:~# diff -u /usr/share/grafana/conf/sample.ini /etc/grafana/grafana.ini
--- /usr/share/grafana/conf/sample.ini	2016-12-08 22:26:18.000000000 +0900
+++ /etc/grafana/grafana.ini	2016-12-13 21:33:24.620193899 +0900
@@ -73,7 +73,7 @@

# Use either URL or the previous fields to configure the database # Example: mysql://user:secret@host:port/database -;url = +url = mysql://grafana:**********@192.168.0.2:3306/grafana

修正が終わったら、 grafana を起動(もしくは再起動)すると、自動的に MariaDB にある データベース grafana の初期化が行われ、必要なテーブルが作成されます。
DB サーバ側で生成されたテーブルを表示してみると、以下の通り。

root@vpsdb:~# mysql -ugrafana -p********** grafana
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 731931 Server version: 10.0.28-MariaDB-2 Debian unstable
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [grafana]> show tables; +--------------------+ | Tables_in_grafana | +--------------------+ | alert | | alert_notification | | annotation | | api_key | | dashboard | | dashboard_snapshot | | dashboard_tag | | data_source | | migration_log | | org | | org_user | | playlist | | playlist_item | | plugin_setting | | preferences | | quota | | session | | star | | temp_user | | user | +--------------------+ 20 rows in set (0.00 sec)
MariaDB [grafana]> quit Bye

これで、ダッシュボードにログインできれば、完了です。

Grafana ホーム画面

データソースに Zabbix を指定する

さて、ここから grafana に Zabbix をデータソースとして利用するための設定をしていきます。

ログインしたら、 Plugins メニューから Plugins 画面を表示して、 Apps タブをクリックすると、Zabbix App が表示されるので、その部分をクリックします。

Grafana Plugins画面(APPタブクリック後)

クリックすると Zabbix App の詳細が表示されますが、有効化をしないとプラグインとして機能しないので、 Enable のボタンをクリックして有効化しましょう。

Grafana Plugins画面(Zabbix App)

これは、Zabbix App の追加後にバックエンドの DB を MariaDB に変更した関係で無効化状態になっているだけで、通常であれば下の画像のように Update と Disable のボタンが表示された状態になっています。

Grafana Plugins画面(Zabbix App有効状態)

次に、Data Sources メニューから Data Sources 画面を表示します。ここで、画面右上の Add Data Souces ボタンをクリックして、データストアとして Zabbix が利用できるように設定します。

Grafana DataSources画面

設定例は、以下の通り。

Grafana Zabbix サーバをデータソースとして追加

上から、必要な項目に入力またはプルダウンから選択していきます。

  • Name → 任意の名前で入力
  • Type → プルダウンから Zabbix を選択
  • Http Settings
    • Url → データソースにしたい Zabbix の api_jsonrpc.php へのURLを記述(例: http://example.jp/zabbix/api_jsonrpc.php )
    • Access → プルダウンから Direct を選択
  • Zabbi API details
    • Username → Zabbix API にアクセスする際のユーザ名。既存のGUIへのログインユーザでも可
    • Passward → 上記ユーザのパスワード

必要項目の入力が終わったら、 Add ボタンをクリック。ここで入力ミスなどがなければ、指定の Zabbix サーバの api_jsonrpc.php にgrafana からアクセスが行われ、動作中の Zabbix のバージョンが表示されます。

Grafana Zabbix をデータソースとして追加に成功

と、ここまで終われば、grafana を Zabbix のダッシュボードとして利用する準備が完了です。他の Zabbix サーバを追加したければ、追加したい Zabbix サーバの api_jsonrpc.php へアクセスするようにデータソースに追加すれば、OK。

あとは、grafana のダッシュボードに表示させたいデータを登録する作業をやっていくわけですが、Zabbix App をインストールすると、合わせてダッシュボードのテンプレートデータがインストールされるので、それをベースにやってみるのがとっかかりとしては良いかもしれませんね。

Grafana ダッシュボードの設定例

とりあえず、こんな感じで使えるようになる、というお話でした。

トラックバック(0)

コメントする