AzureをZabbixで監視してみた

こんにちは、SCSK株式会社の中野です。

前回は「AWSをZabbixで監視してみた」の投稿でAWSの監視を試してみましたが、今回はAzureをZabbixで監視してみたいと思います。

皆様はAzure上に構築したシステムを監視するために、どの監視ツールを利用していますでしょうか。

Azureが提供している監視サービス「Azure Monitor」を利用している方も多いと思います。

本記事では「Azure Monitor」ではなく、オープンソースの統合監視ツールである「Zabbix」を用いて、Azureのサービスを監視してみます。

Zabbixとは

Zabbixは、エンタープライズ対応のオープンソース統合監視ツールです。

サービスやそれを支える ITシステム(サーバ、ネットワーク機器等)の状態を把握し、障害の予兆やサービスへ影響を及ぼす事象が発生した際に、システム管理者やオペレータに通知を行うオープンソースの統合監視ソリューションです。
数万デバイス規模のエンタープライズ環境でも多数の稼動実績を誇っています。

Zabbixの詳細情報については、下記リンクよりご確認ください。

Zabbixには、Azureの各種サービスを監視するための設定をまとめた9つのテンプレートが用意されています。
(2023年8月時点)

・Azure by HTTP
・Azure Cosmos DB for MongoDB by HTTP
・Azure Microsoft SQL Database by HTTP
・Azure Microsoft SQL Serverless Database by HTTP
・Azure MySQL Flexible Server by HTTP
・Azure MySQL Single Server by HTTP
・Azure PostgreSQL Flexible Server by HTTP
・Azure PostgreSQL Single Server by HTTP
・Azure Virtual Machine by HTTP

※ Azureテンプレートを利用するためには、Zabbix 6.0.13 以上のバージョンが必要です。

今回は「Azure Virtual Machine by HTTP」テンプレートを利用してAzureのサービス(Virtual Machines)を監視していきたいと思います。

監視してみた(事前準備編)

ZabbixでVirtual Machinesを監視するために、Azure側で以下2つの対応が必要になります。

・Azureサブスクリプションに対してのAzureADアプリケーション(サービスプリンシパル)を作成

Azure CLIでの作成例)

az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/<subscription_id>

・監視対象リソースに対しての読み取り権限(reader)を付与

Azure側の作業は以上になります。

監視してみた(設定編)

それではZabbixで監視するために、対象ホストをZabbixへ登録していきます。

Zabbix登録画面では、ホスト名やIPアドレスを設定して、テンプレートは「Azure Virtual Machine by HTTP」を選択します。

次に以下5つのホストマクロに対して、変数を設定します。

・{$AZURE.APP.ID} : アプリケーションID

・{$AZURE.PASSWORD} : パスワード

・{$AZURE.TENANT.ID} : テナントID

・{$AZURE.SUBSCRIPTION.ID} : Microsoft AzureサブスクリプションID

・{$AZURE.RESOURCE.ID} : Virtual MachinesのリソースID

そのほか必須ではございませんが、必要に応じて以下3つのホストマクロも設定します。

・{$AZURE.PROXY} : HTTPプロキシの値を設定(空の場合はプロキシ使用なし)

・{$AZURE.DATA.TIMEOUT} : APIのレスポンスタイムアウト値

・{$AZURE.VM.CPU.UTIL.CRIT} : CPU使用率のしきい値

あとは「追加」または「更新」ボタンを押すだけで、Zabbixでの監視が開始されます。
データ取得まで数分待つと、以下の通りNWやディスク等の監視アイテムを取得することができました。

グラフも問題なく、作成されていることを確認できました。

最後に

ZabbixでAzureを監視してみた結果、簡単に監視データを取得することができることが分かりました。

しかし、AWSを監視してみたときに出た結論と同様に「Azure Virtual Machine by HTTP」のテンプレートだけでは、インスタンスOS内部リソース・ログ監視は実施不可のため、Zabbixエージェントが導入できない場合以外はVirtual MachineにもZabbixエージェントを導入し、両方での監視を実施する必要がありそうだと感じました。

今回はVirtual Machineのみに絞って監視を試してみましたが、今後は別のリソースの監視もしたいと思います。
最後まで読んでいただき、ありがとうございました!!

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