初めに
今年からZabbixを知り、触り始め、今は、業務において、構築・運用・監視を一人で担当しているhamekoです。
Zabbix Advent Calendarを見つけて、「これはアウトプットのチャンス!」と思い、記事を書くことにしました。
この記事は、こんな方向けです!
* Zabbixを初めて触るシステム管理者・エンジニア
* RHEL 9.0環境にZabbix Serverを立てたい方
* オンプレ(仮想サーバー)の監視を始めたい方
注意点
筆者の環境(RHEL 9.0 on VMware)での作業内容であり、知識が浅いため、誤りがあるかもしれません。その点ご了承ください!
今回は私(6割)とAI(4割)で解説していきます
この記事の目標
この記事を読み終わる頃には、以下の状態になっているはずです!
* オンプレミスの仮想基盤上に Zabbix Server (LTS版推奨) が立ち上がる準備が完了。
* Zabbixが利用するデータベース(MariaDB)の設定まで完了。
* (後編で)LinuxサーバーのCPUやメモリの監視が自動で始まる!
今回の環境構成
| 項目 | 詳細 |
|---|---|
| Zabbix Server OS | Red Hat Enterprise Linux (RHEL) 9.0 |
| Zabbix Version | Zabbix 6.0 LTS または最新安定版 |
| データベース | MariaDB |
| Webサーバー | Apache (後編でインストール) |
| 監視対象(Agent) | Linux Server |
1. Zabbixって、そもそも何?
Zabbixは一言で言うと、「無料で使える高機能な統合監視ソフト」です。
商用製品でいうと、富士通のSystemwalkerや日立のJP1みたいなものと考えてもらうと分かりやすいかもしれません。
Zabbixで何が監視できるの?
サーバー関連でZabbixが監視できる項目は多岐にわたります。
ざっくりと以下の通りです!
* リソース:CPU使用率、メモリ、ディスク容量、ネットワークトラフィック
* ログ/イベント:システムログのエラーや警告、Windowsイベント
* アプリケーション:Webサーバーの応答時間、DBの接続数
* ハードウェア:温度、ファン、電圧(IPMI/SNMP利用)
詳しくは?
項目が多すぎて長くなるので、詳細な監視項目は公式ドキュメントや別の記事で紹介されています。そちらも参考にしてみてください!
zabbix構築の注意点
Zabbixを使うには、「Zabbix本体を入れるサーバー」と「監視したいサーバー(Agentを入れる)」の2種類が必要です。
2. Zabbix Serverの構築準備 (RHEL 9.0)
いよいよZabbix Serverを構築していきます!
2-1. OSの準備とネットワーク設定(今回の趣旨とズレるのでサクッと書きます。)
まずはZabbix Serverを動かすOS(RHEL 9.0)を用意します。
* RHEL 9.0の最小構成でインストール。
* オンプレ環境なので、固定IPアドレスを設定します。
⚠️ 超重要!SELinuxとFirewallの設定
Zabbixで「つながらない!」というトラブルの9割は、この2つが原因です。Firewalld で、Zabbixが使うポートを開けておきましょう。
*
10051/tcp: Zabbix Agentからの通信
*80/tcp(または443/tcp):Webインターフェース
2-2. データベース(MariaDB)のインストール
Zabbixが収集した大量の監視データはDBに保存されるので、DBは必須です。Zabbix Serverと同じサーバーにインストールします。
ステップ 1: MariaDBのインストールと起動
# MariaDBサーバーパッケージをインストール
sudo dnf install mariadb-server -y
# MariaDBサービスを起動して、自動起動設定
sudo systemctl start mariadb
sudo systemctl enable mariadb
# ステータス確認(Active: active (running)となっていればOK!)
sudo systemctl status mariadb
ステップ 2: セキュリティ設定の実行(必須!)
セキュリティを向上させるため、対話形式で設定を進めます。
sudo mariadb-secure-installation
* Enter current password for root (enter for none): → 初回は[Enter]
* Set root password? [Y/n]: → **Y** でrootパスワードを設定(複雑なものを!)
* Remove anonymous users? [Y/n]: → **Y**
* Disallow root login remotely? [Y/n]: → **Y** (セキュリティ推奨)
* Remove test database and access to it? [Y/n]: → **Y**
* Reload privilege tables now? [Y/n]: → **Y**
ステップ 3: Zabbix専用のDBとユーザーを作成
Zabbix Serverが接続するための専用のデータベースとユーザーを作ります。
| 項目 | 設定値(例) |
|---|---|
| データベース名 | zabbix |
| ユーザー名 | zabbix |
| パスワード | ZabbixPass123 など(任意) |
rootユーザーでMariaDBにログインします。
# 設定したrootパスワードを入力
sudo mariadb -u root -p
以下のSQLコマンドを1行ずつ実行してください。
sql
-- 1. Zabbix用のデータベースを作成(文字コードは utf8mb4 推奨)
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
-- 2. Zabbix用のユーザーを作成し、パスワードを設定
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '[設定したい任意のパスワード]';
-- 3. 作成したユーザーに、Zabbixデータベースへの全権限を付与
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
-- 4. 権限設定を反映
FLUSH PRIVILEGES;
-- 5. MariaDBクライアントを終了
EXIT
⚠️ パスワードは忘れないで!
[設定したい任意のパスワード] の部分は、必ず自分で決めたパスワードに置き換えてください。これは後でZabbix Serverの設定ファイルで使います!
ステップ 4: MariaDB設定ファイルの調整(オプショナルだが推奨)
大規模環境や、長期間の履歴を保存したい場合は、DBのパフォーマンス向上のため設定を調整します。
# 設定ファイルを開く
sudo vi /etc/my.cnf.d/mariadb-server.cnf
ファイル内の [mariadb] または [mysqld] セクションに以下を追記します。
ini
[mariadb]
# Zabbixに推奨される設定
innodb_buffer_pool_size = 512M # サーバーのRAMに応じて調整(例:8GB RAMなら2GBなど)
innodb_file_per_table = 1
innodb_strict_mode = 1
設定ファイルを変更したら、MariaDBサービスを再起動して適用します。
sudo systemctl restart mariadb
これで、Zabbix Serverを動かすためのDBの準備は完璧です!
🔚 前編はここまで!
長くなったので、今回はDBの準備までとします!
後編では、Zabbix本体とWebインターフェースのインストール、そして監視対象サーバーへのAgent導入、監視開始まで進めていきます!