この記事は日本最大級の青少年団体のイベントアプリを開発・運用した話の中の監視部分に関する記事です。
#はじめに
Azureはとても便利です。それはスケーラブルなリソースを使いたい時に使いたいだけ使えるというのもそうですが、そのリソースを監視する環境もいい感じに構築できるという意味でもあります。
今回はAzureのダッシュボードにApplication Insightsのグラフなどの情報を使用してグラフィカルな監視センターっぽいものを構築する方法をご紹介します。もっといい方法があれば教えてください。
↓実際に運用した監視センター(っぽいもの)
#簡単な原理
ダッシュボードに表示したい情報をピン留めしてそのダッシュボードを常時表示しておけばいいだけです。
#問題
しかし上記には問題があります。
####セキュリティ
常時ダッシュボードを表示しておいてはリソースがいじり放題です。
#問題解決のためのポイント
この問題を解決するためにポイントは
ダッシュボード表示専用のリソースグループに閲覧専用ユーザーを割り当てて、そのユーザーでダッシュボードを常時表示する
ということです。
#前提
この記事はダッシュボードと同じディレクトリ内にあるApplication Insightsのデータを監視することを前提としています。
#構築の流れ
- 共有用のダッシュボードを作成
- 共有用のリソースグループを作成
- 2のリソースグループに1のダッシュボードを共有
- Application Insightsの結果を共有用ダッシュボードにピン留め
- Azure ADでユーザーを作成
- 2の共有用リソースグループに閲覧専用ユーザーとして4のユーザーを追加
- 3のApplication Insightsに閲覧専用ユーザーとして4のユーザーを追加
#やってみる
####1. 共有用のダッシュボードを作成
適当な名前を入力して「カスタマイズ完了」
共有用のダッシュボードが作成されました。
####2. 共有用のリソースグループを作成
リソースグループの一覧から「追加」
適宜情報を入力して共有用のリソースグループを作成します。
####3. 2のリソースグループに1のダッシュボードを共有
共有用のダッシュボードの「共有」を選択します。
初期状態では「'dashboard'リソースグループに発行します」のチェックが入っているので、チェックを外すと発行先のリソースグループが選択できるようになるので2で作成したリソースグループを選択します。
####4. Application Insightsの結果を共有用ダッシュボードにピン留め
監視したい情報をApplication Insightsで表示します。結果の右上にある「Pin」を選択します。
ピン留め候補のダッシュボードがリストで表示されるので2のリソースグループを選択します。
ピン留めが完了すると表示されるメッセージのリンクをクリックしてダッシュボードを表示し、正常にピン留めされたかを確認します。
####5. Azure AD(AAD)でユーザーを作成
メニューから「Azure Active Directory」を選択
「ユーザー」を選択
「新しいユーザー」を選択
必要な情報を入力して「作成」を選択します。ユーザー名のドメインはAADのテナントに付与される「~~~~.onmicrosoft.com」というドメインです。
パスワードをここで取得する場合はチェックボックスを外してパスワードをメモします。(「名前」typoしてますが、気にしない…)
作成が完了したらユーザー一覧に今作成したユーザーが表示されることを確認します。
####6. 2の共有用リソースグループに閲覧専用ユーザーとして4のユーザーを追加
リソースグループリストからダッシュボード共有用のリソースグループを選択します。
リソースグループのブレードから「アクセス制御」を選択します。
「追加」を選択
役割を**「閲覧者」**にして5で作成したユーザーを選択して保存を選択します。
リソースの「閲覧者」に選択した閲覧用ユーザーがアサインされていることを確認します。
####7. 3のApplication Insightsに閲覧専用ユーザーとして4のユーザーを追加
6と同じ方法でダッシュボードにピン留めしているApplication Insightsのインスタンスの画面から閲覧者権限を付与します。
####確認
一度Azureからサインアウトし、AADに登録したユーザーとパスワードで再度ログインします。
右上のアカウントが作成したユーザーになっていることを確認して左上のダッシュボード切り替えボタンから「Monitor」を選択します。
監視対象のダッシュボードが表示されました!
このダッシュボードを常に画面に表示しておけばいいということです。
####権限の確認
本当にリソースを操作することができないのか確認してみます。
ダッシュボードはカスタマイズはできるものの閲覧権限のため共有されたレイアウトそのものを変更することはできません。
リソースグループの作成を試してみますが、閲覧者なのでアクセス権限が無く、作成することができません。
#自動更新
Application Insights tiles enabled for auto-refreshによるとApplication Insightsはオートリフレッシュに対応しており、Azureダッシュボードのタイルでも有効です。リフレッシュのインターバルは以下の通り、表示している情報のレンジによって自動的に決まります。
5 minutes if the time range is one hour or less.
15 minutes if the time range is greater than an hour and not more the 24 hours.
1/60 of the time range for time ranges greater than 24 hours (for example, every 48 minutes for a two-day time range).
#さいごに
以上です。本家の記事もぜひご覧ください。
日本最大級の青少年団体のイベントアプリを開発・運用した話
本記事で紹介している監視部分