Azure App InsightsとGrafanaは簡単に連携できた話
この記事は【7/10〜12】"生徒の手で創る、次世代の学校祭"開成祭にて、入場ゲートなどの新システム導入に生徒が挑戦!の関連記事です。
プレスリリースについては以下のリンクを参照してください。
どんな状況で利用したか(前置き)
今回のシステムでは、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公式ドキュメントより引用
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
このあたりがよいかと思います。
データが取得されると、ダッシュボードに反映されます。
Discussion