Zabbixは、デフォルトの監視項目以外に「プラグイン」で監視したい項目を増やすことができます。Zabbix4.0.x監視設定に「php-fpm」を追加します。(2019/02/24作成)
MichaelGaida / Pixabay
php-fpmとは
FPM (FastCGI Process Manager) は PHP の FastCGI 実装のひとつで、 主に高負荷のサイトで有用な追加機能を用意しています。(出典: http://php.net)
0.環境
$ cat /etc/system-release Amazon Linux release 2 (Karoo) $ zabbix_agentd --version | head -n 1 zabbix_agentd (daemon) (Zabbix) 4.0.3
※Zabbixエージェントが /zabbix-agent/ ディレクトリにインストールされていることを選定にしています。
1.インストール
github / jizhang / abbix-templates / php-fpm
https://github.com/jizhang/zabbix-templates/tree/master/php-fpm
1)php-fpmの設定
※php-fpmプールの設定ファイルを開き ‘pm.status =’ ディレクティブのコメントを外します。
$ sudo vi /etc/php-fpm.d/www.conf ;pm.status_path = /status ↓ pm.status_path = /php-fpm_status
2)Nginxの設定
以下の行をNginxの設定に追加します。
※1 Nginxと php-fpmの通信によって「TCP」と「UNIX ドメインソケット」のを読み替えて設定します。
$ sudo vi /etc/nginx/nginx.conf server { listen 10061; location /php-fpm_status { # fastcgi_pass 127.0.0.1:9000; # ※1 TCP fastcgi_pass unix:/var/run/php-fpm/www.sock; # ※1 UNIX domain socket fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
php-fpmとnginxの両方を再起動した後、次のコマンドでphp-fpmのステータスが取得できるか確認をとります。
$ curl http://127.0.0.1:10061/php-fpm_status pool: www process manager: dynamic start time: 31/Jan/2019:06:32:27 +0000 start since: 104 accepted conn: 92 listen queue: 0 max listen queue: 0 listen queue len: 0 idle processes: 14 active processes: 1 total processes: 15 max active processes: 8 max children reached: 0 slow requests: 0
3)インストールスクリプト
対象ファイル: php-fpm-check.sh
$ sudo mkdir -p /usr/local/zabbix-agent-ops/bin $ cd /usr/local/zabbix-agent-ops/bin $ sudo wget https://raw.githubusercontent.com/jizhang/zabbix-templates/master/php-fpm/php-fpm-check.sh $ sudo chmod +x php-fpm-check.sh
4)ユーザパラメータを追加
対象ファイル: php-fpm-params.conf
$ cd /etc/zabbix/zabbix_agentd.d $ sudo wget https://raw.githubusercontent.com/jizhang/zabbix-templates/master/php-fpm/php-fpm-params.conf $ sudo systemctl restart zabbix-agent.service
5)インポートテンプレート
対象ファイル: php-fpm-template.xml
php-fpm-template.xmlをインポートし、それをホストにリンクします。必要に応じてホストマクロ{$ PHP_FPM_STATUS_URL}を設定してください。
マクロ: {$PHP_FPM_STATUS_URL} 値: http://127.0.0.1:10061/php-fpm_status
以上