【Grafana】利用可能なデータソースと、そのデータを可視化する方法をご紹介

[Grafana](https://grafana.com/)は、モニタリングや分析を行うための一般的なツールです。ダッシュボードを構築して、データを可視化、クエリ、分析したり、特定の条件のアラート通知を設定したりすることができます。最初から始めるには、[【Grafana】基礎から応用まで、これで網羅！](https://qiita.com/MetricFire/items/f7ac1c9edf33eac48772)の記事と、[Grafanaを基礎から解説 〜実際に導入までしてみる〜](https://qiita.com/TomoEndo/items/bbf10dbd60c6b85ccee0)の記事をチェックしてください。この記事では、最も人気のあるGrafanaデータソースとその使用方法について詳しく説明します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/176de155-c217-2728-f5d2-515f471e2570.png)


まずは[MetricFire](https://try.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Grafana%20Data%20Sources)の[無料トライアル](https://www.hostedgraphite.com/accounts/signup-metricfire/?signup=japan&utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Grafana%20Data%20Sources)にサインアップして、インストールや設定なしで利用できるホスト型Grafanaサービスをご利用ください。この[無料トライアル](https://www.hostedgraphite.com/accounts/signup-metricfire/?signup=japan&utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Grafana%20Data%20Sources)では、ブラウザで直接Grafanaを使用することで、この記事の内容をフォローすることができます。 

#データソースとは
Grafanaでは、データを扱う際に、そのデータがデータベースに保存されている必要があります。データベースにはいくつかの種類があり。MetricFireのHosted Graphiteを使用するなど、他のシステムを使用してデータを保存することもできます（データの保存が主な目的ではありませんが）。

Grafanaデータソースとは、Grafanaがデータを引き出すことができる場所のことです。言い換えれば、データを分析するためにGrafanaにデータを読み込む必要はありません。その代わり、Grafanaとデータソースの間に接続を作成する必要があります。Grafanaは、接続されたデータソースと連携して、そこに保存されているデータを分析し、いくつかの洞察を導き出し、モニタリングを実行することが出来るのです。

#Grafanaでデータソースを追加する方法
Grafanaでデータソースを追加するには、右上の歯車のアイコン（設定メニュー）にカーソルを合わせて、「データソース」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/745fad37-376d-bfaf-9e45-7fd0718b1508.png)

ConfigurationメニューのData Sourcesセクションで、Add data sourceボタンを押します。下のスクリーンショットでは、Hosted GraphiteやMetricfire-Prometheusなどのデータソースがすでに追加されていることがわかります。Grafanaをローカルに新しくインストールした場合は、データソースを追加するまでここにはデータソースが表示されません。普通、この画面において接続されているすべてのデータソースを確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/b86fcee8-cbfa-8c3b-79a4-fd542b90f760.png)

Add data sourceボタンをクリックすると、接続可能な公式にサポートされているデータソースの一覧が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/362c5066-8302-ba8b-5495-4592a7764e46.png)

希望するデータソースを選択し、クリックします。次のステップでは、必要なパラメータ（URL, authorization details, namesなど）を指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/f5776d94-0a54-ed5a-b448-e127768c516e.png)

必要なパラメータの入力が終わったら、「Save ＆Test」ボタンを押すことを忘れないでください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/d04cce6c-5c15-7721-46c6-feb75e46a4d0.png)

Grafanaが接続を確立すると、対応するメッセージが表示されます。その後、ダッシュボードセクションに移動して、接続されたデータソースのデータの探索を開始することができます。

#Grafanaの人気データソース
ここでは、Grafanaで「箱から出して」利用できるデータソースを調査し、簡単に説明しましょう。これらのデータソースは、いくつかの主要なグループに分けることができます。

##クラウドデータソース
このグループでは、巨大なクラウドプロバイダーからの監視ソリューションを見つけることができます。

####AWS CloudWatch
[CloudWatch](https://aws.amazon.com/cloudwatch/)は、アプリケーションとリソースを監視するためのツールです。クラウドベースのソリューションとオンプレミスの両方で動作します。

####Azure Monitor
[Azure Monitor](https://azure.microsoft.com/services/monitor/#product-overview)は、Microsoftが提供する監視ソリューションです。アプリケーション、インフラ、ネットワークをトラッキングするサービスを提供しています。

####Google Stackdriver
[Stackdriver](https://cloud.google.com/stackdriver)は、Googleが提供する類似の監視サービスです。

##SQLデータソース
このグループでは、最も人気のあるリレーショナルデータベースを見ることができます。

####PostgreSQL
高度なオブジェクトリレーショナルデータベースです。他の類似の機器にはない多くの機能を提供します。[PostgreSQL](https://www.postgresql.org/)でタイムスタンプ付きのデータを持っている場合、このプラグインを使ってGrafanaで可視化することができます。

####MySQL
おそらく現在最もポピュラーなリレーショナルデータベースです。ここでも[MySQL](https://www.mysql.com/)の時系列データをGrafanaで効果的に可視化することができます。

####Microsoft SQL Server
[MS SQL Server](https://www.microsoft.com/sql-server/sql-server-2019)は、PostgreSQLやMySQLと並んで、リレーショナルデータベース第三の人気ツールです。

##時系列データベース
Grafanaのモニタリングや可視化には時系列データが最適です。

####InfluxDB
時系列データを格納するための最もポピュラーなデータベースの一つ。InfluxDBは、時系列データを収集、保存、分析するためのツールのコレクションであるTICKスタックの一部です。クロノグラフはGrafanaと同じ役割を果たすTICKスタックのツールですが、Grafanaの方が柔軟性が高く汎用性の高いソリューションと考えられています。

####Prometheus
[Prometheus](https://prometheus.io/)は、よく知られた時系列データベースとモニタリングツールです。Prometheusは、タグ付け、モニタリング、クエリ機能を備えた時系列データベースです。Metricfireでは、簡単にインストール、設定、利用ができるように、[Hosted Prometheus](https://try.metricfire.com/japan/)として提供しています。

####Graphite
Graphiteは便利な監視ツールです。オンプレミスでもクラウドでもインストールできます。Graphiteの時系列データベースはクラスタネイティブではなく、Prometheusほど汎用性の高いタグ付け機能はありません。 しかし、MetricFireの[Hosted Graphite](https://try.metricfire.com/japan/)サービスは、オープンソースのプロジェクトを拡張し、現在では以下の機能を提供しています。

####OpenTSDB
[OpenTSDB](http://opentsdb.net/)は、スケーラブルな時系列データベースとモニタリングシステムです。

##ロギングデータベースとドキュメントデータベース。

####Elasticsearch
[Elasticsearch](https://www.elastic.co/)はNoSQLデータベースとしても利用できる強力な検索エンジンです。

####Loki
[Loki](https://grafana.com/oss/loki/)はGrafanaのログ集計システムです。


##その他
他にも公式にサポートされているデータソースはいくつかあります。

- SimpleJson
- Logz.io
- テストデータDB

#コミュニティ主導のGrafanaの人気データソース
人気のあるコミュニティ主導型のデータソースを説明してみましょう。

####Cloudera Manager

[Cloudera Manager](https://www.cloudera.com/products/product-components/cloudera-manager.html)は、Apache Hadoopを管理するためのツールです。監視やレポート作成のための機能も提供しています。このプラグインを使用してCloudera ManagerをGrafanaに接続し、Hadoopクラスタから収集したデータを使用してダッシュボードを構築することができます。

####Consul

[Consul](https://www.hashicorp.com/products/consul/)は、クラウドサービスを接続し、セキュリティを確保するためのソリューションです。これにより、静的なアーキテクチャから動的なアーキテクチャへの移行を支援します。Consulは、接続されたサービスの健全性とパフォーマンスを反映するメトリクスを収集し、Grafanaで監視することができます。

####Druid

[Apache Druid](https://druid.apache.org/)はリアルタイム分析データベースです。コミュニティがサポートするプラグインを使用すると、GrafanaからApache Druidに保存されているデータにアクセスすることができます。

####Google BigQuery

[Google BigQuery](https://cloud.google.com/bigquery)は、データの信頼性の高い保存と効率的なアナリティクスを可能にするクラウドデータウェアハウスとして知られています。

####Googleカレンダー

このプラグインを使うと、Googleカレンダーで予定されているイベントの情報にアクセスすることができます。各イベントについては、開始時刻と終了時刻があり、これが時系列ビューへの変換を行う方法です。

####IBM APM

[IBM Cloud Application Performance Management](https://www.ibm.com/ru-ru/marketplace/application-performance-management)は、アプリケーションの監視を可能にします。このプラグインを使用すると、GrafanaでIBM APMからメトリクスを収集し、可視化することができます。

####Oracle Cloud Infrastructure

このプラグインを使用すると、[Oracle Cloud Infrastructure Monitoring ツール](https://docs.cloud.oracle.com/en-us/iaas/Content/Monitoring/Concepts/monitoringoverview.htm)に対してクエリを実行することができます。

####ClickHouse

[ClickHouse](https://clickhouse.tech/)はオープンソースのカラム指向データベースで、ウェブ解析やゲームソフトなどでイベントに関する情報を保存するためによく使われています。イベント（例えば、ユーザーのクリックなど）は通常、日付-時間フィールドを持っているので、時系列データに変換してGrafanaで分析することが可能です。

####Finance

このプラグインは、金融データを提供している[Quandl API](https://www.quandl.com/tools/api)からデータを取得するために開発されたプラグインです。金融データは時系列のデータが多いので、Grafanaで簡単に利用することができます。

####DarkSky

[DarkSky API](https://darksky.net/dev)は、天気の状況や将来の予報に関する過去の情報を提供します。このプラグインを使用すると、Grafanaの天気を監視することができ、多くのアプリケーションやユースケースで非常に重要になる可能性があります。

ちなみに、他にも多くのコミュニティ主導のデータソースプラグインがありますので、上記のリストはほんの一部です。また、開発者は常に新しいデータソースを作成し、コミュニティで利用できるようにしています。そのため、特定のデータソースが必要な場合は、コミュニティがサポートしているデータソースプラグインのページを常にチェックしておくと良いかもしれません。

#サードパーティのデータソースのインストール
覚えていると思いますが、データソースの追加ボタンをクリックすると、公式にサポートされているデータソースの一覧が表示されます。ページを下にスクロールすると、「Find more data source plugins on grafana.com」というリンクが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/f0115d89-4eef-7560-199b-e68e28779037.png)

このリンクをたどると、利用可能なプラグインのページが表示されます（左側に選択メニューが表示され、プラグインの種類をデータソースとして表示しています）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/bdafc3ce-f90a-dbc3-841b-a6ee4e5537c4.png)

公式にサポートされているプラグインは「by Grafana Labs」と表記され、コミュニティでサポートされているプラグインは開発者の名前が表示されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/65a491c5-1154-cdf1-47d8-c1f7b4b5732d.png)

ここで提供されているデータソースのいずれかをクリックすると、プラグインの詳細とインストール情報のページに入ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/f3086eaa-42e1-c7d1-0061-007857ba0973.png)

プラグインをインストールすると、Grafana UIの利用可能なデータソースのリストにデータソースが表示されるはずです。

プラグインのインストールに関する詳細な説明は、[こちら](https://grafana.com/docs/grafana/latest/plugins/installation/)を参照してください。

#カスタムデータソースの作成
公式にサポートされているものやコミュニティが提供しているものの中から必要なデータソースが見つからない場合は、独自のデータソースを作成することができます。クライアントとの通信にHTTPプロトコルを使用しているデータベースであれば、どんなものでもカスタムプラグインを作成することができます。プラグインは、データベースからのデータを時系列データに変換して、Grafanaがダッシュボードのビジュアライゼーションで正しく表現できるようにする必要があります。

新しいデータソース用のプラグインを開発するには、3つのコンポーネントが必要です。

- データソースJavaScriptオブジェクト（データベースとの通信と保存データの変換を担当します)
- QueryCtrl JavaScript クラス (ダッシュボードのパネルでメトリクスを編集するためのもの)
- ConfigCtrl JavaScriptクラス(このタイプの新しいデータソースの設定を行うため、またはユーザーが編集するため)

カスタム・データ・ソースの作成については、この[ドキュメント](https://grafana.com/docs/grafana/latest/plugins/developing/datasources/)を参照してください。

#まとめ
この記事では、Grafanaのデータソースを調査し、それらを利用する方法を説明しました。また、公式にサポートされている人気の高いデータソースや、コミュニティ主導のプラグインについても説明しました。最後に、サードパーティ製のデータソースをインストールし、独自のデータソースを作成するプロセスを紹介しました。

モニタリングやデータ分析のニーズにGrafanaを利用したいとお考えの方は、[MetricFire](https://try.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Grafana%20Data%20Sources)のGrafana as a Serviceの14日間の[無料トライアル](https://www.hostedgraphite.com/accounts/signup-metricfire/?signup=japan&utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Grafana%20Data%20Sources)があることをお忘れなく。ご不明な点がございましたら、sales@metricfire.com までご連絡ください。

それでは、次の記事で！