mirror of
https://github.com/librenms/librenms-agent.git
synced 2024-05-09 09:54:52 +00:00
* Revert changes made in #355 that broke the script. * Revert partial changes made in #356 By just removing the quotes in line 81 i could make the script work again * osupdate yum revert Realized i had a centos to test * Fix curl error `curl: (3) URL using bad/illegal format or missing URL` Not sure how to properly fix it but moving the hardcode flags to the variable so its not empty did fix it. The curl error caused to push down all values 1 line which made them mismatch in librenms. * Update osupdate * Update phpfpmsp Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
147 lines
4.0 KiB
Bash
147 lines
4.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# add this to snmpd.conf as below... actual path to the script can vary
|
|
# extend phpfpmsp /root/snmp-extends/phpfpm-sp
|
|
#
|
|
# The location is is irrelevant. It just needs to be executable,
|
|
# have access to curl, and be reachable by the snmpd.
|
|
#
|
|
# You can check it via...
|
|
# snmpget -v 2c -c public localhost .1.3.6.1.4.1.8072.1.3.2.3.1.2.8.112.104.112.102.112.109.115.112
|
|
# which should print out... actual values will very...
|
|
# NET-SNMP-EXTEND-MIB::nsExtendOutputFull."phpfpmsp" = STRING: www
|
|
# 11/Feb/2017:18:45:43 -0600
|
|
# 189514
|
|
# 178516
|
|
# 0
|
|
# 0
|
|
# 0
|
|
# 2
|
|
# 1
|
|
# 3
|
|
# 20
|
|
# 13
|
|
# 0
|
|
#
|
|
# In order the returned values are.
|
|
#
|
|
# pool
|
|
# start_time
|
|
# start_since
|
|
# accepted_conn
|
|
# listen_queue
|
|
# max_listen_queue
|
|
# listen_queue_len
|
|
# idle_processes
|
|
# active_processes
|
|
# total_processes
|
|
# max_active_processes
|
|
# max_children_reached
|
|
# slow_requests
|
|
|
|
|
|
# the URL to fetch, change as needed
|
|
url="http://localhost/status?full"
|
|
opts="-Ss"
|
|
|
|
# netdata
|
|
# real-time performance and health monitoring, done right!
|
|
# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
|
|
# GPL v3+
|
|
#
|
|
# Contributed by @safeie with PR #276
|
|
# Modified to work as a SNMP extend by Zane C. Bowers-Hadley
|
|
|
|
#declare -A phpfpm_urls=()
|
|
#declare -A phpfpm_curl_opts=()
|
|
|
|
# _update_every is a special variable - it holds the number of seconds
|
|
# between the calls of the _update() function
|
|
#phpfpm_update_every=
|
|
#phpfpm_priority=60000
|
|
|
|
declare -a phpfpm_response=()
|
|
phpfpm_pool=""
|
|
phpfpm_start_time=""
|
|
phpfpm_start_since=0
|
|
phpfpm_accepted_conn=0
|
|
phpfpm_listen_queue=0
|
|
phpfpm_max_listen_queue=0
|
|
phpfpm_listen_queue_len=0
|
|
phpfpm_idle_processes=0
|
|
phpfpm_active_processes=0
|
|
phpfpm_total_processes=0
|
|
phpfpm_max_active_processes=0
|
|
phpfpm_max_children_reached=0
|
|
phpfpm_slow_requests=0
|
|
|
|
|
|
# local opts="${1}" url="${2}"
|
|
# shellcheck disable=SC2207
|
|
phpfpm_response=($(curl "${opts}" "${url}"))
|
|
[ $? -ne 0 ] || [ "${#phpfpm_response[@]}" -eq 0 ] && exit 1
|
|
|
|
if [[ "${phpfpm_response[0]}" != "pool:" \
|
|
|| "${phpfpm_response[2]}" != "process" \
|
|
|| "${phpfpm_response[5]}" != "start" \
|
|
|| "${phpfpm_response[12]}" != "accepted" \
|
|
|| "${phpfpm_response[15]}" != "listen" \
|
|
|| "${phpfpm_response[16]}" != "queue:" \
|
|
|| "${phpfpm_response[26]}" != "idle" \
|
|
|| "${phpfpm_response[29]}" != "active" \
|
|
|| "${phpfpm_response[32]}" != "total" \
|
|
]]
|
|
then
|
|
echo "invalid response from phpfpm status server: ${phpfpm_response[*]}"
|
|
exit 1;
|
|
fi
|
|
|
|
phpfpm_pool="${phpfpm_response[1]}"
|
|
phpfpm_start_time="${phpfpm_response[7]} ${phpfpm_response[8]}"
|
|
phpfpm_start_since="${phpfpm_response[11]}"
|
|
phpfpm_accepted_conn="${phpfpm_response[14]}"
|
|
phpfpm_listen_queue="${phpfpm_response[17]}"
|
|
phpfpm_max_listen_queue="${phpfpm_response[21]}"
|
|
phpfpm_listen_queue_len="${phpfpm_response[25]}"
|
|
phpfpm_idle_processes="${phpfpm_response[28]}"
|
|
phpfpm_active_processes="${phpfpm_response[31]}"
|
|
phpfpm_total_processes="${phpfpm_response[34]}"
|
|
phpfpm_max_active_processes="${phpfpm_response[38]}"
|
|
phpfpm_max_children_reached="${phpfpm_response[42]}"
|
|
if [ "${phpfpm_response[43]}" == "slow" ]; then
|
|
phpfpm_slow_requests="${phpfpm_response[45]}"
|
|
else
|
|
phpfpm_slow_requests="-1"
|
|
fi
|
|
|
|
if [[ -z "${phpfpm_pool}" \
|
|
|| -z "${phpfpm_start_time}" \
|
|
|| -z "${phpfpm_start_since}" \
|
|
|| -z "${phpfpm_accepted_conn}" \
|
|
|| -z "${phpfpm_listen_queue}" \
|
|
|| -z "${phpfpm_max_listen_queue}" \
|
|
|| -z "${phpfpm_listen_queue_len}" \
|
|
|| -z "${phpfpm_idle_processes}" \
|
|
|| -z "${phpfpm_active_processes}" \
|
|
|| -z "${phpfpm_total_processes}" \
|
|
|| -z "${phpfpm_max_active_processes}" \
|
|
|| -z "${phpfpm_max_children_reached}" \
|
|
]]; then
|
|
echo "empty values got from phpfpm status server: ${phpfpm_response[*]}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "$phpfpm_pool"
|
|
echo "$phpfpm_start_time"
|
|
echo "$phpfpm_start_since"
|
|
echo "$phpfpm_accepted_conn"
|
|
echo "$phpfpm_listen_queue"
|
|
echo "$phpfpm_max_listen_queue"
|
|
echo "$phpfpm_listen_queue_len"
|
|
echo "$phpfpm_idle_processes"
|
|
echo "$phpfpm_active_processes"
|
|
echo "$phpfpm_total_processes"
|
|
echo "$phpfpm_max_active_processes"
|
|
echo "$phpfpm_max_children_reached"
|
|
echo $phpfpm_slow_requests
|