¿Cómo puedo obtener FreeNAS y pfSense para informar más utilizando SNMP?

10

Tengo dos servidores que ejecutan variantes de FreeBSD: uno es un enrutador pfSense y otro es un servidor FreeNAS 8. Ambos servidores ejecutan SNMP, y estoy recopilando y graficando su información utilizando un tercer servidor Cacti.

Los datos SNMP tanto del servidor pfSense como del servidor FreeNAS no incluyen el uso de memoria, el uso de la CPU ni el promedio de carga.

Los gráficos de tráfico para el servidor pfSense se ven bien. Los informes de uso del disco del servidor FreeNAS se ven hermosos. Simplemente no obtengo ningún dato sobre el uso de la memoria, el uso de la CPU ni el promedio de carga. Sé que ambos servidores deberían ser capaces de proporcionar estos datos, porque en los administradores web pfSense y freeNAS puedo ver gráficos. Pero preferiría tener todos los gráficos en Cacti para facilitar la administración.

¿Cómo puedo hacer que mi servidor pfSense proporcione uso de memoria, uso de CPU y datos de carga promedio a través de SNMP? ¿Cómo puedo hacer que mi servidor FreeNAS proporcione uso de memoria, uso de CPU y datos de carga promedio a través de SNMP? Supongo que el mismo procedimiento funcionará para ambos servidores.

Josh
fuente

Respuestas:

11

Después de mucha investigación sobre esto, descubrí cuál era el problema. Tanto pfSense como FreeNAS proporcionan soporte SNMP a través del demonio SNMP begemot de FreeBSD (bsnmpd) . Para proporcionar información sobre el uso de la memoria, el uso de la CPU y la carga promedio, el demonio SNMP de Begemot necesita tener un módulo adicional snmp_ucd.socargado.

Encontré el siguiente hilo del foro explicando la carga snmp_ucd.so, sin embargo, no estaba presente en mis dos sistemas.

Para resolver esto, creé una máquina virtual e instalé FreeBSD 8.3 en ella. Dentro de esta máquina virtual, utilicé el sistema de puertos FreeBSD para descargar y construir la snmp_ucd.sobiblioteca requerida usando:

cd /usr/ports/net-mgmt/bsnmp-ucd
make all install clean 
cd /usr/ports/net-mgmt/bsnmptools
make all install clean

Después de eso, solía scpcopiar /usr/local/lib/snmp_ucd.sodesde la máquina virtual de FreeBSD tanto en mi servidor pfSense como en mi servidor FreeNAS.

Luego utilicé la GUI de FreeNAS para agregar los siguientes parámetros auxiliares :

begemotSnmpdModulePath."ucd" = "/mnt/Garrison/jail/usr/local/lib/snmp_ucd.so"

Captura de pantalla de FreeNAS

¡Esto agregó la línea automáticamente /etc/snmpd.configen el servidor FreeNAS y pude obtener gráficos!

El servidor de pfSense fue más complicado ya que no me permitió aplicar el cambio usando la GUI, y los scripts de pfSense se reconstruyeron automáticamente /etc/snmpd.config, sobrescribiendo mis cambios. Para que pfSense funcionara, tuve que editar /etc/inc/services.inc. Antes de la línea que dice:

fwrite($fd, $snmpdconf);

Agregué lo siguiente:

    //Josh Additions: Make load avg and CPU usage work:
    $snmpdconf .= <<<EOD
# Josh additions:
begemotSnmpdModulePath."ucd" = "/usr/local/lib/snmp_ucd.so"



EOD;

Luego, deshabilitar y volver a habilitar SNMP aplicó el cambio y los gráficos de uso de la CPU funcionan ahora. Es casi seguro que ese cambio no persistirá en las actualizaciones de pfSense, pero no pude encontrar una manera más fácil y estable de aplicar el cambio.

Josh
fuente