🐙

Azure App InsightsとGrafanaは簡単に連携できた話

に公開

この記事は【7/10〜12】"生徒の手で創る、次世代の学校祭"開成祭にて、入場ゲートなどの新システム導入に生徒が挑戦!の関連記事です。
プレスリリースについては以下のリンクを参照してください。
https://note.com/keisei_11/n/n4a541d417aa4

どんな状況で利用したか(前置き)

今回のシステムでは、Azure App ServiceでAPIサーバをStatic Appでフロントエンドをホストしていました。また、ゲートの開閉用に動作しているラズベリーパイを監視するために、Azure VMではGrafana/Loki/Promtailサーバをホストしています。
このGrafanaでAzure系も監視できたらいいなーという考えです。

概要

Azure内でGrafanaサーバをホストしている場合には意外と簡単に連携が可能です。
Azure外でホストしている場合でもAzure AD(アプリの登録)を利用して、APIのアクセス許可を得ます。Azure内でのホスト(Azure VMなど)だと、インスタンスに直接権限を触れるので楽という話ですね。
あとは、Azure App Insightsを有効している必要があります。Azureでは監視機能やメトリクス収集機能としてApp Insightsが用意されています。GrafanaはAPIを通じてこのデータにアクセスすることとなります。

アウトライン

  • Azure App Insights / Monitorの紹介
  • GrafanaのDatasourceについて
  • ダッシュボードについて

Azure App Insights / Azure Monitorについて

思っていたより、よくできているなと思いました。ライブビューのようにアクセスやエラーについて参照することも可能ですし、Azure Portal上でGrafanaを利用することもできるようです。
こちらについては試していないのでぜひお試しください。

Azureの監視基盤について-Microsoft公式ドキュメントより引用
Azureの監視基盤

https://learn.microsoft.com/ja-jp/azure/azure-monitor/visualize/visualize-grafana-overview
https://learn.microsoft.com/ja-jp/azure/azure-monitor/fundamentals/overview

GrafanaのDatasourceについて

Azure Monitor

を利用します。

簡単に設定できます。

VM割り当てロール

GrafanaからDatasourcesにアクセスできない場合、AzureリソースにAzure App Insightsへのアクセス権限がない可能性があります。システム割り当てIDに以下のロールを追加します。

  • Log Analytics 閲覧者
  • Monitoring Data Reader
  • 閲覧者

ダッシュボードについて

Datasourcesの追加が完了したら、あとはDashboardを追加するだけです。
"Azure App Insights Grafana Dashboard" などで検索するとよいと思います。
ID: 15136
https://grafana.com/grafana/dashboards/15136-azure-insights-applications-overview/

このあたりがよいかと思います。

データが取得されると、ダッシュボードに反映されます。

Discussion