○はじめに
予告に従い、MicrosoftのクラウドサービスAzureで、ZabbixのDockerコンテナ実行を目指します。
※前回(https://cloudsteady.jp/blog/2025/10/31/115761/)のタイトルに合わせ「構築記」としていますが、実際の内容は紹介となります。
○利用するサービスについて
Azureサービスを用いてコンテナ環境を構築する場合、複数の選択肢があります。
サービスの中で最も理想に近い(※)、Container Instanceによるコンテナ実行を選択します。
※)「Azureサービス」で「コンテナを動かす」という前提なので、Dockerで動かすAVM方式は自動的に選外となります。

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

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

○Zabbixを実行する上での注意点②
コンテナイメージをただデプロイするだけでは、各Zabbixコンポーネント間で連携が取れません。
DockerはNW(※)を介した連携が4つあるため、同じイメージを用いる場合、Container Instanceでも再現する必要があります。
※)WEB UI関連のfrontend、内部処理・監視向けのbackend、DBアクセス用のdatabaseの他、機能(PDFレポート作成等)としてtoolsfrontend。

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

○公式リポジトリからのデプロイ②yamlファイル編集
前回入手したyamlファイルを次の流れで書き換えます。書換え後のファイル名はzabbix_aci.yamlとします。
手順1. docker compose -f “入手したyaml” > “展開済みyamlファイル”
手順2. 展開済みyamlファイルをWindows環境(Azureに接続できる環境)に転送
手順3. ステートレス対応としてのvolume削除、IPが固定されない対応としての名前解決を行います。(AIに対し「Azure Container Instance向け」「ステートレス」「名前解決」のキーワードを指定して任せると良いでしょう。

○公式リポジトリからのデプロイ③アップロード(Cloud Shell起動)
yamlができたので、Azureにアップロードします。
Azureにアクセスし、ポータルの画面右上アイコンから、Azure Cloud Shellを起動します(※)。
※)PCにインストールされているなら、Azure CLIで実行しても構いません。

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

○公式リポジトリからのデプロイ⑤デプロイ確認
コマンドエラーがなければ、指定したリソースグループにContainer Instance(コンテナーインスタンス)
が追加されています。

○公式リポジトリからのデプロイ⑥コンテナの確認
コンテナーインスタンスの左ペインから[コンテナー]を選択しコンテナに移動し、各コンテナイメージの
状態がRunningであればデプロイ成功です。

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

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

○デプロイ結果確認③ログイン
ログインできます(Global Viewが表示されます)。

○おわりに(次回予告)
Azure(クラウド環境)でZabbixコンテナを立ち上げるまででした。
技術的な可能性を追求として紹介しましたが、「yaml変換に手間がかかる」、「Azureに料金がかかる」といったディスアドバンテージを覆す要件がクラウド環境になければ、Docker環境で十分と思います。
次回は、もう少し現実的なAzure(クラウド環境)の利用として、VMにDocker環境を構築してコンテナを動かす、VM編の予定しています。

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