Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

zabbix7構築直後のApache,PHP-FPM監視設定

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

構築直後は以下のようなエラーが出て監視がうまくいかない

PHP-FPM: Failed to fetch info data (or no data for 30m)
条件式:nodata(/監視対象サイト名/php-fpm.uptime,30m)=1 and last(/監視対象サイト名/php-fpm.proc.num[php-fpm])>0

PHP-FPM: Service is down
条件式:(last(/監視対象サイト名/php-fpm.ping)=0 or nodata(/監視対象サイト名/php-fpm.ping,3m)=1) and last(/監視対象サイト名/php-fpm.proc.num[php-fpm])>0

以下を修正する

/etc/php-fpm.d/www.conf
pm.status_path = /status
ping.path = /ping


/etc/httpd/conf.d/対象のVirtualHost設定

↓443ポートの方の中にも書く
<VirtualHost *:80>
・
・
・
<Location "/server-status">
SetHandler server-status
Require all denied
Require local
</Location>

<Location ~ /(status|ping)$>
SetEnv downgrade-1.0
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
Require all denied
Require local
</Location>
・
・
・

</VirtualHost>



Require local

の部分はAgentからみるので、Zabbix ServerとAgentが別サーバの場合も「Require ip サーバー」とかではなくRequire localとなるようです。

PHP-FPMのstatus,pingのURLパス設定はデフォルトでは/status /pingとなっており、zabbixもそれを見るような設定になっているようです。

動作確認

以下に応答があること。

curl localhost/ping
curl localhost/status
curl localhost/server-status

Source of zabbix_agent.md – documentation – ZABBIX GIT

↑上記サイトより、

PHP-FPM by Zabbix agent	{$PHP_FPM.HOST} - ホスト名または PHP-FPM ステータス ホストまたはコンテナの IP (デフォルト: localhost)
{$PHP_FPM.PING.PAGE} - PHP-FPM ping ページのパス (デフォルト:ping)
{$PHP_FPM.PORT} - PHP-FPM ステータス ホストまたはコンテナのポート (デフォルト: 80)
{$PHP_FPM.PROCESS_NAME} - PHP-FPM プロセス名 (デフォルト:php-fpm)
{$PHP_FPM.STATUS.PAGE} - PHP-FPM ステータス ページのパス (デフォルト:status)	

1. php-fpm 設定ファイルを開き、ステータス ページを有効にします。:
pm.status_path = /status
ping.path = /ping

2. 構文を検証します: $ php-fpm7 -t

3. php-fpm サービスをリロードします。

4. Nginx サーバー ブロック (仮想ホスト) 設定ファイルに追加します (コメント付きの拡張例についてはテンプレートの Readme.md を参照してください):
location ~ ^/(status|ping)$ {
access_log off;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}

5. 構文を確認します: $ nginx -t

6. Nginxをリロードします

7. 次のコマンドで確認します: curl -L 127.0.0.1/status

監視するstatusページのURLを変更する方法は以下とかなのかな?

GitHub – luohu1/zabbix-template-phpfpm: Monitoring phpfpm status with zabbix agent.

templates/app/php-fpm_agent · 6.4.12 · Zabbix / Zabbix · GitLab

 

その他、最初、httpアクセスを強制的にhttpsにリダイレクトするようにしていたため、上記の設定をしてもリダイレクトでうまくいきませんでした。リダイレクトを外したところ、監視が正常になりました。

 

タイトルとURLをコピーしました