MENU

Zabbix 7.0 LTS インストール完全ガイド — AlmaLinux 9 + MySQL 構成

最終更新: 2026年3月
検証環境: AlmaLinux 9.5 / MySQL 8.0 / Zabbix 7.0.23 LTS / Apache(httpd)


Zabbixの導入において最もつまずきやすいのがインストール工程である。公式ドキュメントは網羅的だが、OS側の前提設定やSELinux・ファイアウォールの対応まで含めた一気通貫の手順が見つかりにくい。

本記事では、AlmaLinux 9の最小インストールからZabbix 7.0 LTSの構築完了まで、コマンドベースで再現可能な手順を一通り解説する。データベースはMySQL 8.0、WebサーバーはApache(httpd)を使用するオーソドックスな構成である。


目次

構成概要

本記事で構築するZabbix環境の構成を以下に示す。

コンポーネントバージョン / 構成
OSAlmaLinux 9.5(最小インストール)
Zabbix Server7.0 LTS(7.0.23)
データベースMySQL 8.0(mysql-server)
WebサーバーApache(httpd)+ PHP 8.0
Zabbix AgentZabbix Agent 2
Zabbix FrontendZabbix Web(Apache + PHP)

すべてのコンポーネントを1台のサーバーにインストールするオールインワン構成である。小〜中規模環境(監視対象500台以下)であればこの構成で十分な性能が得られる。

大規模環境ではZabbixサーバー、データベース、フロントエンドを分離する構成が推奨されるが、本記事の手順をベースに分離構成へ拡張できる。


STEP 1: AlmaLinux 9 の初期設定

Zabbixのインストールに進む前に、OS側の初期設定を実施する。AlmaLinux 9の最小インストール(Minimal Install)が完了した直後の状態を前提とする。

1-1. システムの最新化

まず、全パッケージを最新の状態にアップデートする。

sudo dnf update -y

カーネルが更新された場合は再起動する。

sudo reboot

1-2. タイムゾーンと時刻同期の設定

Zabbixの監視データは時刻に強く依存するため、正確な時刻設定は必須である。

# タイムゾーンをAsia/Tokyoに設定
sudo timedatectl set-timezone Asia/Tokyo

# 時刻同期の確認
timedatectl

NTP service: active と表示されていればchronydによる時刻同期が有効である。AlmaLinux 9ではchronydがデフォルトでインストール・有効化されている。

もしNTPが無効の場合は以下を実行する。

sudo systemctl enable --now chronyd

1-3. ホスト名の設定

Zabbixサーバー自体の監視にも使用するため、識別しやすいホスト名を設定する。

sudo hostnamectl set-hostname zabbix-server

/etc/hosts にもホスト名を追記する。

echo "127.0.0.1 zabbix-server" | sudo tee -a /etc/hosts

1-4. 必要パッケージのインストール

Zabbixの構築に必要な基本パッケージをインストールする。

sudo dnf install -y vim wget curl tar gzip net-tools bind-utils

1-5. SELinux の設定

AlmaLinux 9ではSELinuxがデフォルトで Enforcing モードになっている。Zabbixは公式にSELinuxポリシーを提供しているため、SELinuxを有効のまま運用することを推奨する。

現在のSELinux状態を確認する。

getenforce

Enforcing と表示されれば有効である。Zabbix用のSELinuxポリシーはZabbixパッケージのインストール時に自動適用されるため、この段階では特別な設定は不要である。

なお、SELinuxを無効化する方法を紹介しているサイトも多いが、本番環境ではセキュリティ上の理由からSELinuxの有効化を推奨する。どうしても無効化が必要な場合は以下の手順となる。

# SELinuxの無効化(非推奨)
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo reboot

1-6. ファイアウォールの設定

Zabbixで使用するポートを事前に開放しておく。

# HTTP(80)とHTTPS(443)— Zabbixフロントエンド用
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Zabbix Server(10051)— アクティブエージェントからの接続受付
sudo firewall-cmd --permanent --add-port=10051/tcp

# Zabbix Agent(10050)— サーバー自身の監視用
sudo firewall-cmd --permanent --add-port=10050/tcp

# 設定の反映
sudo firewall-cmd --reload

# 確認
sudo firewall-cmd --list-all

SNMP監視を行う場合は、別途UDP 161番ポートの開放は不要である(ZabbixサーバーからSNMP対象機器へリクエストを送信する方向であるため、サーバー側の受信ポート開放は必要ない)。ただし、SNMPトラップを受信する場合はUDP 162番ポートの開放が必要となる。


STEP 2: MySQL 8.0 のインストールと初期設定

2-1. MySQL のインストール

AlmaLinux 9にはMySQL 8.0がAppStreamリポジトリで提供されている。

# MySQLモジュールの有効化とインストール
sudo dnf module enable mysql:8.0 -y
sudo dnf install mysql-server -y

2-2. MySQL の起動と自動起動設定

sudo systemctl enable --now mysqld

2-3. MySQL の初期セキュリティ設定

mysql_secure_installation を実行して初期セキュリティ設定を行う。

sudo mysql_secure_installation

以下の質問に順番に回答する。

質問推奨回答
VALIDATE PASSWORD component のセットアップy(有効化)
パスワードポリシーのレベル1(MEDIUM)以上
root パスワードの設定複雑なパスワードを入力
anonymous ユーザーの削除y
root のリモートログイン禁止y
test データベースの削除y
権限テーブルの再読み込みy

2-4. Zabbix 用データベースとユーザーの作成

MySQLにrootでログインし、Zabbix用のデータベースとユーザーを作成する。

mysql -u root -p

以下のSQLを実行する。<password> は実際に使用するパスワードに置き換える。

-- Zabbix用データベースの作成(文字コードはutf8mb4を使用)
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

-- Zabbix用ユーザーの作成
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '<password>';

-- 権限の付与
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

-- グローバル権限の設定(初期スキーマインポートに必要)
SET GLOBAL log_bin_trust_function_creators = 1;

-- 反映
FLUSH PRIVILEGES;

EXIT;

log_bin_trust_function_creators はZabbixのスキーマにストアドファンクションが含まれるため、インポート時に必要となる設定である。スキーマインポート完了後に無効化する。

2-5. MySQL のチューニング(推奨)

デフォルトのMySQL設定はZabbixの運用には不十分な場合がある。/etc/my.cnf.d/zabbix.cnf を作成して基本的なチューニングを行う。

sudo vi /etc/my.cnf.d/zabbix.cnf

以下を記述する。メモリ4GB以上の環境を想定した設定例である。

[mysqld]
# InnoDB バッファプール(物理メモリの50%程度を目安)
innodb_buffer_pool_size = 2G

# InnoDB ログファイルサイズ
innodb_log_file_size = 512M

# InnoDB フラッシュ設定(パフォーマンス優先)
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT

# 最大接続数
max_connections = 300

# スロークエリログの有効化
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

スロークエリログのディレクトリを作成する。

sudo mkdir -p /var/log/mysql
sudo chown mysql:mysql /var/log/mysql

設定を反映するためMySQLを再起動する。

sudo systemctl restart mysqld

STEP 3: Zabbix 7.0 LTS のインストール

3-1. Zabbix 公式リポジトリの追加

Zabbix公式リポジトリをインストールする。AlmaLinux 9はRHEL 9互換のパッケージを使用する。

sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
sudo dnf clean all

3-2. Zabbix パッケージのインストール

Zabbixサーバー、フロントエンド、Agent 2を一括でインストールする。

sudo dnf install -y \
  zabbix-server-mysql \
  zabbix-web-mysql \
  zabbix-apache-conf \
  zabbix-sql-scripts \
  zabbix-selinux-policy \
  zabbix-agent2 \
  zabbix-agent2-plugin-*

各パッケージの役割は以下の通りである。

パッケージ役割
zabbix-server-mysqlZabbixサーバー本体(MySQL版)
zabbix-web-mysqlWebフロントエンド(MySQL版)
zabbix-apache-confApache用の設定ファイル
zabbix-sql-scriptsデータベース初期スキーマ
zabbix-selinux-policySELinux用ポリシー
zabbix-agent2Zabbix Agent 2(サーバー自身の監視用)
zabbix-agent2-plugin-*Agent 2の各種プラグイン

3-3. 日本語環境の準備

Zabbix Web UIを日本語で使用する場合、以下のパッケージをインストールする。

sudo dnf install -y glibc-langpack-ja zabbix-web-japanese

日本語フォントが不足しているとグラフの文字が豆腐(□□)になるため、フォントパッケージもインストールする。

sudo dnf install -y google-noto-sans-cjk-jp-fonts

STEP 4: データベースの初期化

4-1. 初期スキーマのインポート

Zabbixの初期スキーマとデータをMySQLにインポートする。データ量が大きいため数分かかる場合がある。

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

パスワードの入力を求められたら、STEP 2で設定したzabbixユーザーのパスワードを入力する。

4-2. log_bin_trust_function_creators の無効化

スキーマインポートが完了したら、STEP 2で有効化した log_bin_trust_function_creators を無効化する。

mysql -u root -p
SET GLOBAL log_bin_trust_function_creators = 0;
EXIT;

4-3. インポートの確認

スキーマが正しくインポートされたか確認する。

mysql -u zabbix -p -e "USE zabbix; SHOW TABLES;" | head -20

actionshostsitems 等のテーブルが表示されれば成功である。


STEP 5: Zabbix Server の設定

5-1. 設定ファイルの編集

Zabbixサーバーの設定ファイルを編集する。

sudo vi /etc/zabbix/zabbix_server.conf

最低限変更が必要なパラメータは以下の通りである。

# データベース接続設定
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password>

DBPassword にはSTEP 2で設定したzabbixユーザーのパスワードを記述する。

5-2. パフォーマンス関連の推奨設定

デフォルト値でも動作するが、監視対象が増えた際のボトルネックを防ぐため以下のパラメータも調整しておく。

# キャッシュサイズ(デフォルト: 32M)
CacheSize=128M

# ヒストリキャッシュサイズ(デフォルト: 16M)
HistoryCacheSize=64M

# ポーラープロセス数(デフォルト: 5)
StartPollers=10

# SNMPポーラープロセス数(デフォルト: 1)
StartPollersUnreachable=3

# ICMP Pingerプロセス数(デフォルト: 1)
StartPingers=3

設定値は監視対象の規模に応じて調整する。上記は監視対象100〜300台程度を想定した値である。

5-3. Zabbix Server の起動

sudo systemctl enable --now zabbix-server

起動後、ログを確認してエラーがないことを確認する。

sudo tail -50 /var/log/zabbix/zabbix_server.log

以下のようなメッセージが表示されれば正常起動である。

Starting Zabbix Server. Zabbix 7.0.23 (revision xxxxxx).
server #0 started [main process]
server #1 started [configuration syncer #1]
...

cannot connect to database のようなエラーが出る場合は、zabbix_server.conf のDB設定を見直す。


STEP 6: Zabbix フロントエンドの設定

6-1. PHP タイムゾーンの設定

Zabbix用のPHP設定ファイルでタイムゾーンを設定する。

sudo vi /etc/php-fpm.d/zabbix.conf

以下の行のコメントアウトを外してタイムゾーンを設定する。

php_value[date.timezone] = Asia/Tokyo

6-2. Apache と php-fpm の起動

sudo systemctl enable --now httpd php-fpm

6-3. Zabbix Agent 2 の設定と起動

サーバー自身の監視のため、Agent 2を設定して起動する。

sudo vi /etc/zabbix/zabbix_agent2.conf
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix-server
sudo systemctl enable --now zabbix-agent2

STEP 7: Web UI 初期セットアップウィザード

ブラウザでZabbixフロントエンドにアクセスし、初期セットアップウィザードを完了する。

7-1. ウィザードへのアクセス

ブラウザで以下のURLにアクセスする。

http://<サーバーのIPアドレス>/zabbix

7-2. ウィザードの各ステップ

ステップ 1: Welcome

言語を選択する。「Japanese (ja_JP)」を選択すると以降のステップが日本語で表示される。「次のステップ」をクリックする。

ステップ 2: 前提条件のチェック

PHPのバージョンや必要な拡張モジュールが確認される。すべての項目が「OK」になっていることを確認する。

「Fail」の項目がある場合は、不足しているPHPモジュールをインストールする。通常、本記事の手順通りにパッケージをインストールしていれば問題は発生しない。

ステップ 3: データベース接続の設定

項目設定値
データベースタイプMySQL
データベースホストlocalhost
データベースポート0(デフォルト)
データベース名zabbix
ユーザーzabbix
パスワード(STEP 2で設定したパスワード)

ステップ 4: Zabbix Server の設定

項目設定値
ホストlocalhost
ポート10051
名前(任意。ダッシュボードに表示される名前)

ステップ 5: GUI 設定

項目設定値
デフォルトのタイムゾーン(UTC+09:00) Asia/Tokyo
デフォルトのテーマBlue(任意)

ステップ 6: 設定の確認

入力内容を確認し、「次のステップ」をクリックする。

ステップ 7: インストール完了

「おめでとうございます!Zabbixフロントエンドのインストールが完了しました。」と表示されればセットアップ完了である。

7-3. 初回ログイン

セットアップ完了後、ログイン画面が表示される。デフォルトの管理者アカウントでログインする。

項目
ユーザー名Admin(大文字のAに注意)
パスワードzabbix

ログイン後、直ちにパスワードを変更する。パスワードの変更手順は「Zabbix 7.0 導入後にやるべき初期設定 10選」の記事を参照していただきたい。


STEP 8: 動作確認

8-1. Zabbix Server 自身の監視確認

初期状態で「Zabbix server」というホストが登録されている。このホストにはデフォルトで「Linux by Zabbix agent」テンプレートと「Zabbix server health」テンプレートがリンクされている。

監視データ → 最新データ → ホスト: Zabbix server

数分待つと、CPU使用率やメモリ使用率などのデータが取得され始める。「ZBX」アイコンが緑色になっていればAgent通信が正常に動作している。

8-2. サービスの稼働状況の確認

各サービスの稼働状況を一括で確認する。

sudo systemctl status zabbix-server zabbix-agent2 httpd php-fpm mysqld

すべてのサービスが active (running) であれば正常である。

8-3. ログの最終確認

各コンポーネントのログにエラーがないことを確認する。

# Zabbix Server
sudo tail -20 /var/log/zabbix/zabbix_server.log

# Zabbix Agent 2
sudo tail -20 /var/log/zabbix/zabbix_agent2.log

# Apache
sudo tail -20 /var/log/httpd/error_log

トラブルシューティング

よくある問題と対処法

問題: Web UIにアクセスできない(接続拒否)

確認項目コマンド
Apacheが起動しているかsudo systemctl status httpd
ファイアウォールでHTTPが許可されているかsudo firewall-cmd --list-all
ポート80がLISTENしているかss -tlnp | grep :80

問題: Web UIに「Zabbix server is not running」と表示される

確認項目コマンド
Zabbix Serverが起動しているかsudo systemctl status zabbix-server
サーバーログにエラーがないかsudo tail -50 /var/log/zabbix/zabbix_server.log
DB接続が正しいかmysql -u zabbix -p -e "USE zabbix; SELECT COUNT(*) FROM hosts;"

問題: 「Database error」が表示される

確認項目対処
MySQLが起動しているかsudo systemctl status mysqld
zabbixユーザーの権限MySQLにrootでログインし SHOW GRANTS FOR 'zabbix'@'localhost'; で確認
パスワードの一致zabbix_server.conf/etc/zabbix/web/zabbix.conf.php のパスワードが一致しているか確認

問題: グラフの日本語が文字化け(豆腐□□)する

# フォントがインストールされているか確認
fc-list | grep -i noto

# 未インストールの場合
sudo dnf install -y google-noto-sans-cjk-jp-fonts

# php-fpmを再起動
sudo systemctl restart php-fpm

問題: SELinuxがZabbixの動作をブロックしている

# SELinuxの拒否ログを確認
sudo ausearch -m avc -ts recent

# Zabbix用のSELinuxポリシーがインストールされているか確認
rpm -qa | grep zabbix-selinux

# カスタムポリシーが必要な場合
sudo setsebool -P httpd_can_connect_zabbix on
sudo setsebool -P zabbix_can_network on

構成のバリエーション

Nginx を使用する場合

本記事ではApache(httpd)を使用したが、Nginxを使用する場合はパッケージを以下に変更する。

# Apacheの代わりにNginx版をインストール
sudo dnf install -y zabbix-nginx-conf

# httpd関連パッケージは不要
# zabbix-apache-conf → zabbix-nginx-conf に置き換え

Nginx版の場合、/etc/nginx/conf.d/zabbix.conf にZabbix用の設定ファイルが配置される。listen ポートとサーバー名を環境に合わせて編集する。

sudo vi /etc/nginx/conf.d/zabbix.conf
server {
    listen          8080;
    server_name     zabbix.example.com;
    ...
}

PostgreSQL を使用する場合

MySQLの代わりにPostgreSQLを使用する場合は、パッケージとスキーマインポートの手順が異なる。

# PostgreSQL版のパッケージ
sudo dnf install -y zabbix-server-pgsql zabbix-web-pgsql

# データベース作成
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

# スキーマインポート
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

PostgreSQL版はTimescaleDB拡張との組み合わせにより、大規模環境でのヒストリテーブルの自動パーティショニングが可能となる。大量の監視データを扱う環境では有力な選択肢である。

Rocky Linux 9 での手順の違い

Rocky Linux 9はAlmaLinux 9と同じRHEL 9互換ディストリビューションであり、本記事の手順がそのまま適用可能である。Zabbix公式リポジトリのURLのみ以下に変更する。

sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm

それ以外のすべての手順は同一である。


まとめ

AlmaLinux 9 + MySQL 8.0構成でのZabbix 7.0 LTSインストール手順を解説した。

  1. AlmaLinux 9の初期設定(タイムゾーン、SELinux、ファイアウォール)
  2. MySQL 8.0のインストールと初期設定
  3. Zabbix公式リポジトリの追加とパッケージインストール
  4. データベースの初期スキーマインポート
  5. Zabbix Serverの設定と起動
  6. フロントエンドの設定と初期セットアップウィザード
  7. 動作確認

インストールが完了したら、次のステップとして「Zabbix 7.0 導入後にやるべき初期設定 10選」の記事に進み、パスワード変更やハウスキーピングの最適化、通知設定などの本番運用に必要な設定を行う。

関連記事:

  • Zabbix 7.0 導入後にやるべき初期設定 10選
  • Zabbix バージョン比較 — 7.0 LTS / 7.4 / 8.0 の違いと選び方
  • Zabbix で Yamaha RTX を SNMP 監視する方法 — 基礎から設定まで完全解説

本記事の内容は検証環境での結果であり、本番環境への適用は各自の環境に合わせて十分にテストのうえ実施していただきたい。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次