Zabbixのインストールと設定のトラブルシュート方法
Zabbix の起動は簡単そうに聞こえますが、実際に問題が発生します。サーバーがデータを表示しなかったり、Web インターフェースに接続できなかったり、エージェントが機能しなくなったりするかもしれません。特に、実際に動作するモニターが欲しいだけなのに、これは本当に面倒です。ご安心ください。こうした問題の多くは、設定、ファイアウォール、権限といったよくあるミスに起因しており、一度特定できれば、すぐに修正できます。このガイドでは、私が遭遇した典型的な問題と実用的な解決策をいくつか紹介し、誰かの頭痛の種を少しでも軽減できれば幸いです。
Zabbix サーバーとエージェントのインストールでよくある不具合を修正する方法
修正1: Webサーバーが正しく構成され、実行されていることを確認する
役立つ理由:Zabbixウェブフロントエンドが正しく読み込まれない場合、インストールされていないか、設定されていないか、ウェブサーバー(Nginx/Apache)が正常に動作していない可能性があります。一部の環境では、Zabbixをインストールした後、ウェブインターフェースに空白ページが表示されたり、エラーが発生したりすることがあります。適用対象:`http://your-zabbix-server/zabbix`にアクセスしようとして何も表示されない、またはエラーが発生した場合。期待される効果:インターフェースはスムーズに読み込まれ、インストーラーのすべての要件が問題なく満たされます。経験からのヒント:Webサーバーがアクティブかどうかを再確認してください。Nginxの場合:bash # systemctl status nginx またはApacheの場合:bash # systemctl status httpd 実行されていない場合は、起動してください。bash # systemctl start nginx # または # systemctl start httpd また、サイトの設定を確認してください。サーバーブロック(またはApache仮想ホスト)が`/usr/share/zabbix/frontends/php`を指していること、そして適切なPHPバージョンが有効になっていることを確認してください。もちろん、PHP-FPMが起動しなかったり、nginxがどこにもアクセスしていない場合もあります。—
修正2: ファイアウォールルールがZabbixポートのトラフィックを許可していることを確認する
役立つ理由: Zabbix は特定の TCP ポートを使用します。デフォルトでは、エージェントは 10050、サーバーは 10051 です。これらのポートが開いていないと、エージェントもサーバーも正常に通信できず、監視が不完全になったり、誤報が発生したりします。適用対象: インストールが完了したが、データが流れていない、またはフロントエンドでホストの更新が確認できない場合。期待される効果: 正しいポートを開くと、データが表示されるようになります。経験からのヒント: CentOS で firewalld を使用する場合、次のコマンドを実行します: bash # firewall-cmd –permanent –add-port=10050/tcp # firewall-cmd –permanent –add-port=10051/tcp # firewall-cmd –reload Web インターフェースにアクセスできない場合は、https と http を忘れないでください。一部の設定では、クラウド ファイアウォール (AWS、Azure など) のポートを開く必要がある場合があります。変更後にファイアウォールの再起動が必要になる場合もあります: bash # systemctl restart firewalld —
修正3: データベースの資格情報と権限を確認する
役立つ理由: Zabbix がデータベースに接続できない場合、何も機能しません。フロントエンドにエラーが表示されるか、データベースのインポートが失敗します。適用されるタイミング: 初期セットアップ中、またはデータベースを手動で作成または移動した場合。期待される結果: データベース設定を構成するときにエラーが発生せず、初期スキーマのインポートが正常に機能します。経験からのヒント: ユーザーに適切な権限があることを確認してください。MySQL の場合: sql CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL PRIVILEGES ON zabbix.* TO ‘zabbix’@’localhost’ IDENTIFIED BY ‘your_password’; を実行してから、インポートします: bash zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix 接続エラーが発生した場合は、`zabbix_server.conf` を再確認してください: ini DBName=zabbix DBUser=zabbix DBPassword=your_password また、データベース サーバーがアクセス可能であり、正しいホストとポートで接続を受け入れていることを確認してください。 —
修正4: PHPの設定とタイムゾーン設定を確認する
役立つ理由: PHP 設定が正しくないと、Web インターフェースが壊れたり、読み込みは完了しているのにデータがない、タイムアウトメッセージが表示されるなどの奇妙なエラーが発生したりする可能性があります。適用タイミング: Web セットアップ直後、または PHP エラーが表示されている場合。期待される結果: フロントエンドですべてのページが読み込まれ、エラーは表示されません。経験からのヒント: PHP.ini (`/etc/php/7.2/fpm/php.ini` など) を開き、以下の設定を確認してください: ini memory_limit = 128M upload_max_filesize = 8M post_max_size = 16M max_execution_time = 300 date.timezone = your/region また、PHP-FPM が実行中であることを確認してください: bash # systemctl status php7.2-fpm 必要に応じて再起動してください: bash # systemctl restart php7.2-fpm —
修正 5: エージェントが通信していませんか? ログと構成を確認してください。
役立つ理由:エージェントの設定ファイル(通常は `/etc/zabbix/zabbix_agentd.conf`)が正しいサーバーIPアドレスを指している必要があります。適用対象:ホストが更新されない、またはデータが表示されない場合。期待される効果:エージェントのログにアクティブなチェックと送信中のデータが表示されます。経験からのヒント:`Server=` 行と `ServerActive=` 行を確認してください。ini Server=YOUR_ZABBIX_SERVER_IP ServerActive=YOUR_ZABBIX_SERVER_IP:10051 Hostname=your_host_name ホスト名が、フロントエンドのホスト設定で設定したホスト名と完全に一致していることを確認してください。エージェントを再起動します: bash # systemctl restart zabbix-agent 次にログを確認します: bash # tail -f /var/log/zabbix/zabbix_agentd.log 「cannot parse list of active checks」と表示される場合は、サーバーがホストを認識していないか、ホスト名が一致していない可能性があります。再確認してください。—
まとめ
- Web サーバーが起動しており、正しく構成されていることを確認します。
- エージェントとサーバーの通信用にファイアウォール ポートを開きます。
- データベースの設定と資格情報を再確認してください。
- PHP 設定が整えられており、タイムゾーンが正しいことを確認してください。
- エージェントの構成を確認し、ログでサイレント エラーを監視します。
まとめ
これらのちょっとした昔ながらのチェックで、Zabbix インストールに関するほとんどの問題は解決できます。ほとんどの場合、ポート番号の不足、ホスト名の入力ミス、権限の問題などが原因です。もちろん、Web サーバーや PHP にも微調整が必要な場合もあります。これで、誰かが頭を悩ませる事態から救われることを願っています。幸運を祈ります。お役に立てれば幸いです!