3.1 システム要件と準備
Zabbix導入のためのハードウェア・ソフトウェア要件
システム要件概要
Zabbixの導入を成功させるためには、適切なシステム要件の理解と準備が重要です。監視対象の規模、予想される負荷、高可用性の要求などを考慮して、最適なシステム構成を計画する必要があります。
要件決定の重要性
適切なシステム要件の設定により以下が実現されます:
- 安定したパフォーマンス: 継続的で信頼性の高い監視
- スケーラビリティ: 将来の拡張に対応
- コスト最適化: 過剰投資の回避
- 運用効率: メンテナンス負荷の最小化
ハードウェア要件
サーバー要件の計算方法
Zabbixサーバーのハードウェア要件は、以下の要因によって決まります:
基本的な算出要因
監視ホスト数
- 監視対象デバイス・サーバーの総数
- 新規追加予定デバイスを含む
データポイント数
- 1ホストあたりのアイテム数
- データ収集間隔
- 履歴保存期間
データベースサイズ
- 履歴データの保存期間
- トレンドデータの保存期間
- ログデータの量
推奨ハードウェア仕様
小規模環境(100ホスト未満)
yaml
CPU:
最小: 2コア
推奨: 4コア
アーキテクチャ: x86_64
メモリ:
最小: 1GB
推奨: 2GB
スワップ: 2GB
ストレージ:
最小: 2.5GB(OS含む)
推奨: 10GB(ログ・履歴含む)
データベース: 5GB
タイプ: SSD推奨
ネットワーク:
帯域幅: 100Mbps
レイテンシ: <10ms(エージェント間)
中規模環境(100-1,000ホスト)
yaml
CPU:
最小: 4コア
推奨: 8コア
特記事項: 高クロック推奨
メモリ:
最小: 4GB
推奨: 8GB
データベース用: 追加4GB
ストレージ:
システム: 20GB(SSD)
データベース: 50GB(高性能SSD)
ログ・バックアップ: 100GB
IOPS: 3,000以上
ネットワーク:
帯域幅: 1Gbps
冗長化: 推奨
大規模環境(1,000ホスト以上)
yaml
CPU:
最小: 8コア
推奨: 16コア以上
特記事項: マルチCPU構成も検討
メモリ:
最小: 16GB
推奨: 32GB以上
データベース専用: 64GB以上
ストレージ:
システム: 50GB(高性能SSD)
データベース: 1TB以上(NVMe SSD)
アーカイブ: 10TB以上
IOPS: 10,000以上
RAID: RAID10推奨
ネットワーク:
帯域幅: 10Gbps
冗長化: 必須
専用セグメント: 推奨
容量計画の計算式
データベースサイズの予測
日次データ量 = 監視ホスト数 × アイテム数/ホスト × データポイントサイズ × 収集間隔数/日
例:
1,000ホスト × 100アイテム × 90バイト × 2,880回(30秒間隔)= 約25GB/日
メモリ要件の計算
必要メモリ = ベースメモリ + (アクティブホスト数 × 1MB) + データベースキャッシュ
例:
基本2GB + (1,000ホスト × 1MB) + 4GB(DBキャッシュ)= 7GB
ソフトウェア要件
サポートオペレーティングシステム
Linux ディストリビューション
Red Hat系
- Red Hat Enterprise Linux 8.x, 9.x
- CentOS Stream 8, 9
- AlmaLinux 8.x, 9.x
- Rocky Linux 8.x, 9.x
Debian系
- Ubuntu LTS 18.04, 20.04, 22.04, 24.04
- Debian 10 (Buster), 11 (Bullseye), 12 (Bookworm)
SUSE系
- SUSE Linux Enterprise Server 12 SP5, 15
- openSUSE Leap 15.x
推奨OS設定
bash
# カーネルパラメータ例
echo 'net.core.somaxconn = 65535' >> /etc/sysctl.conf
echo 'vm.swappiness = 1' >> /etc/sysctl.conf
echo 'fs.file-max = 100000' >> /etc/sysctl.conf
# ファイル制限の設定
echo 'zabbix soft nofile 65536' >> /etc/security/limits.conf
echo 'zabbix hard nofile 65536' >> /etc/security/limits.conf
データベース要件
サポートデータベース
MySQL系(推奨)
yaml
MySQL:
バージョン: 8.0.x
最小: 8.0.31
推奨: 8.0.35以降
MariaDB:
バージョン: 10.5.x以降
推奨: 10.11.x(LTS)
最新: 11.x系も対応
PostgreSQL
yaml
PostgreSQL:
バージョン: 13.x以降
推奨: 15.x
最新: 16.x
特記事項: TimescaleDB拡張推奨
データベース設定例(MySQL)
sql
-- 設定例 (/etc/mysql/mysql.conf.d/mysqld.cnf)
[mysqld]
innodb_buffer_pool_size = 4G
innodb_log_file_size = 128M
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1
max_connections = 1000
table_open_cache = 5000
tmp_table_size = 64M
max_heap_table_size = 64M
Webサーバー要件
Apache HTTP Server
yaml
Apache:
バージョン: 2.4.x
最小: 2.4.25
必須モジュール:
- mod_php
- mod_rewrite
- mod_ssl(HTTPSの場合)
設定例:
ServerTokens: Prod
ServerSignature: Off
Timeout: 300
MaxRequestWorkers: 400
Nginx
yaml
Nginx:
バージョン: 1.18以降
推奨: 1.22以降
PHP-FPM: 必須
設定例:
worker_processes: auto
worker_connections: 1024
client_max_body_size: 16M
fastcgi_read_timeout: 300
PHP要件
バージョンとエクステンション
yaml
PHP:
バージョン: 8.0以降
推奨: 8.2
最新対応: 8.3
必須エクステンション:
- bcmath
- ctype
- libXML
- xmlreader
- xmlwriter
- session
- sockets
- mbstring
- gettext
- mysqli/pgsql
- gd
- openssl
- ldap(LDAP認証の場合)
PHP設定例
ini
; /etc/php/8.2/apache2/php.ini
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = Asia/Tokyo
; セッション設定
session.auto_start = 0
session.cookie_httponly = 1
session.cookie_secure = 1
session.use_strict_mode = 1
セキュリティ考慮事項
ファイアウォール設定
必要ポート
サービス | ポート | プロトコル | 用途 |
---|---|---|---|
Zabbix Server | 10051 | TCP | エージェント→サーバー |
Zabbix Agent | 10050 | TCP | サーバー→エージェント |
Web Interface | 80/443 | TCP | HTTP/HTTPS |
Database | 3306/5432 | TCP | MySQL/PostgreSQL |
SNMP | 161 | UDP | SNMP監視 |
ファイアウォール設定例(firewalld)
bash
# Zabbixサーバー用ポート開放
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
SSL/TLS設定
証明書の準備
bash
# 自己署名証明書の作成例
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/zabbix.key \
-out /etc/ssl/certs/zabbix.crt \
-subj "/C=JP/ST=Tokyo/L=Tokyo/O=YourOrg/CN=zabbix.yourdomain.com"
Apache SSL設定例
apache
<VirtualHost *:443>
ServerName zabbix.yourdomain.com
DocumentRoot /usr/share/zabbix
SSLEngine on
SSLCertificateFile /etc/ssl/certs/zabbix.crt
SSLCertificateKeyFile /etc/ssl/private/zabbix.key
# セキュリティヘッダー
Header always set Strict-Transport-Security "max-age=31536000"
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options DENY
</VirtualHost>
事前準備チェックリスト
インストール前確認項目
markdown
## ハードウェア
- [ ] CPU要件の確認(コア数・クロック)
- [ ] メモリ容量の確認
- [ ] ストレージ容量の確認
- [ ] ネットワーク帯域幅の確認
## ソフトウェア
- [ ] OS バージョンの互換性確認
- [ ] データベースの選択と準備
- [ ] Webサーバーの選択
- [ ] PHP バージョンの確認
## ネットワーク
- [ ] DNSの設定確認
- [ ] ファイアウォールポートの開放
- [ ] SSL証明書の準備(HTTPS使用時)
- [ ] 時刻同期(NTP)の設定
## セキュリティ
- [ ] SELinux/AppArmor設定の確認
- [ ] ユーザーアカウントの作成
- [ ] バックアップ戦略の策定
- [ ] 監査ログの設定準備
容量監視の設定
ディスク使用量監視
bash
# ディスク使用量チェックスクリプト例
#!/bin/bash
df -h | awk '$5 > 80 {print $0}' | while read line; do
echo "Warning: Disk usage above 80%: $line"
done
データベース容量監視
sql
-- MySQL データベース容量確認
SELECT
table_schema AS 'Database',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)'
FROM information_schema.tables
WHERE table_schema = 'zabbix'
GROUP BY table_schema;
まとめ
適切なシステム要件の計画と準備は、Zabbix導入の成功を左右する重要な要素です。特に以下の点を重視してください:
- スケーラビリティ: 将来の拡張を見越した余裕のある設計
- パフォーマンス: データベースとストレージの性能が全体のボトルネック
- セキュリティ: 本番運用を見据えたセキュリティ設定
- 監視: システム自体の監視と容量管理
次のセクションでは、これらの要件を満たすシステムへの具体的なインストール方法について説明します。
参考リンク