まえがき
Raspberry Piを使って自宅サーバーを構築するのは、非常にエキサイティングなプロジェクトです。特に、Zabbixのような強力な監視ツールを導入できれば、その可能性は無限に広がります。
しかし、特定の環境、特にRaspberry Pi 4のようなARMアーキテクチャに、最新のUbuntu 24.04 LTSとZabbix 7.0 LTSを組み合わせようとすると、公式ドキュメントだけでは乗り越えられない、いくつかの「罠」が潜んでいます。
この記事は、単なるインストール手順書ではありません。AIアシスタント(Google Gemini)と筆者(ユーザー)が、リアルタイムで試行錯誤を繰り返し、数々のエラーを乗り越えてようやくたどり着いた、生きたトラブルシューティングの記録です。
AIですら頭を抱えた「ハマりポイント」とその完全な解決策を共有することで、あなたの貴重な時間を節約し、必ず成功に導くことをお約束します。
前提環境
- デバイス: Raspberry Pi 4 Model B
- OS: Ubuntu 24.04.2 LTS (aarch64 / arm64)
- インストール対象: Zabbix 7.0 LTS
- データベース: MariaDB
- Webサーバー: Nginx
完成版・パーフェクトインストール手順
まずは、私たちが最終的にたどり着いた、正しいインストール手順の完全版を記載します。
ステップ1: Zabbixリポジトリの正しい設定【最重要ポイント】
# Zabbixの公開GPGキーを取得
sudo wget https://repo.zabbix.com/zabbix-official-repo.key -O /usr/share/keyrings/zabbix-official-repo.key
# arm64専用の正しいURLでリポジトリ設定ファイルを作成
echo "deb [signed-by=/usr/share/keyrings/zabbix-official-repo.key] https://repo.zabbix.com/zabbix/7.0/ubuntu-arm64 noble main" | sudo tee /etc/apt/sources.list.d/zabbix.list
# パッケージリストを更新
sudo apt update
ステップ2: Zabbixと関連コンポーネントのインストール
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent mariadb-server
ステップ3: MariaDBのデータベース設定
対話式のセキュリティ設定を実行します。
sudo mysql_secure_installation
(rootパスワードの設定など、画面の指示に従って進めてください)
Zabbix用のデータベースとユーザーを作成します。
# MariaDBにrootでログイン
sudo mysql -u root -p
# 以下のSQLコマンドを1行ずつ実行(パスワードは変更してください)
CREATE DATABASE zabbix character set utf8mb4 collate utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix用の強力なパスワード';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
QUIT;
ステップ4: Zabbixスキーマのインポート
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
(上記で設定したZabbix用パスワードの入力を求められます)
ステップ5: ZabbixサーバーとMariaDBの設定
# Zabbixサーバー設定ファイルにDBパスワードを記述
sudo vim /etc/zabbix/zabbix_server.conf
# -> DBPassword=zabbix用の強力なパスワード
# MariaDBの設定を元に戻す
sudo mysql -u root -p
# -> SET GLOBAL log_bin_trust_function_creators = 0;
# -> QUIT;
ステップ6: NginxとPHP-FPMの設定
# Zabbix用Nginx設定ファイルのlistenポート等を修正
sudo vim /etc/zabbix/nginx.conf
# -> listen 80;
# -> server_name _;
# (行頭の#を削除して有効化)
# 英語ロケールを生成(Web UIでのエラー回避のため)
sudo locale-gen en_US.UTF-8
ステップ7: サービスの起動と自動起動設定
sudo systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
sudo systemctl enable zabbix-server zabbix-agent nginx php8.3-fpm
ステップ8: Nginxのデフォルト設定無効化
# Nginxのデフォルトページ設定を無効化
sudo rm /etc/nginx/sites-enabled/default
# Nginxを再起動
sudo systemctl restart nginx
ステップ9: Webブラウザでの最終設定
ブラウザで http://<RaspberryPiのIPアドレス>/
にアクセスし、画面の指示に従って設定を完了させます。データベースの種類は「MySQL」を選択してください。
AIとの軌跡:ハマりポイント徹底解説
ここからは、なぜ上記の手順にたどり着いたのか、AI(Gemini)と私をどん底に叩き落とした3つの大きな罠について解説します。
ハマりポイント①:最大の罠・リポジトリURLの真実
- 症状:
apt update
を実行すると、Skipping acquire... as repository '...' doesn't support architecture 'arm64'
という通知が出て、Zabbixパッケージをインストールできない。 - AIの誤算: 当初、AIはこれを「リポジトリ設定の記述方法の問題」と判断しました。
[arch=arm64]
というオプションを追記したり、apt
のキャッシュをクリアしたりと、あらゆる標準的なトラブルシューティングを試しましたが、全て失敗に終わりました。 - 正解:ARM64 (aarch64)用のリポジトリは、URL自体が異なっていたのです。
- 間違い:
https://repo.zabbix.com/zabbix/7.0/ubuntu
- 正解:
https://repo.zabbix.com/zabbix/7.0/ubuntu-arm64
- 間違い:
- 教訓: ARMアーキテクチャにインストールする際は、リポジトリのURLがアーキテクチャ別に用意されていないかを最優先で確認すべきです。
ハマりポイント②:「Welcome to nginx!」地獄
- 症状: Zabbixをインストールし、IPアドレスにアクセスしても、Zabbixのセットアップ画面ではなくNginxのウェルカムページが表示される。
- 原因: Nginxをインストールすると、デフォルトのサイト設定 (
/etc/nginx/sites-enabled/default
) が有効になります。これが、私たちが設定したZabbix用の設定よりも優先されてしまっていました。 - 解決策: 上記ステップ8の通り、
sudo rm /etc/nginx/sites-enabled/default
コマンドでこのデフォルト設定を無効化することで、Zabbix用の設定が正しく読み込まれるようになります。
ハマりポイント③:最後の刺客・ロケールエラー
- 症状: ZabbixのWebセットアップ画面で、「System locale」の項目が
Fail
となり先に進めない。 - 原因: Zabbixは、グラフ描画などの機能で内部的に英語ロケール (
en_US.UTF-8
) を要求します。Ubuntu Serverのミニマルな環境では、このロケールがデフォルトで生成されていないことがあります。 - 解決策: 上記ステップ6の最後に追記した通り、
sudo locale-gen en_US.UTF-8
コマンドで要求されているロケールを生成し、関連サービスを再起動することで解決します。
まとめ
AIとの協業は、時に驚くほどスムーズですが、今回のように前例の少ないケースでは、AIも人間と同じように「思い込み」に囚われることがあります。しかし、論理的な切り分けと粘り強い試行錯誤を繰り返すことで、どんなに複雑な問題でも必ず解決できるということを、改めて証明できたのではないでしょうか。
この記事が、同じ志を持つあなたのプロジェクトの一助となれば、これほど嬉しいことはありません。