===== Controlar la temperatura de la Raspberry con Nagios + Datos de rendimiento para PNP4Nagios ===== **Fuente**: [[https://github.com/larsen0815/check_rasp_temp]] **Aclaración**: El necesitar privilegios de administrador para ejecutar el script depende de la distribución utilizada, en Arch Linux no es necesario. **Código fuente de check_rasp_temp** (///usr/local/nagios/libexec///). #!/bin/bash # Adapted from check_nagios_latency VCGENCMD="/opt/vc/bin/vcgencmd" # Prints usage information usage() { if [ -n "$1" ] ; then echo "Error: $1" 1>&2 fi echo "" echo "Usage: check_rasp_temp [-h?] -w warning -c critical" echo "" echo " -w warning threshold" echo " -c critical threshold" echo " -h, -? this help message" echo "" exit 3 } # Checks if a given program is available and executable check_prog() { if [ -z "$PROG" ] ; then PROG=`which $1` fi if [ -z "$PROG" ] ; then echo "TEMPERATURE UNKNOWN - cannot find $1" exit 3 fi PROG="" } # Main # check progs check_prog awk check_prog bc # process command line options while getopts "h?c:w:" opt; do case $opt in c ) CRITICAL=$OPTARG; ;; h | \? ) usage ; exit 3; ;; w ) WARNING=$OPTARG; ;; esac done shift $(($OPTIND - 1)) # Check options if [ -z "${WARNING}" ] ; then usage "No warning threshold specified" fi if [ -z "${CRITICAL}" ] ; then usage "No critical threshold specified" fi # Check number formats if ! echo $WARNING | grep -qE '^[0-9]+(\.[0-9]+)?$' ; then echo "TEMPERATURE UNKOWN - Wrong number: $WARNING" exit 3 fi if ! echo $CRITICAL | grep -qE '^[0-9]+(\.[0-9]+)?$' ; then echo "TEMPERATURE UNKOWN - Wrong number: $CRITICAL" exit 3 fi # Perform the checks TEMP=`$VCGENCMD measure_temp | awk -F"=" '{print $2}' | awk -F"'" '{print $1}'` PERF="temp=${TEMP};${WARNING};${CRITICAL};;" COMPARISON=`echo "if($TEMP>=$CRITICAL) 1 else 0;" | bc` if [ $COMPARISON -eq 1 ] ; then echo "TEMPERATURE CRITICAL: $TEMP | $PERF" exit 2 fi COMPARISON=`echo "if($TEMP>=$WARNING) 1 else 0;" | bc` if [ $COMPARISON -eq 1 ] ; then echo "TEMPERATURE WARNING: $TEMP | $PERF" exit 1 fi echo "TEMPERATURE OK: $TEMP | $PERF" exit 0; **Ejemplo de salida de check_rasp_temp**. /usr/local/nagios/libexec/check_rasp_temp -w 45 -c 50 TEMPERATURE OK: 36.9 | temp=36.9;45;50;; **NRPE Host** (/usr/local/nagios/etc/nrpe.cfg) command[check_temp_rasp]=/usr/local/nagios/libexec/check_rasp_temp -w 45 -c 50 **Nagios Server** define service{ use local-service host_name XXXXX service_description CPU Temp check_command check_nrpe!check_temp_rasp }