Zabbix4.0:Zabbix監視設定追加(php-fpm編)

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

以上

About yoshimasa

埼玉県さいたま市在住、2男3女のパパです。Linux系の技術情報を中心にまとめています。1978年2月生まれ。