構築直後は以下のようなエラーが出て監視がうまくいかない
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にリダイレクトするようにしていたため、上記の設定をしてもリダイレクトでうまくいきませんでした。リダイレクトを外したところ、監視が正常になりました。
