DUICUO

Zabbix 6シリーズ学習:コンテナのインストール

ドッカー

この記事の環境

  • システム: Ubuntu 22.04
  • コンテナ: Docker

Dockerをインストールする

 sudo apt install docker docker.io -y

Ubuntuはインストール後にサービスを自動的に起動するため、再度起動する必要はありません。サービスに不具合が発生した場合は、以下のコマンドで起動できます。

 systemctl で docker を起動する

コンテナサブネットを作成する

ブリッジ ネットワーク サブネットを作成します。

 sudo docker ネットワーク作成 --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net 

MySQLコンテナを起動する

 sudo docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--network=zabbix-net \
--restart 停止しない限り
-d mysql:8.0 \
--character-set-server=utf8 --collat​​ion-server=utf8_bin \
--default-authentication-plugin=mysql_native_password

Zabbix Serverコンテナを起動する

 sudo docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--network=zabbix-net \
-p 10051:10051 \
--restart 停止しない限り
-d zabbix/zabbix-server-mysql:alpine-6.0-最新

Zabbixフロントエンドコンテナを起動する

 sudo docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--network=zabbix-net \
-p 80:8080 \
--restart 停止しない限り
-d zabbix/zabbix-web-nginx-mysql:alpine-6.0-最新

各コンテナのステータスを確認する

ステータスが UP であるかどうかだけに注目してください。

フロントエンドにアクセスする

サーバーには IP アドレスでアクセスできます。ユーザー名とパスワードはAdmin/zabbix です。

レンダリング

質問

Zabbixエージェントがインストールされていないため、データは監視されていません。エージェント付きのコンテナをインストールする必要があるでしょうか?実は、そうではありません。コンテナエージェントはコンテナ自体を監視するだけで、ホストマシンの詳細なステータスを把握することはできません。そのため、サーバーにはネイティブエージェントをインストールする必要があります。

エージェントのインストール

1. Zabbix リポジトリ ファイルをダウンロードします。

 sudo wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bubuntu22.04_all.deb2

2. Zabbix リポジトリ ファイルをインストールします。

 sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb

3. リポジトリファイルを更新する

 sudo apt update -y

4. Zabbixエージェントをインストールする

 sudo apt install zabbix-agent -y

5. コンテナのIPを確認する

ルート ユーザーに切り替える必要があります。そうしないと、権限が不十分であるというエラーが表示されます。

 sudo -i
docker inspect -f '``.`Name` =>`range `.`NetworkSettings`.`Networks```.`IPAddress``end`' $(docker ps -aq)

6. Zabbixエージェントの設定ファイルを変更する

ご覧のとおり、Zabbix サーバーの IP は 172.20.240.2 なので、Zabbix エージェントの構成ファイルを変更する必要があります。

 vim /etc/zabbix/zabbix_agentd.conf

2 か所を変更する必要があります。Server と ServerActive の両方で 127.0.0.1 を Zabbix Server コンテナの IP アドレスに変更します。

7. サービスを再起動する

 systemctl zabbix-agent を再起動します。

8. フロントエンドの変更

パスは「設定」→「ホスト」です。「Zabbixサーバー」をクリックし、ポップアップウィンドウの「エージェント」フィールドにIPアドレスを入力します。サーバーのIPアドレスに変更してください。

9. 効果

アイコンが緑色に変わりました。

最新データ

ポッドマンアプローチ

Podmanは、Kubernetesに似たRHELが提供するオープンソースのコンテナオーケストレーションツールです。現在、CentOSに含まれています(Dockerはバージョン8以降廃止されました)。詳細については、Podmanのドキュメントを参照してください。

この記事の環境

  • CentOS 8 ストリーム
  • ポッドマン 2.4

Podmanをインストールする

 dnf -y ポッドマンをインストール

サービスを開始

 systemctl ポッドマンを開始 && systemctl ポッドマンを有効にする

Podmanの設定

1. Zabbix という名前の POD を作成し、サーバーと Web のポートを公開します。

ポッドマン ポッド作成 --name zabbix -p 80:8080 -p 10051:10051

2. MySQL コンテナを作成します。

./mysql/ ディレクトリを作成する必要があります。

 mkdir /data && cd /data
mkdir ./mysql

 podman 実行 --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
-v ./mysql/:/var/lib/mysql/:Z \
--restart=常に\
--pod=zabbix \
-d mysql:8.0 \
--character-set-server=utf8 --collat​​ion-server=utf8_bin \
--default-authentication-plugin=mysql_native_password

docker.io イメージを選択するだけです。

3. Zabbix Server 用のコンテナを作成します。

 podman 実行 --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--restart=常に\
--pod=zabbix \
-d zabbix/zabbix-server-mysql:alpine-6.0-最新

4. Zabbix フロントエンド用のコンテナを作成します。

 podman 実行 --name zabbix-web-mysql -t \
-e ZBX_SERVER_HOST="127.0.0.1" \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="xiaoyu123" \
-e MYSQL_ROOT_PASSWORD="xiaoyu123" \
--restart=常に\
--pod=zabbix \
-d zabbix/zabbix-web-apache-mysql:alpine-6.0-最新

5. Zabbix エージェント コンテナを作成します。

ポッドマン実行 --name zabbix-agent \
-e ZBX_SERVER_HOST="127.0.0.1,ローカルホスト" \
--restart=常に\
--pod=zabbix \
-d zabbix/zabbix-agent:alpine-6.0-最新

6. コンテナのステータスを確認します。

両方UPの場合は正常です。

効果

方法は基本的に Docker と同じで、ユーザー名とパスワードも同じです: Admin/zabbix。

表紙:

ホストページ:

最新データ:

やっと

コンテナ部分は基本的に完成していますが、Kubernetes上で動作していない点が異なります。この点については後述します。インストールは比較的簡単ですが、パッケージ化されたイメージはブラックボックスです。初心者にとっては、設定の変更や最適化が難しいため、体験用としては適しています。