MackerelでAzure環境を監視してみた!

こんにちは、SCSK株式会社3年目の愛甲です。

前回、私たちの部署の嶋谷さんが、MackerelのMCPサーバーに触れてみた という記事を掲載しました。
この記事の内容は、運用に携わっている人からすると、
とても興味深いもので面白かったので、ぜひ確認いただきたいです!
MackerelのMCPサーバーに触れてみた – TechHarmony

今回は、AzureをMackerelで監視してみました。
AzureとMackerelの連携手順から、監視データの見え方について記載しますので、
最後までご一読いただけますと幸いです。

MackerelでのAzureリソースの監視

Mackerelでは、Azureインテグレーションというものを使い、
MackerelとAzureのサービスを接続することで、Azure環境を監視することができます。
Azureインテグレーションについては、以下のMackerelの公式ドキュメントに詳細が記載されています。
Azureインテグレーション – Mackerel ヘルプ

MackerelでAzure環境を監視する記事は初めてとなりますので、今回の記事では、設定方法などについて詳しく記載させていただいております。
MackerelでAzure環境を監視したいという方は、ぜひこの記事を見ながら設定を入れていただければと思います。

監視対象について

はじめに、監視対象についての情報を軽く説明します。
今回の検証では、Mackerelの監視データを内部のサーバへ連携するためのサービスを構築しました。

システム構成は以下になります。

 

Application Gateway       仮想マシンの負荷分散を行う
WAF              
Webアプリケーションへの攻撃を検知・防御する
Virtual Machine 
         Mackerel連携サーバそのもの
VPNゲートウェイ         内部サーバとの接続口

上記のサービスの中でVirtual Machine・Application Gatewayを監視対象として検証しました。

上記の環境の構築手順については、少し長くなってしまうため、この記事では説明を省かせていただきます。

Mackerelでの監視設定手順

では、ここからはMackerelでAzureのサービスを監視するための、設定手順について記載していきます。
設定手順に興味ない方は、このパートはスキップして、「監視データの確認」のパートに飛んでください。

インテグレーション用の各種情報を取得する

Azureのサービスの監視を行う場合、インテグレーションの設定を行う必要があります。

Azureインテグレーションの設定には以下3つのデータをAzureポータルで取得し、Mackerelの管理画面に入力する必要があります。

テナントIDを取得する

(1) Azure Portalにログインし、「Microsoft Entra ID」>「プロパティ」をクリックする。
  テナントIDが表示されるため、コピーする。

(2) Mackerelの管理画面を開き、「オーガニゼーション」>「Azureインテグレーション」>「新しいAzureテナントIDを登録」をクリックする。

(3) テナントIDの欄に先程コピーしたものを張り付ける。

クライアントIDを取得する

(1) Azure Portalにログインし、「Microsoft Entra ID」>「アプリの登録」>「新規登録」をクリックする。


(2) 名前を入力し、リダイレクトURLはWebを選択し、「登録」をクリックする。


(3) 「登録」をクリック後、以下の画面へ遷移するため、「アプリケーション (クライアント) ID」をコピーし、Mackerelの管理画面のクライアントIDにペーストする。

シークレットキーを取得する

(1) 「証明書とシークレット」>「新しいクライアント シークレット」をクリックし、追加を行う。

(2) 「値」をコピーし、Mackerelの管理画面のシークレットキーにペーストする。
※「シークレットID」ではなく、「値」をコピーする。

※この後の手順で行う「権限設定」を行うまでは、「無効」と表示される。

権限設定を行う

(1) Azure Portalで「サブスクリプション」>「サブスクリプション名」をクリック。

(2) 「アクセス制御(IAM)」>「追加」>「ロールの割り当ての追加」をクリックする。

(3) 「閲覧者」を選択し、「次へ」をクリックする。

(4) 「ユーザー、グループ、またはサービス、プリンシパル」にチェックを入れ、「メンバーを選択する」で上記手順で作成したアプリケーションを選択後、「レビューと割り当て」をクリックする。

(5) Mackerelの管理画面で「有効」となっていることを確認する。

Azureインテグレーションの設定を行う

(1) Mackerelの管理画面で、監視をしたいサービスを選択する。

(2) サブスクリプションを選択する。
※選択しなかった場合、すべてのサブスクリプションが対象となる。

(3) 「更新」をクリックする。

これで、インテグレーションが作成できました!

連携確認

以上で設定は完了です。

ここからは、監視設定を入れたサービスの状態を見ていきます。

ここまでの手順が完了すると、Mackerelの管理画面の「ホスト」のところで
以下のように一覧を確認することができます。

監視データの確認

監視手順としては以上になります。
Azureインテグレーションを使うと、面倒なエージェントのインストールを行うことなく、クラウド環境のサービスを監視することができます。

これまでに投稿してきたMackerelの記事を読んでいただいた方はわかると思いますが、Mackerelで各クラウドサービスを監視した場合、クラウドによってとってこれるメトリックは異なるものの、UIは統一されるため、運用する側としては、とても見やすくて便利だと思います。
これは地味にうれしいポイントだと思うので、ぜひ体感してほしいです。

では、ここからはAzureから連携された監視データがどのように見えているかを、
Virtual Machine・Application Gatewayの2つに絞ってお見せしたいと思います。

Virtual Machineの監視データ

Virtual Machineは基本的に以下のメトリックを取得することができます。

グラフ名 メトリック 説明
CPU Percentage CPU 仮想マシンのCPU使用率(パーセンテージ)を取得します。平均値が表示されます。
CPU Credits Remaining/Consumed CPU Credits Remaining 仮想マシンの残りCPUクレジット数を取得します。浮動小数点(float)で表示されます。
CPU Credits Consumed 仮想マシンで消費されたCPUクレジット数を取得します。平均値が表示されます。
Disk IOPS Disk Read Operations/Sec 1秒あたりのディスク読み取り操作数(IOPS)を取得します。平均値が表示されます。
Disk Write Operations/Sec 1秒あたりのディスク書き込み操作数(IOPS)を取得します。平均値が表示されます。
VM Availability Metric VmAvailabilityMetric 仮想マシンの稼働率(可用性)を示します。浮動小数点で平均値が表示されます。
Network In/Out Network In 仮想マシンが受信したネットワークデータ量(バイト単位)を取得します。合計値が表示されます。
Network Out 仮想マシンが送信したネットワークデータ量(バイト単位)を取得します。合計値が表示されます。
Network In/Out Total Network In Total 仮想マシンが累計で受信したネットワークデータ量(バイト単位)を取得します。合計値が表示されます。
Network Out Total 仮想マシンが累計で送信したネットワークデータ量(バイト単位)を取得します。合計値が表示されます。
Disk Read/Write Bytes Disk Read Bytes ディスクの読み取りバイト数を取得します。合計または平均値が表示されます。
Disk Write Bytes ディスクの書き込みバイト数を取得します。合計または平均値が表示されます。

今回は、この中のCPUとDisk Read/Write Bytesのグラフをお見せします。
以下は、CPUの使用率を現したグラフになります。
こちらを見ると、10:16時点で少しCPU使用率が高くなっていることがわかります。

以下はディスクの書き込み・読み取りバイト数を現したグラフとなります。
CPUのグラフと同じ時間帯となりますので、Diskの書き込み処理の影響でCPUの負荷が高まったと予想できます。

Application Gatewayの監視データ

続いて、Application Gatewayは基本的に以下のメトリックを取得することができます。
Application Gatewayで取得できるメトリックはレベルによって異なります。

詳細については、以下をご参照ください。
Azureインテグレーション – Application Gateway – Mackerel ヘルプ

今回は、Throughputのグラフをお見せします。
以下は、Application Gatewayのデータ転送量(毎秒のデータ量)を示します。

これを使うと、通信量の監視や、回線及びシステムのキャパシティ計測に役立てることができます。

このように、Mackerelでは特定の時間のメトリックデータを複数並べて確認することができるため、各データを組み合わせることで、簡単に詳細分析をすることができます。

これだけ多くのメトリックを取得すれば、障害発生時の切り分けもしやすく、復旧時間も大幅に削減できます。
興味がある方はぜひ調べて試してみてください。

おわりに

記事の内容は以上になります。いかがでしたでしょうか。

これまで、3大クラウドAWS、GCP、Azureの順で記事を掲載してきましたが、ほかの2つのクラウドサービスと同様に10分程度で連携完了することができます。
どのクラウドサービスも、監視するサービスを提供しているかと思いますが、「各メトリックをまとめて表示させたい。」「必要な情報だけ確認したい。」などの要望がある方は、是非1度Mackerelを触ってみてください。

また何か気づきや皆様へご紹介したい内容がありましたら記事を掲載します。
最後までお付き合いいただき、ありがとうございました。

タイトルとURLをコピーしました