1
0
mirror of https://github.com/librenms/librenms-agent.git synced 2024-05-09 09:54:52 +00:00
Files
librenms-librenms-agent/snmp/phpfpmsp
Wheel 4e09377661 Minor script reverts (osupdate, phpfpm) (#362)
* 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>
2021-03-26 02:14:43 +01:00

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