dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

t4g系EC2インスタンスにZabbix 6.0をインストールする

EC2を吹き飛ばした時のために構築のログを残しておく

前提

  • マシンイメージはAmazon Linux 2
  • EC2内でDBを起動せず、Aurora MySQLを使う
  • zabbixはdocker composeで実行する

docker、docker composeのインストール

# dockerインストール
sudo amazon-linux-extras install docker
# dockerのデーモンの自動起動を登録
sudo systemctl enable docker.service
# dockerデーモン起動
sudo systemctl start docker.service
# sudoなしでdockerを使えるよう、ログイン中のユーザをグループに追加する
sudo usermod -aG docker ssm-user
# 一旦ログアウトして再度ログインする。sourceコマンドを使ってもいいが、リログの方が簡単。
exit

EC2に再接続する

# dockerのインストールに成功しているか確認する
docker version
# docker composeプラグインをインストールする。
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-linux-aarch64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
# docker composeプラグインのインストールに成功しているか確認する
docker compose version

zabbixをdocker composeでインストールする

# gitをインストール
sudo yum install git
# zabbix公式のdocker composeのリポジトリをclone
git clone https://github.com/zabbix/zabbix-docker.git -b 6.0
cd zabbix-docker
# 設定などを変更するため別ブランチを切る
git checkout -b 6.0-customized
# docker-composeファイルをコピーし、MySQLが起動しないよう`depends_on:`から`mysql-server`を削除する。
cp docker-compose_v3_centos_mysql_latest.yaml docker-compose.yaml

コピーしたdocker-compose.yamlを開き、サービスzabbix-serverzabbix-web-nginx-mysqlmysql-serverへの依存を削除する。 次にenv_vars/.env_db_mysqlを開き、以下の環境変数を設定する。

DB_SERVER_HOST=${ライターインスタンスのエンドポイント}
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_DATABASE=zabbix

MYSQL_ROOT_PASSWORDコメントアウトしておく。

起動

# コンテナ起動
docker compose up -d zabbix-server zabbix-web-nginx-mysql
# ログ確認
docker compose logs -f

これでEC2のIPでアクセスし、zabbix管理画面にログインできるはず。