AzureのデータをGraphiteとGrafanaを利用して"可視化"する方法

#目次
1. はじめに
2. Azureとは
3. Azureクラウドの開始
4. Azure Monitorデータソースの構成
5. Azure Active Directoryの概要
6. Hosted GraphiteおよびGrafanaとのAzure統合の追加された利点
7. まとめ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/c99883fe-2240-c74a-d55f-f8aeb15c73f5.png)


#1. はじめに

この記事では、AzureデータソースをGraphiteおよびGrafanaと統合する方法について説明していきます。 これにより、Azureクラウドで保管されているアプリケーションのメトリックをGrafanaダッシュボードで監視できます。 また、Azure Active Directoryを[MetricFire](https://try.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Azure%20Integration%20with%20Graphite%20and%20Grafana)のHosted GraphiteおよびHosted Grafanaと統合する方法についても説明します。

この記事を理解するために、Azureで完全に機能するクラウドサービスを実行する必要はありませんが、Azureクラウドの基本的な知識があることを前提としています。

この記事を読み進めるに当たって、MetricFireの[無料トライアル](https://www.hostedgraphite.com/accounts/signup-metricfire/?signup=japan&utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Azure%20Integration%20with%20Graphite%20and%20Grafana)にサインアップする必要があります。


#2. Azureとは

Azure Cloudは、クラウドアプリケーションを構築およびデプロイするための最も人気のあるプラットフォームの1つです。 Azureは、コンピューティング、ストレージ、コンテンツ配信ネットワーク（CDN）、ドメインネームサービス（DNS）、ブログストレージ、キューメッセージングなど、クラウドサービスのすべての主要な機能を提供しています。 また、2010年に開始されたAzureには、世界中に複数のデータセンターを保持しています。

Azureには、Azure Monitorと呼ばれる組み込みの監視製品がありますが、その視覚化とカスタマイズはGrafanaほど強力ではありません。 そのため、Azure MonitorはAzureクラウドに組み込まれていますが、多くのユーザーがモニタリングおよび視覚化ソリューションとしてGrafanaを好む傾向があります。

もう1つの側面は、Azure Monitorの価格です。 GrafanaとGraphiteは無料のオープンソースソリューションですが、Azure Monitorは専用ソフトウェアのカテゴリに分類されます。

#3. Azureクラウドの開始

まだAzureの使用を開始していない場合は、[https：//portal.azure.com/](https://portal.azure.com/)で新しいアカウントにサインアップします。 2020年6月の時点で、Azureは30日間200ドルのクレジットと12か月間の無料製品を提供します。 唯一の問題は、このオファーに含まれる無料の製品が[一部の製品に制限](https://azure.microsoft.com/en-in/free/)されており、Azure Monitorが含まれていないことです。 Azureモニターは主要な製品であり、この記事で後ほど取り上げます。

ログインすると、次のようなホーム画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/3055bb04-6817-350e-87dc-fccf2e3e5788.png)

次に、AzureクラウドでGrafanaをプロビジョニングします。 [Create a resource]をクリックして、AzureクラウドにGrafanaインスタンスをプロビジョニングします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/2f22ff2c-764d-1120-a68d-09686294f851.png)

VMのユーザー名とパスワード、Grafanaサーバーの管理者パスワードなどの詳細を入力します。 適切なVMサイズ、ストレージアカウント、デフォルトのネットワーク構成設定を選択して、[Create]をクリックします。

AzureクラウドでVMがプロビジョニングされると、ブラウザーで[http：// <VM IPAddress>：3000](http://%3Cvm%20ipaddress%3E:3000/)を使用してGrafana仮想マシンにログインできるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/20085c50-aaae-0c68-aecc-719fd650e857.png)

#4. Azure Monitorデータソースの構成

Azureモニターデータソースには、サービスプリンシパルなどのいくつかの構成オプションが必要です。 Azureクラウドアプリケーションでサービスプリンシパルをプロビジョニングしていない場合は、[こちらの手順](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal)に従ってプロビジョニングします。 これにより、テナントID、アプリケーションID、クライアントシークレットが提供されます。

Application Insightsを使用する場合は、アプリケーションIDとAPIキーも必要です。 まだ行っていない場合は、[こちらの手順](https://dev.applicationinsights.io/documentation/Authorization/API-key-and-App-ID)に従ってこれらをプロビジョニングしてください。

すべての詳細を入力したら、データソースの設定を保存してみましょう。 これで、Azureモニターのメトリックを使用してGrafanaダッシュボードを作成する準備ができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/e4b7b9d1-fa40-8823-e22a-8015dbaae286.png)

Grafanaホームページに移動して、新しいAzure Monitorデータソースを使用して新しいダッシュボードを作成してみましょう。 データソースとしてAzure Monitorを選択すると、ダッシュボードにメトリックをプロットするメトリックを指定するために提供される多くのオプションがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/ecb8a1e3-dad7-bfcc-49bb-477081df3c05.png)

これらのほとんどは自明です。 ここで注意すべき重要な点の1つは名前空間です。 VMとして、Microsoft.Compute / virtualMachines namespaceを選択してください。

同様に、ネットワークとストレージの名前空間は、それぞれMicrosoft.Network/networkInterfacesとMicrosoft.Storage/storageAccountsになります。 名前空間とそれに関連するメトリックの完全なリストは、[この記事](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/metrics-supported)でAzureによって提供されます。 これらの使用可能なメトリックを使用して、ホストメトリックとアプリケーションメトリックの両方をGrafanaダッシュボードにプロットする便利なダッシュボードを作成できます。

たとえば、次のダッシュボードはVMのCPU使用率を示し、右側のダッシュボードはAzure Storageでリアルタイムに発生しているトランザクションの数を示しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/4f7cb200-64c4-7cbe-e255-a3c5ed6793cc.png)

同様に、以下に示すように、さまざまなAzureメトリックを測定する複数のタイプの視覚化をGrafanaダッシュボードに組み合わせることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/145c3d5b-54c5-1c36-04e7-58e96287c92d.png)

ここで注目すべきもう1つの興味深い点は、Azure Monitorでのみサポートされているメトリックを視覚化することに限定されないことです。 AzureクラウドでホストされているカスタムアプリケーションメトリックをGraphiteにプッシュし、それらを視覚化するためにGrafanaでGraphiteデータソースを構成することもできます。 [Node.jsモニタリング用のGraphite](https://www.metricfire.com/blog/graphite-for-node-js-monitoring)や、[GraphiteとGrafana](https://qiita.com/TomoEndo/items/046773b62a1bd427d8a2)などの記事を参照して、アプリケーションに同じ設定を行ってください。

監視されたメトリックの値が許容範囲外の場合、これらのダッシュボードにアラートを設定することもできます。 そのような高度なダッシュボードの作成方法の詳細については、[【Grafana】基礎から応用まで、これで網羅！](https://qiita.com/MetricFire/items/f7ac1c9edf33eac48772)をご覧ください。

#5. Azure Active Directoryの概要
上記の統合では、お気づきの方もいらっしゃると思いますが、Grafanaが提供するログインメカニズムを使用しています。 理想的には、ほとんどのエンタープライズアプリケーションはシングルサインオン（SSO）規則に従っています。つまり、ユーザーがエンタープライズ資格情報で認証されると、ユーザーはGrafanaを含む他の場所に資格情報を入力する必要がなくなります。

ここで、Azure Active Directoryが登場します。 Azure Active Directoryを使用すると、組織は複数のサービスのIDおよび認証管理を集中管理できます。

#6. Hosted GraphiteおよびGrafanaとのAzure統合の追加された利点

MetricFireのHosted GraphiteとHosted Grafanaを使用すると、Azure Active Directoryと統合したり、エンタープライズ資格情報を使用してSingle Sign On (SSO)を設定したりして、複数のサービスでシームレスな認証を確保できます。

Azure Active DirectoryとHosted Graphiteを統合するプロセスは、かなり単純です。まず、Azure ADポータルにログインし、ギャラリーから「Hosted Graphite」アプリケーションを追加します。

「シングルサインオンの構成」構成ページで、識別子として
[「https://www.hostedgraphite.com/metadata/YOUR-USER-ID/」](https://www.hostedgraphite.com/metadata/YOUR-USER-ID/?_gl=1*n78zt2*_gcl_aw*R0NMLjE1ODk4OTA3NTMuRUFJYUlRb2JDaE1JNDh1c3lQU182UUlWUWxSZ0NoMGRPd0lZRUFBWUFTQUFFZ0wzSFBEX0J3RQ..&_ga=2.117168069.297333575.1592803088-2038175526.1567400116&_gac=1.249154099.1589890752.EAIaIQobChMI48usyPS_6QIVQlRgCh0dOwIYEAAYASAAEgL3HPD_BwE)
を入力し、返信URLとして
[「https://www.hostedgraphite.com/complete/saml/YOUR-USER-ID/」」](https://www.hostedgraphite.com/complete/saml/YOUR-USER-ID/?_gl=1*n78zt2*_gcl_aw*R0NMLjE1ODk4OTA3NTMuRUFJYUlRb2JDaE1JNDh1c3lQU182UUlWUWxSZ0NoMGRPd0lZRUFBWUFTQUFFZ0wzSFBEX0J3RQ..&_ga=2.117168069.297333575.1592803088-2038175526.1567400116&_gac=1.249154099.1589890752.EAIaIQobChMI48usyPS_6QIVQlRgCh0dOwIYEAAYASAAEgL3HPD_BwE)
を入力します。 また、このページから証明書をダウンロードしてください。

これらの詳細情報を入手したら、SAML設定ページのHosted Graphiteに移動し、[エンティティID]フィールドに発行者のURLを入力し、[SSOログインURL]フィールドにSAML SSO URLを入力します。証明書のテキストボックスに、ダウンロードした証明書ファイルの内容をコピーする必要があります。

詳細な手順については、[SAML認証](https://www.hostedgraphite.com/docs/accountmanagement/saml-authentication.html?highlight=azure&_gl=1*uttpbt*_gcl_aw*R0NMLjE1ODk4OTA3NTMuRUFJYUlRb2JDaE1JNDh1c3lQU182UUlWUWxSZ0NoMGRPd0lZRUFBWUFTQUFFZ0wzSFBEX0J3RQ..&_ga=2.23306233.297333575.1592803088-2038175526.1567400116&_gac=1.242019894.1589890752.EAIaIQobChMI48usyPS_6QIVQlRgCh0dOwIYEAAYASAAEgL3HPD_BwE)の「Azure Active Directory」のセクションをご覧ください。これらの手順は、[Azureドキュメント](https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/hostedgraphite-tutorial)にも記載されています。

#7. まとめ

この記事では、Azure CloudのユーザーがGrafanaを使用して、Azure Monitorデータソースを使用してアプリケーションメトリックを表示する方法を説明しました。 また、Azure Active Directoryを使用して、Hosted GraphiteおよびGrafanaでシームレスなログインを提供する方法も確認しました。

MetricFireは、本番環境対応のHosted Graphiteと、Azureアプリケーションの監視を完全にシームレスにする他の多くの機能を備えたHosted Grafanaを提供します。

[MetricFire](https://try.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Azure%20Integration%20with%20Graphite%20and%20Grafana)の[無料トライアル](https://www.hostedgraphite.com/accounts/signup-metricfire/?signup=japan&utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Azure%20Integration%20with%20Graphite%20and%20Grafana)にサインアップして、Graphiteをセットアップし、Grafanaダッシュボードを今すぐ作成してください。 [デモを予約](https://calendly.com/metricfire-chatwithus/chat?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Azure%20Integration%20with%20Graphite%20and%20Grafana)して、モニタリングスタックを最適に設定する方法についてMetricFireチームに相談することもできます。