こんにちは、SCSKの坂木です。
本記事では、Zabbixサーバのインストールを自動化するシェルスクリプトを紹介します!
検証環境
今回、検証に使用した環境は以下の通りです。
コンポーネント | バージョン/種類 | 備考 |
---|---|---|
OS | Amazon Linux 2023 | RHEL系のディストリビューション |
データベース | MySQL Community Server | Zabbixで広く利用されているデータベース |
Zabbix | Zabbix7.0 LTS | 2025/08時点での最新の長期サポート版 |
この構成に基づき、本ブログで公開するスクリプトは 「RHEL系OS + MySQL」の環境に、Zabbix 7.0 LTSをインストール するものとなっています。
もし異なるOS(Ubuntuなど)やデータベース(PostgreSQLなど)をご希望の場合は、一部カスタマイズが必要となりますので、あらかじめご了承ください。
前提条件
- MySQLサーバが起動していること
本スクリプトはZabbixサーバのコンポーネントをインストールし、DBに接続する設定を行いますが、MySQLサーバ自体のインストールや起動は行いません。あらかじめMySQLが利用可能な状態にしておいてください。 - OSがZabbixサーバのバージョンに対応していること
Zabbixサーバはバージョンごとに公式にサポートされるOSが定められています。対応しているOSのバージョンはこちらを確認してください。 - RHEL系のOSであること
このスクリプトは、パッケージ管理にdnfコマンドを利用するなど、RHEL系のOSに特化して作成されています。
インストールスクリプト
スクリプトはこちらになります。
#!/bin/bash set -e # 1. MySQLのrootユーザーのパスワード MYSQL_ROOT_PASS='<MySQLのrootユーザーのパスワードを入力してください>' # 2. Zabbixがデータベース接続用に使う新しいパスワード ZABBIX_DB_PASS='<MySQLのzabbixユーザのパスワードを入力してください>' echo "--- Zabbixリポジトリの追加とパッケージのインストールを開始します ---" rpm -Uvh https://repo.zabbix.com/zabbix/7.0/amazonlinux/2023/x86_ 64/zabbix-release-latest-7.0.amzn2023.noarch.rpm dnf clean all dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent echo "--- Zabbix用データベースとユーザーを作成します ---" mysql -u root -p"${MYSQL_ROOT_PASS}" <<EOF CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '${ZABBIX_DB_PASS}'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; SET GLOBAL log_bin_trust_function_creators = 1; EOF echo "--- Zabbix初期スキーマとデータをインポートします ---" zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p"${ZABBIX_DB_PASS}" zabbix echo "--- log_bin_trust_function_creators の設定を元に戻します ---" mysql -u root -p"${MYSQL_ROOT_PASS}" <<EOF SET GLOBAL log_bin_trust_function_creators = 0; EOF echo "--- Zabbixサーバーの設定ファイル(/etc/zabbix/zabbix_server.conf)を編集します ---" sed -i "s/^# DBPassword=/DBPassword=${ZABBIX_DB_PASS}/" /etc/zabbix/zabbix_server.conf echo "--- 関連サービスを再起動し、自動起動を有効化します ---" systemctl restart zabbix-server zabbix-agent httpd php-fpm systemctl enable zabbix-server zabbix-agent httpd php-fpm echo "--- Zabbixのセットアップが正常に完了しました ---"
適当なディレクトリに配置してスクリプトを実行してください。
[root@ip-10-0-30-48 work]# ll total 4 -rwxr-xr-x. 1 root root 1769 Aug 28 14:15 zabbixautoinstall.sh [root@ip-10-0-30-48 work]# ./zabbixautoinstall.sh
実行確認
スクリプト実行後、問題なくzabbixが起動しているか以下のポイントを確認します。
- systemctl statusコマンドでzabbixサーバ、zabbixエージェントが起動していること
# systemctl status zabbix-server ● zabbix-server.service - Zabbix Server Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; preset: disabled) Active: active (running) since Thu 2025-08-28 14:17:48 UTC; 1min 25s ago # systemctl status zabbix-agent ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; preset: disabled) Active: active (running) since Thu 2025-08-28 14:17:48 UTC; 1min 31s ago
- zabbixのwebインタフェースにアクセスできること
まとめ
本記事では、スクリプトを実行するだけでZabbix 7.0を自動インストールする手順をご紹介しました。なお、本記事で提供するスクリプトは、以下の環境を前提としています。
OS: RHEL系 (Rocky Linux, AlmaLinux など)
データベース: MySQL
Zabbixバージョン: 7.0
もし上記以外の環境(例: Ubuntu, PostgreSQL)でZabbixを構築されたい場合は、本スクリプトは対応しておりませんのでご注意ください。その場合は、Zabbix公式ドキュメントを参考に手動でインストールをお試しいただくか、今後の記事で別の環境向けのスクリプトを公開するまでお待ちいただけますと幸いです。