Vamos a obtener la a temperatura de una Raspberry PI, via SNMP. Porque hacer esto y en que caso? Por ejemplo, si tenemos un sistema de monitorización que obtenga datos via SNMP.
Lo primero, disponer de un script (/scripts/TEMP_RPI_CPU.sh) y con sus respectivos permisos de ejecucion.
#!/bin/bash
cpu=$(</sys/class/thermal/thermal_zone0/temp)
cpu2=$(echo print $cpu/1000 | /usr/bin/perl)
echo "CPU $cpu2"
Ahora, añadiremos el script en la propia configuraciión de snmpd
cat >> /etc/snmp/snmpd.conf << EOF
extend TEMP_RPI_CPU /scripts/TEMP_RPI_CPU
view systemonly included .1.3.6.1.4.1.8072.1.3.2.4.1.2
view systemonly included .1.3.6.1.2.1.2
view systemonly included .1.3.6.1.2.1.25.2.3.1
EOF
Referente a la configuración de SNMP, de forma adicional activaremos el parametro SNMPDRUM para activar el servicio
cat >> /etc/default/snmpd << EOF
SNMPDRUN=yes
EOF
Solo nos quedará reiniciar el servico y hacer una llamada al MIB que nos va a permitir descubrir el resultado de la ejecución del script
systemctl restart snmpd
snmpwalk -v 2c -c public 10.0.1.71 .1.3.6.1.4.1.8072.1.3.2.4.1.2
snmpwalk -v 2c -c public 10.0.1.71 NET-SNMP-EXTEND-MIB::nsExtendOutLine