はじめに
Zabbix(ザビックス)とは、オープンソースの統合監視ソフトウェアです。
サーバーやネットワーク機器、アプリケーションなどのITインフラ全体をリアルタイムで監視し、以下のような機能を提供しています。
- 監視: 死活監視、リソース(CPU、メモリ、ディスクなど)の使用状況、サービスの動作状況、ログなどを収集
- 障害検知と通知: 異常を検知するとアラート(メールなど)で通知
- 可視化: 収集したデータをグラフやマップで表示し、状況を把握しやすくする
ここではAlmaLinux9.6にZabbixを構築する手順を記述します。
前提条件
- OS:AlmaLinux9.6(最小構成で構築しています)
- Zabbix:7系を構築
構築手順概要
- 必要パッケージ・リポジトリの導入
- MariaDBのインストール・初期設定
- Zabbixインストール
- データベース作成とZabbix初期データ投入
- Zabbixサーバ設定ファイルの編集
- Apache + PHP 設定
- サービス起動と自動起動
- ファイアウォール設定
- Webブラウザでアクセス確認
構築手順
①必要パッケージ・リポジトリの導入
$ sudo dnf install -y epel-release
$ sudo dnf install -y wget vim net-tools
Zabbixの公式リポジトリを追加
$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-3.el9.noarch.rpm
$ sudo dnf clean all
②MariaDBのインストール・初期設定
$ sudo dnf install -y mariadb-server
# 起動と自動起動
$ sudo systemctl enable --now mariadb
# 初期セキュリティ設定(rootパスワード設定など)
$ sudo mysql_secure_installation
③Zabbixインストール
$ sudo dnf install -y --disablerepo=epel \
zabbix-server-mysql zabbix-web zabbix-apache-conf zabbix-sql-scripts zabbix-agent \
php php-fpm php-mysqlnd php-mbstring php-gd php-xml php-bcmath php-ldap php-json
$ sudo sed -i 's/^\[epel\]/[epel]\nexclude=zabbix*/' /etc/yum.repos.d/epel.repo
$ sudo dnf makecache
④データベース作成とZabbix初期データ投入
$ sudo mysql -u root -p
# Zabbix用DB・ユーザー作成
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'ZabbixPass123!';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
# 初期スキーマ投入
$ zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
⑤Zabbixサーバ設定ファイルの編集
$ sudo vim /etc/zabbix/zabbix_server.conf
# 以下の行を確認・修正
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=ZabbixPass123! # 4で設定したパスワードを指定
⑥Apache + PHP 設定
# PHPのタイムゾーン設定を修正
$ sudo vim /etc/php-fpm.d/zabbix.conf
# タイムゾーンを日本に変更
php_value[date.timezone] = Asia/Tokyo
⑦サービス起動と自動起動
$ sudo systemctl enable --now zabbix-server zabbix-agent httpd php-fpm
# ステータス確認
$ sudo systemctl status zabbix-server
$ sudo systemctl status zabbix-agent
$ sudo systemctl status httpd
⑧ファイアウォール設定
$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --reload
⑨Webブラウザでアクセス確認
ブラウザから以下を指定してアクセスするとZabbixの画面表示されます。
http://<サーバのIPアドレス>/zabbix
※デフォルトの言語で日本語が選択できない場合は日本語のロケールパッケージの導入をしましょう。
# 日本語ロケールパッケージの導入
$ sudo dnf install -y glibc-langpack-ja
# ロケールが有効になったか確認
$ localectl list-locales | grep ja_JP
# Apach/PHP-FPMを再起動
$ sudo systemctl restart httpd php-fpm
ZabbixWebUIの初期セットアップ
- 言語を選択(上記画面)
- 動作環境のチェック
PHPや拡張モジュール、パーミッションなどのチェックが自動的に行われます。
NGの場合赤色で「fail」と表示され、該当パッケージや設定を修正する必要があります。
3. データベース接続設定
構築時に設定したDB情報を記述する。ポートは変更していなければ3306
4. サーバ名の設定
5. 設定の確認
6. インストール完了
6. ログイン
デフォルトで以下の情報でログインできます。
ユーザ名:Admin
パスワード:zabbix
これでZabbixサーバの構築が一通り完了しました。
この後、監視したいサーバにZabbix Agentをセットアップして監視登録をすると監視を始めることができます。
その他参考情報
- 通信など上手くいかない場合、とりあえずSELinuxを停止してみましょう
以下の設定後、再起動を行う
$ sudo vi /etc/selinux/config
SELINUX=disabled
- ファイアウォールの設定
# サーバ側は10051のポートを開けておきましょう
$ sudo firewall-cmd --list-ports
$ sudo firewall-cmd --add-port=10051/tcp --permanent
$ sudo firewall-cmd --reload
# エージェント側は10050のポートを開けておきましょう
$ sudo firewall-cmd --list-ports
$ sudo firewall-cmd --add-port=10050/tcp --permanent
$ sudo firewall-cmd --reload
- 操作した設定ファイルに応じて再起動するサービスについて
# サーバ側設定(/etc/zabbix/zabbix_server.conf)を編集した場合
$ sudo systemctl restart zabbix-server
# Web UI 側(/etc/zabbix/web/zabbix.conf.php)を編集した場合
$ sudo systemctl restart httpd php-fpm
# エージェントの設定(/etc/zabbix/zabbix_agentd.conf)を編集した場合
$ sudo systemctl restart zabbix-agent
- Zabbixに関するログを確認する方法
# サーバのログを確認する
sudo tail -n 20 /var/log/zabbix/zabbix_server.log
# エージェントのログを確認する
sudo tail -n 20 /var/log/zabbix/zabbix_agentd.log