クラウドの運用にMackerelを使ってみた(第6回:今度こそAzureインテグレーション機能を使ってみる)

「クラウド導入・運用サービス」のサービス企画担当のとりとりです。

本題に入る前に

先日ですが、この度、Mackerelアンバサダーに選出いただきました!

Mackerelアンバサダーについて
https://mackerel.io/ja/blog/entry/ambassador/about別ウィンドウで開きます

アンバサダー特典として、専用のプランを利用できるほか、さまざまな特典を利用できるようです。

その代わりというわけでもないのですが、社外に積極的に発信する命をはてな社より賜りましたので、全5回で終わる予定だった本コラムを不定期に続けていこうと思います。

前回のおさらい&今回の概要

前回は、AWS/Azureインテグレーションを設定する、と言いつつAzureインテグレーションの設定をやっておりませんでした……というわけで今回は、Azureインテグレーション機能を使ってみたいと思います。これにより、AzureのPaaSサービスのメトリックを可視化できるようになりますので、PaaSを含めた構築~運用まで実現できるようになります。対応しているPaaSは順次機能拡充しているようですので、ヘルプページ(Azure→https://mackerel.io/ja/docs/entry/integrations/azure別ウィンドウで開きます)を見ていただけたらと思います。

構成図・やりたいこと

構成図

アプリケーションサーバー(以降、APサーバー)とAzure SQL Databaseサービス(以降、DB)を利用したシステムを利用している想定です。Mackerelエージェントのインストールおよび、各種初期設定は完了しているものとします。

サーバーのスペック(APサーバー)

Virtual Machine:Standard B1ls(1vCPU,メモリ:0.5GiB)
OS:Ubuntu18.04
ディスクサイズ:32GiB

Azure SQL Databaseのスペック

インスタンス名:database-1
付与されているタグ:Case:NTTeast-column

やりたいこと

  • Azureで構築したシステムをMackerelで監視できるようにしたい

上記やりたいことを実現するために、Mackerelの設定を行います。

サービスプリンシパル連携設定

実際の設定に入る前に、AWSインテグレーションと同様、Azureインテグレーションの仕組みを確認しておきます。Azureインテグレーションは、Azure Monitor APIを利用してメトリクスを収集しています。(ヘルプページのAzureインテグレーションより)Azure Monitor APIにアクセスできるよう、Mackerelに対して自分のアカウントの読み取り権限を持つサービスプリンシパルを付与する必要があります。サービスプリンシパルの設定には大きく分けて二つの工程が必要になります。

  • Azure Active Directoryでアプリケーションを作成する
  • サービスプリンシパルにロールを割り当てる

順番にやっていきましょう。CLIを使った方法もありますが、本コラムではAzure Portalを使って設定していきたいと思います。

Azure Active Directoryでアプリケーションを作成する

Azureポータルにログインし、Azure Active Directoryを選択します。

左メニューに表示されている「アプリの登録」を選択し、「新規作成」を選択します。

Mackerelと連携するためのアプリケーションの登録を行います。名前は判りやすいものであれば指定ありません。リダイレクトURIはMackerelでは使用しないので、空欄のまま「登録」を

登録が完了すると以下のような画面となります。ここで表示される「アプリケーション(クライアント)ID」および、「ディレクトリ(テナント)ID」を控えておきます。

左メニューにある「証明書とシークレット」を選択し、「新しいクライアント シークレット」を選択します。

説明とと有効期限を設定し「追加」を選択します。

すると、右下の値のところにシークレットの値が表示されますので、こちらの値を控えておきます。後程「シークレットID」に利用します。

サービスプリンシパルにロールを割り当てる

「サブスクリプション」から「アクセス制御(IAM)」を選択し、先ほど作成したサービスプリンシパルを検索して選択、右側のロールの割り当てを追加する欄にある「追加」ボタンを選択します。

役割は「閲覧者」、選択欄に作成したサービスプリンシパルを入力し「選択したメンバー」に追加されていることを確認します。確認ができたら、「保存」を選択します。

作成が完了したら、「閲覧者」の欄にサービスプリンシパルが登録されていることを確認します。

Azureインテグレーション登録

ここから先は、Mackerelでの作業となります。Mackerelのポータルにログインし、「ダッシュボード」⇒「詳細」から、Azureインテグレーションのタブを選択します。Azureアカウントの欄に「アプリケーション(クライアント)ID」、「ディレクトリ(テナント)ID」、および「シークレットの値」を入力します。

次に、メトリックを収集するサービスを選択します。今回はDBのみをAzureインテグレーションで収集しますので、SQL Databaseのみにチェックを入れます。AWSインテグレーションと同様、タグを指定して登録するホストを絞り込むことも可能です。

最下部の基本設定の名前やメモを入力して、「作成」を選択します。

登録が完了して、数分経つとこのようにDBの監視項目が見えるようになります。

まとめ

今回はAzureインテグレーションを導入してみました。2020年3月にAzureで監視できるPaaSサービスがSQL Database、Cache for Redis、Virtual Machine、App Service、Functionsの5つに拡充され、さらに使いやすくなっている印象です。また余談ですがAWSインテグレーションとAzureを両方設定するとMackerelでマルチクラウド環境の監視が可能になりますので、監視のために各クラウドを行き来しなくて済むようになります。

次回は、「監視結果に応じたアクションを実行してみる」です。お楽しみに!

Amazon Web Services(AWS)は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
Microsoft Azureは、米国Microsoft Corporationおよびその関連会社の商標です。
Mackerelは、株式会社はてなの商標です。
本コラムに掲載のサービスや登録画面等は2020年2月時点の情報であり、変更となる場合があります。

クラウドとオンプレミスでの運用を比較しながら解説!!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る