Zabbix7.0を使ったAzureのリソース監視方法
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のリソース情報を取得するためのテンプレートが用意されています。
仮想マシンだけではなく、SQL Database、MySQL、PostgreSQLなどのマネージドデータベースのテンプレートも用意されています。
Azureのテンプレート | |
Templates/CloudのテンプレートグループにAzure関連のテンプレートがあります。 テンプレートごとにリソースに合わせた、アイテムやトリガーの設定がされています。 |
|
サービスプリンシパルの作成、権限割り当て
Zabbixはサービスプリンシパルを利用して、Azureのリソース情報へアクセスします。
サービスプリンシパルに監視対象のリソースやサブスクリプションの権限割り当てます。
監視に必要な監視閲覧者などの権限を割り当てます。
Azure CLIでサービスプリンシパルの作成
Zabbix公式サイトに、Azure CLIを使ったサービスプリンシパル作成手順の記載があります。
サブスクリプションに閲覧者権限を割り当てるAzure CLIコマンドが紹介されています。
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経由で情報を取得するため、ホストにインターフェースは登録しません。
ホスト登録 | |
ホストの作成を選択します。 | |
ホスト名にはAzure Database MySQL Flexible Serverのホスト名を設定します。 ※今回はホストグループには"Databases"を選択しています。 |
|
Azure Database MySQL Flexible Server用のテンプレートを選択
“Azure Database MySQL Flexible Server by HTTP"のテンプレートを選択します。
テンプレートを選択 | |
テンプレートを選択します。 “Templates/Cloud"のテンプレートグループで"Azure Database MySQL Flexible Server by HTTP"のテンプレートを選択します。 |
|
ホストマクロ設定
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
使用されるマクロの詳細は公式サイトに記載があります。
ホストマクロ設定 | |
Zabbixのホスト設定でマクロタブを選択します。 マクロ設定で、各項目の変更を選択して値を設定します。 |
|
ホストマクロの設定例です。 | |
ホストマクロに設定するアプリケーション(クライアントID)などの値はAzure Portalでも確認できます。 ※シークレット値は作成直後以外見えなくなります。必ず作成時にコピーしておきます。 |
|
ホスト設定後の監視状況を確認
ホスト設定後にAzure Database MySQL Flexible Serverのリソース情報取得状況を確認します。
ホスト設定後の確認 | |
最新データを見るとリソースのメトリック情報が取得出来ている事が確認できます。 ※画面はCPUの例です。 |
|
—広告—
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
使用されるマクロの詳細は公式サイトに記載があります。
ホスト設定後の監視状況の確認
ホスト設定後に仮想マシンのリソース情報取得状況を確認します。
メトリック情報が取得できている事が確認できます。
監視状況の確認 | |
最新データのメニューで取得値を確認します。 それぞれのアイテムで値が取得できています。 |
|
仮想マシンを停止します。 |
最後に
Zabbixのテンプレートを使ってAzureのリソース監視設定手順を確認してみました。
デフォルトでAzureのテンプレートが用意されていて、適用するだけで監視設定ができるのは便利かと思いました。
引き続き色々試してみたいと思います。
Zabbixのインストール手順についてはこちらで紹介しています。
Azureのマネージドデータベースを利用しています。
ZabbixからSendGridを利用してメール送信する方法についてはこちらで紹介しています。