Zabbix7.0を使ったAzureのリソース監視方法

Azure,Database For MySQL,Others,Virtual Machine,Zabbix

Zabbixを使ったAzureのリソース監視方法の紹介です。

ZabbixにはデフォルトでAzureのテンプレートが用意されています。
テンプレートを利用する事でZabbixからAzureのリソースを監視する事ができます。
Azure Database MySQL Flexible Serverや仮想マシンと言ったAzureリソースを例に、Zabbixの監視対象ホストとしてAzureのリソースを設定する手順を紹介します。

※本記事内ではAzure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
※Zabbix 7.0LTSを利用して確認しています。

スポンサーリンク

ZabbixにはAzureのリソース監視のテンプレートがある

ZabbixではデフォルトでAzureのリソース情報を取得するためのテンプレートが用意されています。

Microsoft Azure

仮想マシンだけではなく、SQL Database、MySQL、PostgreSQLなどのマネージドデータベースのテンプレートも用意されています。

Azureのテンプレート
Templates/CloudのテンプレートグループにAzure関連のテンプレートがあります。
テンプレートごとにリソースに合わせた、アイテムやトリガーの設定がされています。
Zabbix7のテンプレートグループ設定画面
Zabbix7のAzureに関するデフォルトテンプレート
Zabbix7のAzureに関するテンプレート一覧

サービスプリンシパルの作成、権限割り当て

Zabbixはサービスプリンシパルを利用して、Azureのリソース情報へアクセスします。
サービスプリンシパルに監視対象のリソースやサブスクリプションの権限割り当てます。
監視に必要な監視閲覧者などの権限を割り当てます。

Azure CLIでサービスプリンシパルの作成

Zabbix公式サイトに、Azure CLIを使ったサービスプリンシパル作成手順の記載があります。

Microsoft Azure

サブスクリプションに閲覧者権限を割り当てるAzure CLIコマンドが紹介されています。
az ad sp create-for-rbacコマンドでサービスプリンシパルの作成と権限の割り当てを同時に実施しています。
コマンド実行時にシークレットの登録も同時に実施されます。

az ad sp create-for-rbac

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

※今回は監視対象のリソースグループに対して、監視閲覧者の権限を割り当てています。
※シークレット値は作成直後しか確認できません。必ず作成時にコピーするようにします。

Azure Portalでサービスプリンシパル作成

Azure Portalを利用したサービスプリンシパルの作成手順はこちらで紹介しています。
Microsoft Entra IDでZabbixが利用するアプリケーションを新規登録、クライアントシークレットの発行、権限の割り当て手順を紹介しています。

—広告—

ZabbixでAzure Database MySQL Flexible Serverのリソースを監視

ZabbixでAzure Database MySQL Flexible Serverの監視設定をします。

Azure Database MySQL Flexible Serverのホストを登録

ZabbixでAzureリソースのホストを新規登録します。
REST API経由で情報を取得するため、ホストにインターフェースは登録しません。

ホスト登録
ホストの作成を選択します。 Zabbix7でホストの新規作成(ZabbixのAzureリソース監視設定)

ホスト名にはAzure Database MySQL Flexible Serverのホスト名を設定します。
ホストグループは適時選択します。

※今回はホストグループには"Databases"を選択しています。

Zabbix7で新しいホストの作成設定(ZabbixのAzureリソース監視設定)
ホストグループを選択(ZabbixのAzureリソース監視設定)

Azure Database MySQL Flexible Server用のテンプレートを選択

“Azure Database MySQL Flexible Server by HTTP"のテンプレートを選択します。

テンプレートを選択
テンプレートを選択します。
“Templates/Cloud"のテンプレートグループで"Azure Database MySQL Flexible Server by HTTP"のテンプレートを選択します。
Zabbix7の新しいホスト作成設定でテンプレートを選択(ZabbixのAzureリソース監視設定)
テンプレートグループを選択(ZabbixのAzureリソース監視設定)
Azure MySQL Flexible Server by HTTPのテンプレートを選択(ZabbixのAzureリソース監視設定)
Zabbix7でAzure MySQL Flexible Serverのリソース監視する場合のホスト設定例(ZabbixのAzureリソース監視設定)

ホストマクロ設定

AzureのリソースへアクセスするためにZabbix側で認証設定が必要となります。
Zabbixのマクロに作成したサービスプリンシパルの値を設定します。
今回はホストマクロで設定しています。

ホストにAzureのテンプレートを追加すると、マクロの項目が追加されます。
認証関連で設定するマクロは以下の5項目です。

{$AZURE.APP.ID}:サービスプリンシパルのアプリケーション(クライアントID)
{$AZURE.PASSWORD}:クライアントシークレット値
{$AZURE.RESOURCE.ID}:監視対象のリソースID
{$AZURE.SUBSCRIPTION.ID}:AzureのサブスクリプションID
{$AZURE.TENANT.ID}:AzureのテナントID

使用されるマクロの詳細は公式サイトに記載があります。

Microsoft Azure

ホストマクロ設定
Zabbixのホスト設定でマクロタブを選択します。
マクロ設定で、各項目の変更を選択して値を設定します。
Zabbix7でAzureのリソース監視する場合のマクロ設定(ZabbixのAzureリソース監視設定)
Zabbix7でAzureのリソース監視する場合のマクロ設定(ZabbixのAzureリソース監視設定)
ホストマクロの設定例です。 Zabbix7でAzureのテンプレート適用時のマクロ設定例(ZabbixのAzureリソース監視設定)

ホストマクロに設定するアプリケーション(クライアントID)などの値はAzure Portalでも確認できます。

※シークレット値は作成直後以外見えなくなります。必ず作成時にコピーしておきます。

作成したクライアントシークレット(サービスプリンシパル作成)

ホスト設定後の監視状況を確認

ホスト設定後にAzure Database MySQL Flexible Serverのリソース情報取得状況を確認します。

ホスト設定後の確認

最新データを見るとリソースのメトリック情報が取得出来ている事が確認できます。
トリガーの設定も有効になっています。

※画面はCPUの例です。

Zabbix7でAzureリソース監視設定した場合のホスト例
Zabbix7でAzureリソース監視設定した場合の最新データ画面例
Zabbix7でAzureリソース監視設定した場合のトリガー設定例

—広告—

Zabbixで仮想マシン(Azure VM)のリソースを監視

仮想マシンのホストを登録からテンプレート設定まで

仮想マシン用には"Azure Virtual Machine by HTTP"テンプレートが用意されています。
こちらのテンプレートもホストマクロを利用して認証を行います。

{$AZURE.APP.ID}:サービスプリンシパルのアプリケーション(クライアントID)
{$AZURE.PASSWORD}:クライアントシークレット値
{$AZURE.RESOURCE.ID}:監視対象のリソースID
{$AZURE.SUBSCRIPTION.ID}:AzureのサブスクリプションID
{$AZURE.TENANT.ID}:AzureのテナントID

使用されるマクロの詳細は公式サイトに記載があります。

Microsoft Azure

ホストの設定
新しいホストの作成でホスト名やホストグループを設定します。
テンプレートグループ"Templates/Cloud"の"Azure Virtual Machine by HTTP"テンプレートを選択します。
ホストマクロを設定します。

Zabbix7でAzure Virtual Machinesのリソース監視する場合のホスト設定例(ZabbixのAzureリソース監視設定)
Azure Virtual Machinesのテンプレートを選択(ZabbixのAzureリソース監視設定)
Azure VMを監視する場合のホスト設定例(ZabbixのAzureリソース監視設定)
Azure VMを監視する場合のマクロ設定例(ZabbixのAzureリソース監視設定)

アプリケーション(クライアント)IDなどの値は、Azure Portalでも確認できます。

※シークレット値は作成直後以外見えなくなります。必ず作成時にコピーしておきます。

作成したクライアントシークレット(サービスプリンシパル作成)

ホスト設定後の監視状況の確認

ホスト設定後に仮想マシンのリソース情報取得状況を確認します。
メトリック情報が取得できている事が確認できます。

監視状況の確認
最新データのメニューで取得値を確認します。
それぞれのアイテムで値が取得できています。
Azure VMのリソース監視をZabbix7でした場合のデータ取得内容

仮想マシンを停止します。
“Virtual machine is unavailable"のトリガーが障害となっている事が確認できます。

Azure VMを停止した場合のZabbix7のトリガー状況例

最後に

Zabbixのテンプレートを使ってAzureのリソース監視設定手順を確認してみました。
デフォルトでAzureのテンプレートが用意されていて、適用するだけで監視設定ができるのは便利かと思いました。

引き続き色々試してみたいと思います。

Zabbixのインストール手順についてはこちらで紹介しています。
Azureのマネージドデータベースを利用しています。

ZabbixからSendGridを利用してメール送信する方法についてはこちらで紹介しています。

スポンサーリンク