Zabbixコンテナ環境構築記 (Azureクラウド編)

○はじめに

 予告に従い、MicrosoftのクラウドサービスAzureで、ZabbixのDockerコンテナ実行を目指します。
  ※前回(https://cloudsteady.jp/blog/2025/10/31/115761/)のタイトルに合わせ「構築記」としていますが、実際の内容は紹介となります。

○利用するサービスについて

 Azureサービスを用いてコンテナ環境を構築する場合、複数の選択肢があります。
 サービスの中で最も理想に近い(※)、Container Instanceによるコンテナ実行を選択します。

※)「Azureサービス」で「コンテナを動かす」という前提なので、Dockerで動かすAVM方式は自動的に選外となります。

サービスの一覧表

○Container Instanceについて

Container Instanceは、コンテナイメージを実行するサービスです。
コンテナイメージを実行できるのはDockerと同じですが、コンテナイメージ作成・管理(保管)といった機能は
持たないため、外部からコンテナイメージを調達する必要があります。

CotainerInstanceについて

○Zabbixを実行する上での注意点①

 Container InstanceでZabbixを実行する際は、Docker環境と異なる制約があります。
この制約は、Container Instanceがサーバレスであることに起因しています。

AzureContainerInstanceの制約表

○Zabbixを実行する上での注意点②

コンテナイメージをただデプロイするだけでは、各Zabbixコンポーネント間で連携が取れません。
DockerはNW(※)を介した連携が4つあるため、同じイメージを用いる場合、Container Instanceでも再現する必要があります。

※)WEB UI関連のfrontend、内部処理・監視向けのbackend、DBアクセス用のdatabaseの他、機能(PDFレポート作成等)としてtoolsfrontend。

Zabbixコンポーネントと4つのNWを介した連携

○公式リポジトリからのデプロイ①方針

Dockerで実施したように、公式リポジトリからContainer Instanceにコンテナイメージをデプロイしてみます。
Container Instance は、Dockerのyamlのextendsが利用できなかったり、変数を展開できなかったり
、デフォルトではステートレス(永続ストレージなし)だったり、IPが固定されなかったりするので、それらを踏まえた編集を施します。

DockerコンテナイメージをAzureContainerInstanceにデプロイする方針

○公式リポジトリからのデプロイ②yamlファイル編集

前回入手したyamlファイルを次の流れで書き換えます。書換え後のファイル名はzabbix_aci.yamlとします。
手順1. docker compose -f “入手したyaml” > “展開済みyamlファイル”
手順2. 展開済みyamlファイルをWindows環境(Azureに接続できる環境)に転送

手順3. ステートレス対応としてのvolume削除、IPが固定されない対応としての名前解決を行います。(AIに対し「Azure Container Instance向け」「ステートレス」「名前解決」のキーワードを指定して任せると良いでしょう。

Docker環境で変数を展開~Windows環境でvolume削除・名前解決

○公式リポジトリからのデプロイ③アップロード(Cloud Shell起動)

 yamlができたので、Azureにアップロードします。
 Azureにアクセスし、ポータルの画面右上アイコンから、Azure Cloud Shellを起動します(※)。

 ※)PCにインストールされているなら、Azure CLIで実行しても構いません。

Cloud Shellの起動方法

○公式リポジトリからのデプロイ④アップロードとデプロイ

 Cloud Shellのメニューから[ファイルの管理]-[アップロード]で開くエクスプローラにて、作成したContainer
 Instance用yaml(zabbix_aci.yaml)をアップロードします。カレント(起動直後は~)に格納されます。
 リソースグループが作成済みの場合、そのままデプロイコマンドを発行します。

アップロードとデプロイ操作

○公式リポジトリからのデプロイ⑤デプロイ確認

 コマンドエラーがなければ、指定したリソースグループにContainer Instance(コンテナーインスタンス)

 が追加されています。

デプロイ確認方法

○公式リポジトリからのデプロイ⑥コンテナの確認

 コンテナーインスタンスの左ペインから[コンテナー]を選択しコンテナに移動し、各コンテナイメージの

 状態がRunningであればデプロイ成功です。

コンテナの確認としてRunningであることを確認する

○デプロイ結果確認①WEBアクセス情報

 今度は、コンテナーインスタンスの左ペインから[プロパティ]を選択します。
 すると、WEBUIへのアクセス情報(IPアドレスまたはFQDN)が確認できます。

WEBアクセス情報取得

○デプロイ結果確認②WEBUIアクセス

 このyamlではWebサーバはNginxなのでIPまたはFQDNの後ろに:8080を付与してブラウザアクセスします。
 8080を許可している環境であれば、図の様にログイン画面が表示されます。
 UsernameにAdmin、Passwordにデフォルトのパスワードを入力してSign inボタンを押してみます。

WEBUIログイン画面

○デプロイ結果確認③ログイン

 ログインできます(Global Viewが表示されます)。

 

zabbixログイン画面

○おわりに(次回予告)

 Azure(クラウド環境)でZabbixコンテナを立ち上げるまででした。

 技術的な可能性を追求として紹介しましたが、「yaml変換に手間がかかる」、「Azureに料金がかかる」といったディスアドバンテージを覆す要件がクラウド環境になければ、Docker環境で十分と思います。

 次回は、もう少し現実的なAzure(クラウド環境)の利用として、VMにDocker環境を構築してコンテナを動かす、VM編の予定しています。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください