投稿者: tenmusu423

  • Raspberry Pi 4 + Ubuntu 24.04にZabbix 7.0 LTSをインストールする《AIとのハマりポイント徹底解説》

    まえがき

    Raspberry Piを使って自宅サーバーを構築するのは、非常にエキサイティングなプロジェクトです。特に、Zabbixのような強力な監視ツールを導入できれば、その可能性は無限に広がります。

    しかし、特定の環境、特にRaspberry Pi 4のようなARMアーキテクチャに、最新のUbuntu 24.04 LTSZabbix 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も人間と同じように「思い込み」に囚われることがあります。しかし、論理的な切り分けと粘り強い試行錯誤を繰り返すことで、どんなに複雑な問題でも必ず解決できるということを、改めて証明できたのではないでしょうか。

    この記事が、同じ志を持つあなたのプロジェクトの一助となれば、これほど嬉しいことはありません。

  • Hello world!

    WordPress へようこそ。こちらは最初の投稿です。編集または削除し、コンテンツ作成を始めてください。