Zabbixで監視サーバ構築してみた

Linux

■ はじめに

今回はZabbixを使って監視サーバを構築しました。
最初は順調に進むかと思いきや、かなり多くのエラーにぶつかりましたが、結果的に無事ダッシュボードにログインできるところまで到達しました。

本記事では、実際の構築手順と詰まったポイントをまとめます。


■ 環境

  • OS:Ubuntu 24.04
  • VPS:さくらVPS
  • Zabbix:7.0系

■ 構築手順

① Zabbixリポジトリ追加

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update

② パッケージインストール

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent mysql-server -y

③ DB作成

sudo mysql -uroot
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '任意のパスワード';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;

④ 初期データ投入

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

⑤ Zabbix設定

sudo vim /etc/zabbix/zabbix_server.conf
DBPassword=設定したパスワード

⑥ サービス起動

sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2

⑦ Webアクセス

http://<IPアドレス>/zabbix

■ 詰まったポイント

① パッケージ依存エラー

原因:OSとZabbixのバージョン不一致
→ Ubuntu 24.04対応のZabbixを使用して解決


② DB接続エラー

Access denied for user 'zabbix'

原因:ユーザ/パスワード不一致
→ DBユーザを作り直して解決


③ Unknown database エラー

Unknown database 'zabbix'

原因:DB未作成
→ CREATE DATABASEで解決


④ dbversion エラー

table "dbversion" was not found

原因:初期データ未投入
→ server.sqlを流し込み


⑤ 権限エラー

You do not have the SUPER privilege

原因:MySQL制約
→ log_bin_trust_function_creators を有効化


⑥ テーブル重複エラー

Table 'role' already exists

原因:途中で失敗したDB
→ DB削除して再作成


■ 結果

Zabbixのダッシュボードにログイン成功。
監視サーバの構築が完了しました。


■ 学んだこと

  • バージョンの整合性は重要
  • DBは途中失敗したら作り直すのが早い
  • エラーは一つずつ潰せば必ず進む

■ 今後

  • トリガー設定
  • アラート通知
  • 他サーバ監視

まで進めていきたいと思います。

■ 4月6日 追記

トリガーを設定し、サーバーに負荷をかけてうまく動くか確認してみました。

■ トリガー設定手順

① ダッシュボードから操作

Zabbixのダッシュボードを開き、左上の「Top hosts by CPU utilization」から対象のサーバー名をクリックします。

「CONFIGURATION」内の「Triggers」を選択します。

遷移先画面の右上、「Create trigger」をクリックする。↓

↓図の項目を入力し、保存する。(テストなので他項目は一旦スルーします)

② サーバーコンソールから負荷をかけてみる

yes > /dev/null &

👉CPUが100%になる。

③ Zabbixダッシュボードにてアラートを確認

ダッシュボードにもどり、検知されているか確認します。

無事検知されました。↑

■ 学んだこと

・Zabbixのトリガー設定

今後は他のトリガー設定も試していこうと思います。

■ 今後

・通知設定【メール・Slackなど】
・他サーバ監視

ができればと思っています。