File: //proc/self/root/lib64/nagios/plugins/check_a2_whmcs_phpfpm_status.sh
#!/bin/bash
#
PHP_FPM_STATUS_URL="https://my.a2hosting.com/php-fpm-status"
phpfpm_data=$(curl -s "$PHP_FPM_STATUS_URL")
# Parse metrics
start_since=$(echo -e "${phpfpm_data}" | grep "start since" | awk '{print $3}')
accepted_conn=$(echo -e "${phpfpm_data}" | grep "accepted conn" | awk '{print $3}')
listen_queue=$(echo -e "${phpfpm_data}" | grep "^listen queue:" | awk '{print $3}')
max_listen_queue=$(echo -e "${phpfpm_data}" | grep "max listen queue:" | awk '{print $4}')
listen_queue_len=$(echo -e "${phpfpm_data}" | grep "listen queue len:" | awk '{print $4}')
idle_processes=$(echo -e "${phpfpm_data}" | grep "idle processes:" | awk '{print $3}')
active_processes=$(echo -e "${phpfpm_data}" | grep "^active processes:" | awk '{print $3}')
total_processes=$(echo -e "${phpfpm_data}" | grep "total processes:" | awk '{print $3}')
max_active_processes=$(echo -e "${phpfpm_data}" | grep "max active processes:" | awk '{print $4}')
max_children_reached=$(echo -e "${phpfpm_data}" | grep "max children reached:" | awk '{print $4}')
slow_requests=$(echo -e "${phpfpm_data}" | grep "slow requests:" | awk '{print $3}')
# Output metrics in Check_MK format
echo "check_a2_whmcs_phpfpm_status - ${start_since} seconds since start | ${accepted_conn} total accepted connections | ${listen_queue} current listen queue | ${max_listen_queue} max listen queue | ${listen_queue_len} listen queue length | ${idle_processes} idle processes | ${active_processes} active processes | ${total_processes} total processes | ${max_active_processes} peak active processes | ${max_children_reached} max children reached | ${slow_requests} slow requests"