Grafana で MariaDB のデータを扱ってみる

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

こんにちは。サイオステクノロジー OSS サポート担当 山本 です。

以前の投稿では Grafana を “時間” と “数値” を元にした「グラフを描くツール」として紹介しましたが、同時に MySQL 等の一般的な RDB もデータの参照元・データソースとして扱える、と紹介していました。

今回は、Grafana 上で RDB のデータがどのように扱えるかを MariaDB を例にして確認してみたいと思います。
今回は Grafana の導入等は扱わないので、Grafana の概要につきましては以下の投稿を参照してください。

Grafana を使ってみる

■Grafana と MariaDB の連携

まずは Grafana のデータソースとして MariaDB を扱えるようにしましょう。
早速 Grafana のデータソースを登録…する前に、MariaDB で Grafana からアクセスするためのユーザーを作成します。

例えば、localhost にある MariaDB の「sample」というデータベースを使用する場合、以下のようなコマンドを実行します。

MariaDB [(none)]> GRANT SELECT ON sample.* TO grafanaReader@localhost identified by 'password';

上記コマンドなどで MariaDB 側のユーザーを作成したら、Grafana のインターフェースで「Configuration – Data sources」から「MySQL」のデータソースを登録します。

1_add_datasource

登録画面では、以下の項目などを設定します。

Host:localhost:3306 (<MariaDB のあるホスト名:ポート>)
Database:sample (<使用する Database 名>)
User:grafanaReader (<MariaDB のユーザ名>)
Password:password (<MariaDB のパスワード>)

2_add_datasource_mysql

必要な項目を設定したら画面下部の「Save&Test」ボタンを押下し、設定の保存と疎通の確認を行ないます。
以下のような表示がでれば連携成功です。

3_gra_ds_prom_success

■MariaDB のレコードをグラフ表示してみる

さて、データソースが登録できたので、MariaDB のデータを使用してグラフを作成してみましょう。
ただし、勿論どんなデータでもグラフ化できるわけではありません。Grafana でグラフを作成できるのは「datetime 型か timestamp 型のカラム」と「数値型のカラム」を持つテーブルのみとなります。

今回はサンプルとして、以下のようなテーブルとデータを用意しました。

4_sampledata_11
4_sampledata_2

早速、これらのデータをグラフ表示させてみます。
Create – Dashboard」または「Dashboards – Manage」でダッシュボード編集画面を開き、新規パネルの「Add Query」から設定を行います。

5_gra_dash_add

開いたページの一番上の項目「Query」の項目に MariaDB のデータソースを設定すると、A (クエリ入力項目) の入力項目がクエリビルダというものに変化します。
このクエリビルダで以下の項目を入力すると、グラフを表示することができます。

FROM<テーブル名>
Time column<datetime 型か timestamp 型のカラム名>
SELECT<グラフ表示したい数値データのカラム>
Format asTime series

6_gra_pannel_setting

また、「Metric column」に任意のカラムを入力することで、そのカラムの内容ごとにグラフを分けることができます。
同テーブル内に複数系列のデータが存在していて、その系列ごとに別のグラフを描きたいという場合などに活用することができます

7_gra_pannel_setting2

■MariaDB のレコードを表示してみる

さて、先に確認したとおり Grafana でグラフ化できるのは「時間の要素を持つ数値データ」のみです。
じゃあ Grafana ではグラフ化できない文字列データを表示することはできないのか、というと、実は単純にクエリの結果を表示する機能もあったりします。
その方法を簡単に確認してみましょう。

まず、新規パネルを作成し、右側の「Choose Visualization」からパネルの設定画面に移ります。
この画面ではパネルの表示形式を設定することができますが、ここで “Table” を選択します。

10_gra_pannel_visualization

次に画面左の「Queries」タブに移動します。
すると、A (クエリ入力項目) の入力項目が通常のテキストボックスになっているので、ここに任意のクエリを入力します。

A<任意のクエリ>
Format asTable

8_gra_pannel_visualization

するとご覧のとおり、クエリの結果がパネルの情報として表示されるようになります。

もしダッシュボード上で表示している時間のデータのみを表示させたい場合、そのテーブルに datetime 型のカラムがあれば A (クエリ入力項目) の WHERE 句に「$__timeFilter(<datetime 型のカラム>)」を設定することでダッシュボード上の表示時間と連動するようにすることができます。

■最後に

今回は Grafana で MariaDB のレコードを表示する方法を見てきました。

グラフ化できるのは特定のデータ型を持つレコードのみですが、単純に任意のクエリの結果を表示させることもできるので、データベース上のデータを監視対象としたい場合にも Grafana を活用することで効率よく監視することができそうです。

MariaDB を Grafana で扱う際の詳細な情報につきましては公式ドキュメントを参照してください。

なお、グラフの設定でクエリビルダを使いたくない場合、あるいはテーブルの設定でもクエリビルダを利用したい場合は、Queries タブの A (クエリ) 項目の右のメニュー「Toggle text edit mode」から入力モードを切り替えることもできます。

9_gra_pannel_toggle

アバター画像
About 山本 53 Articles
元サーバサイドエンジニアのサポートエンジニア。「物事は理解できれば活路が見出せる可能性がある」という信条のもと、今日も石橋を叩く。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる