3.1 システム要件と準備

Zabbix導入のためのハードウェア・ソフトウェア要件

システム要件概要

Zabbixの導入を成功させるためには、適切なシステム要件の理解と準備が重要です。監視対象の規模、予想される負荷、高可用性の要求などを考慮して、最適なシステム構成を計画する必要があります。

要件決定の重要性

適切なシステム要件の設定により以下が実現されます:

  • 安定したパフォーマンス: 継続的で信頼性の高い監視
  • スケーラビリティ: 将来の拡張に対応
  • コスト最適化: 過剰投資の回避
  • 運用効率: メンテナンス負荷の最小化

ハードウェア要件

サーバー要件の計算方法

Zabbixサーバーのハードウェア要件は、以下の要因によって決まります:

基本的な算出要因

  1. 監視ホスト数

    • 監視対象デバイス・サーバーの総数
    • 新規追加予定デバイスを含む
  2. データポイント数

    • 1ホストあたりのアイテム数
    • データ収集間隔
    • 履歴保存期間
  3. データベースサイズ

    • 履歴データの保存期間
    • トレンドデータの保存期間
    • ログデータの量

推奨ハードウェア仕様

小規模環境(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 Server10051TCPエージェント→サーバー
Zabbix Agent10050TCPサーバー→エージェント
Web Interface80/443TCPHTTP/HTTPS
Database3306/5432TCPMySQL/PostgreSQL
SNMP161UDPSNMP監視

ファイアウォール設定例(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導入の成功を左右する重要な要素です。特に以下の点を重視してください:

  1. スケーラビリティ: 将来の拡張を見越した余裕のある設計
  2. パフォーマンス: データベースとストレージの性能が全体のボトルネック
  3. セキュリティ: 本番運用を見据えたセキュリティ設定
  4. 監視: システム自体の監視と容量管理

次のセクションでは、これらの要件を満たすシステムへの具体的なインストール方法について説明します。


参考リンク

← 目次に戻る | 次へ: 3.2 インストール方法 →