0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Zabbixサーバ VM2台構成(Server / DB)構築

Last updated at Posted at 2025-11-22

はじめに

備忘を兼ねて、ZabbixサーバのDB分離構成を構築した際の手順を投稿します。
※VirtualBox上で構築しました。

構成図

1.環境準備

VM名 OS CPU メモリ ディスク 役割
DB VM AlmaLinux 9 2 vCPU 4GB 40GB SSD PostgreSQL DB
Zabbix Server VM AlmaLinux 9 4 vCPU 8GB 20GB SSD Zabbix Server + Web UI

リソース割り当ての方針

DB VM側:

  • メモリ重視(4GB)→ PostgreSQLのバッファキャッシュ
  • ディスクはI/O集中型(40GB SSD)→ WALログ・履歴データ
  • CPUはクエリ処理に最低限(2 vCPU)

Zabbix Server VM側:

  • CPU重視(4 vCPU)→ ポーラー・トラッパー処理
  • メモリはWeb UIとZabbixキャッシュ用(8GB)
  • ディスクはログと一時ファイル用(20GB)

2.サーバ構築

OSインストール後に各VMで共通して、基本設定を行います。
自分の備忘のために、こちらも設定項目を記載しておきます。

OSインストール後の共通設定一覧
項目 設定内容 コマンド例
OS更新 最新パッケージへ更新 dnf update -y
基本パッケージ導入 vimやネットワークツールなど最低限の導入 dnf install -y vim openssh-server
タイムゾーン設定 Asia/Tokyo に設定 timedatectl set-timezone Asia/Tokyo
SELinux設定 永続で無効化(任意) /etc/selinux/configSELINUX=disabled
SELinux設定 一時的に無効化(任意) setenforce 0
ファイアウォール 検証用途では停止(任意) systemctl stop firewalld
systemctl disable firewalld
ネットワーク確認 IPアドレスや疎通確認 ip a / ping 8.8.8.8
ネットワーク確認 IPアドレスの設定(任意) 一時的:ip addr / 永続化:nmcli
ホスト名設定 ホスト名が正しく設定されているか確認 hostnamectl
ホスト名設定 新しいホスト名を設定 sudo hostnamectl set-hostname <host名>
ホスト名設定 /etc/hosts編集 /etc/hosts<IPアドレス> <host名>
ホスト名設定 PS1変数にホスト名を含めるよう設定 export PS1="[\u@\h \W]\\$ "
ホスト名設定 プロンプト設定を永続化(bashの場合) echo 'export PS1="[\u@\h \W]\\$ "' >> ~/.bashrc

SSH設定

項目 設定内容 コマンド例
SSH(パスワード認証の場合) サービス起動と自動起動設定 systemctl enable --now sshd
SSH(パスワード認証の場合) ポート22が開いているか確認 ss -tnlp | grep ssh
SSH(パスワード認証の場合) rootログイン禁止(推奨) /etc/ssh/sshd_configPermitRootLogin no
SSH(パスワード認証の場合) 設定変更を反映 systemctl restart sshd
SSH(公開鍵認証の場合) サービス起動と自動起動設定 systemctl enable --now sshd
SSH(公開鍵認証の場合) ポート22が開いているか確認 ss -tnlp | grep ssh
SSH(公開鍵認証の場合) authorized_keys に公開鍵を登録 ~/.ssh/authorized_keys に追記
SSH(公開鍵認証の場合) セキュリティ強化(推奨) /etc/ssh/sshd_configPermitRootLogin no
SSH(公開鍵認証の場合) 公開鍵認証運用時に設定(任意) /etc/ssh/sshd_configPasswordAuthentication no
SSH(公開鍵認証の場合) 設定変更を反映 systemctl restart sshd

2.1 DBサーバ構築

DB VM(VirtualBox)設定一覧

項目 設定内容
マシン名 Zabbix2 DB
ISOイメージ AlmaLinux-9.6-x86_64-minimal.iso
ゲストOSタイプ Red Hat (64-bit)
メインメモリ 4096MB(4GB)
プロセッサー数 2 vCPU
ディスクサイズ 40.00 GB
ディスク割り当て方式 可変サイズ(全サイズ事前割り当て:false)
EFI有効 false
ホスト名 / ドメイン名 Zabbix2-DB.myguest.virtualbox.org
Guest Additionsのインストール false
自動インストール false

ディレクトリ構成

# DBサーバのディレクトリ構成
/var/lib/pgsql/data
  ├── postgresql.conf           # DB設定ファイル
  ├── pg_hba.conf               # 接続制御設定
  └── pg_ident.conf             # ユーザーマッピング
/var/lib/pgsql/data
  ├── base/                     # 実データファイル
  ├── pg_wal/                   # WALログ
  └── global/                   # グローバル設定・メタ情報
/var/log/postgresql/
  └── postgresql.log            # DBログ

設定項目

設定内容 コマンド例
PostgreSQLインストール (拡張モジュールも含む) dnf install -y postgresql-server postgresql-contrib
postgresql-setup --initdb
DBサービス起動と自動起動設定 systemctl enable --now postgresql
Zabbix用DBとユーザー作成 psql -U postgres 内で以下を実行:
CREATE DATABASE zabbix;
CREATE USER zabbix WITH PASSWORD 'zabbixpass';
GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;
postgresql.conf編集 /var/lib/pgsql/data/postgresql.conflisten_addresses = '*' に変更
postgresql.conf編集
ログ設定(任意)
log_destination = 'stderr'
log_directory = '/var/log/postgresql'
log_statement = 'none'
log_min_duration_statement = 1000
ログ出力先ディレクトリの作成
(任意)
mkdir /var/log/postgresql
chown postgres:postgres /var/log/postgresql
pg_hba.conf編集 /var/lib/pgsql/data/pg_hba.confhost all all <任意のサブネット> md5 を追加
DBサービス再起動 sudo systemctl restart postgresql

確認項目

  • 作成したデータベースの確認:
    postgres=# \lまたはpostgres=# SELECT datname FROM pg_database;
  • ユーザ(ロール)の確認:
    postgres=# \duまたはpostgres=# SELECT rolname FROM pg_roles;
  • Zabbix用DB接続確認:
    psql -h <ホスト名> -U <接続ユーザ> <データベース>

2.2 Zabbix Server構築

Zabbix Server VM(VirtualBox)設定一覧

項目 設定内容
マシン名 Zabbix2 Server
ISOイメージ AlmaLinux-9.6-x86_64-minimal.iso
ゲストOSタイプ Red Hat (64-bit)
メインメモリ 8192 MB(8GB)
プロセッサー数 4 vCPU
ディスクサイズ 20.00 GB
ディスク割り当て方式 可変サイズ(全サイズ事前割り当て:false)
EFI有効 false
ホスト名 / ドメイン名 Zabbix2-Server.myguest.virtualbox.org
Guest Additionsのインストール false
自動インストール false

ディレクトリ構成

# Zabbix Serverのディレクトリ構成

/etc/zabbix/
  ├── zabbix_server.conf        # Zabbix Server設定ファイル
  ├── web/                      # Web UI設定 (PHP, Apache/Nginx連携)
  └── zabbix_agentd.conf        # Agent設定(必要に応じて)
/var/log/zabbix/
  ├── zabbix_server.log         # Serverログ
  └── zabbix_agentd.log         # Agentログ
/usr/share/zabbix/sql-scripts/postgresql
  └── server.sql.gz             # 初期スキーマやデータ投入用SQL

※ 環境やパッケージのバージョンによってファイル配置場所が異なる場合があります。
rpm -ql <パッケージ名>コマンドで、適宜ファイル配置を確認してください。

Zabbix-serverの設定項目

設定内容 コマンド例
Zabbixリポジトリ追加 rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-1.el9.noarch.rpm
dnf clean all
Server + Frontendインストール dnf install -y zabbix-server-pgsql zabbix-web-pgsql php-pgsql zabbix-apache-conf
Zabbixエージェントインストール(任意) dnf install -y zabbix-agent
PostgreSQL関連のインストール dnf install -y zabbix-sql-scripts postgresql
DB接続設定(zabbix_server.conf) DBHost=<DBホスト名>
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpass
初期スキーマ投入 zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | psql -h <DBホスト名> -U zabbix zabbix
zabbix_server.conf編集
ログ設定(任意)
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=1
サービス起動と自動起動設定 systemctl enable --now zabbix-server zabbix-agent httpd

Web UIの設定項目

設定内容 コマンド例・操作内容
Apache起動と自動起動設定 systemctl enable --now httpd
PHPタイムゾーン設定 /etc/php.ini にて date.timezone = Asia/Tokyo を設定
Web UI初期セットアップ ブラウザで http://<Zabbix ServerのIP>/zabbix にアクセス
DB接続情報の入力 GUIで以下を入力:
DBタイプ:PostgreSQL
ホスト:zbx-db
DB名:zabbix
ユーザー:zabbix
パスワード:zabbixpass
初期ログイン ユーザー名:Admin
パスワード:zabbix
日本語化(任意) Web UI右上の「ユーザー設定」から言語を Japanese に変更
dnf install -y glibc-langpack-jaコマンドで日本語ロケール のインストールが必要です。

ログインまでできると、以下のような画面が表示されます。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?