スクリプトを用いてZabbixサーバのインストールを自動化してみた

こんにちは、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など)をご希望の場合は、一部カスタマイズが必要となりますので、あらかじめご了承ください。

 

前提条件

  1. MySQLサーバが起動していること
    本スクリプトはZabbixサーバのコンポーネントをインストールし、DBに接続する設定を行いますが、MySQLサーバ自体のインストールや起動は行いません。あらかじめMySQLが利用可能な状態にしておいてください。
  2. OSがZabbixサーバのバージョンに対応していること
    Zabbixサーバはバージョンごとに公式にサポートされるOSが定められています。対応しているOSのバージョンはこちらを確認してください。
  3. 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公式ドキュメントを参考に手動でインストールをお試しいただくか、今後の記事で別の環境向けのスクリプトを公開するまでお待ちいただけますと幸いです。

 

著者について

保有資格:健康マスター, FP3級
健康リテラシーと金融リテラシーの高さが強みのエンジニアです

坂木 翼をフォローする

クラウドに強いによるエンジニアブログです。

SCSKでは、自社クラウドと3大メガクラウドの強みを活かし、ハイブリッドクラウド/マルチクラウドのソリューションを展開しています。業界の深い理解をもとに、お客様の業務要件に最適なアーキテクチャをご提案いたします。サービスサイトでは、お客様のDX推進をワンストップで支援するサービスの詳細や導入事例を紹介しています。

Zabbix運用・監視
シェアする
タイトルとURLをコピーしました