Welcome to Pandora FMS Community › Forums › Soporte de la comunidad › Crear módulos personalizados
-
Crear módulos personalizados
Posted by Deckard on October 16, 2009 at 14:25Hola a todos.
Estoy usando pandora FMS sobre una Ubuntu server 9.04, con un agente corriendo sobre una Ubuntu server 8.04.2. El sistema está en funcionamiento, y el agente envía datos al servidor correctamente mediante tentacle. He agregado plantillas con módulos y funcionan correctamente.
El problema es que necesito crear módulos personalizados, es decir, ejecutar comandos desde consola para chequear logs, y servicios. Los he definido en el “pandora_agent.conf” de la siguiente forma:
# Apache Monitoring
module begin
module_name Apache
module_type generic_data
module_exec ps aux | grep apache | grep -v “grep” | wc -l
module_end#Apache Error example
module begin
module_name ApacheError
module_type generic_data
module_exec tail -50 /var/log/apache2/access.log | grep “error” | wc -l
module_description Detecta errores en el servidor Apache
module_endEl problema es que estos datos no llegan al servidor, o por lo menos no los veo reflejados en el interfaz web. Lo que quiero es crear una alerta sobre ellos.
He reiniciado el agente después de agregar los módulos al archivo y también he creado el archivo “pandora_user.conf”, con lo siguiente:
VARIABLE=`tail -50 /var/log/apache2/access.log | grep “error” | wc -l`
echo “
” ”
echo “ApacheError ”
echo “VARIABLE”
echo “generic_data ”
echo “No se me ocurre qué más hacer, a ver si alguien sabe qué ocurre.
Gracias.
Sancho replied 15 years, 1 month ago 3 Members · 21 Replies -
21 Replies
-
-
-
::
Gracias por responder.
Ya he solucionado el error en la sintaxis de module_begin, he activado el debug y he reiniciado el agente.
He consultado el xml generado en el directorio temporal, en la ruta que he visto en el log y parece que el módulo envía datos correctos. Así que no sé cúal puede ser el error.
-
-
-
::
He desactivado el debug y he puesto como tipo para el módulo “generic_proc”, pero sigue sin funcionar.
A lo mejor me estoy haciendo un lío con los menús del interfaz web y no tiene tanto que ver con el archivo de configuración. Os explico:
Cuando entro en el interfaz web de Pandora, accedo al agenteModo gestiónMódulosMódulos asignados, me aparece el módulo. Sin embargo, cuando voy al menú “Ver”, el módulo no aparece ni en “SLA”, ni en el menú “Datos” ni en el menú “Principal”.
Como veo que reconoce el módulo al estar asignado empiezo a dudar si el tema es que tengo que asociarlo de otra manera con el agente.
-
::
en S.L.A. y en el Ver sólo aparecen los tipo proc.
es muy raro que apareciendo en modo gestión módulos, no te aparezcan en el de Datos.
Es posible que el sistema haya recibido en algún paquete del agente ese módulo, pero que por alguna razón no haya podido insertar o reconocer los datos.
si conservas el xml del debug, pegalo aqui.
-
-
::
A ver, si no me equivoco tienes en el .conf de tu agente:
#Apache Error example
module_begin
module_name ApacheError
module_type generic_data
module_exec tail -50 /var/log/apache2/access.log | grep “error” | wc -l
module_description Detecta errores en el servidor Apache
module_endEn la consola, deberias tener un modulo llamado “ApacheError”, si no lo tienes es que el XML no ha llegado con ese modulo. SI lo tienes, pero no tienes datos es que ha lelgado la estructura sin datos, por eso te ha creado el modulo pero no ves nada.
1. ¿La fecha/hora del agente y del servidor es la misma?. Si esta mandando datos en el futuro o en el pasado es posible que no la veas por eso.
2. Prueba a hacer un modulo “dummy” como el sisguiente:
module_begin
module_name PruebaTonta
module_type generic_data
module_exec echo 2009
module_description Deberia devolver siempre 2009
module_endAl modificar el .conf, y reiniciar el agente, deberia llevarte un modulo llamado PruebaTonta con valor 2009 siempre.
-
::
La última configuración que has puesto es correcta, eso es exactamente lo que tengo.
El módulo “ApacheError” aparece en la consola, pero no hay datos sobre él, por lo que deduzco que cómo tú dices, ha llegado la estructura sin datos.
Respecto a la hora de los servidores, está desfasada en casi 3 minutos. El agente está un poco adelantado con respecto al servidor.
También he añadido el módulo “PruebaTonta”, tal y como lo has puesto y no aparece por ningún sitio, ni siquiera en los módulos asignados al agente.
-
::
Hola de nuevo. Perdón porque me había hecho un lío. El módulo de “ApacheError” que me aparece en la consola lo creé yo mismo haciendo pruebas y no me acordaba.
La situación es la siguiente: en el archivo “pandora_agent.conf” del agente hay un montón de módulos definidos (aparte de los míos), y en la web no aparecen reflejados ninguno de ellos, solamente los que yo agrego a mano a través del interfaz.
Por esto deduzco que la información del agente no llega correctamente al servidor, al menos la que defino en los archivos de configuración. Decir que cuando activo el debug, el xml se genera perfectamente y el resto de módulos predefinidos en el interfaz (como monitor http, smtp, etc.) recaban datos correctos y periódicos del agente. Por cierto, he ajustado la fecha y la hora de ambos servidores contra un mismo servidor ntp, así que no creo el desfase de hora tenga mucho que ver.
¿Alguna idea?
-
::
Tienes tentacle server corriendo ene l servidor, esta correctamente configurado el tema de firewall, rutas, y demas ?
El agente puede llegar por el puerto 41121 a la IP del server ? (Comprueba resolucion tb).
A veces al instalar el agente es necesario reiniciar el servidor windows porque no coge bien la configuracion de la ruta de utilidades del agente, solo aveces (la magia de windows).
-
::
Proceso servidor: /usr/bin/perl /usr/bin/tentacle_server -a 127.0.0.1 -p 41121 -s /var/spool/pandora/data_in -d
Así que supongo que está corriendo
Netstat -a | grep 41121
tcp 0 0 localhost:41121 *:* LISTENAsí que supongo que el servidor escucha en ese puerto. Además, los datos de los módulos que creo desde el interfaz llegan correctamente, por lo que creo que no es tema del tentacle. Con respecto a lo de la resolución no sé a qué te refieres. Los servidores están en red local así que no están afectados por el firewall general, no tienen ningún otro firewall local, y las rutas creo que están todas bien.
Respecto a lo de reiniciar el servidor, ya lo he hecho y no he conseguido nada. Por cierto, los servidores llevan linux, no windows (eso debería ahorrar algunos problemas 🙂
-
-
::
Ahora que lo releo, parece que usas solo el agente de linux, asi que ese no es el problema.
Supongo que tienes los servidores levantados correctamente y como tal te aparecen en la consola. El agente esta usando tentacle como metodo de envio y la IP (localhost, supongo) esta correctamente metida.
El agente está levantando y funcionando ?
Puedes hacer la prueba parando el servidor, reiniciando el agente y deberia dejar los datos en /var/spool/pandora/data_in en forma de xxxx.data, ese es el XML que envia el agente, echale un vistazo a ver que pinta tiene, a ver si envia lo que se supone que tiene que enviar.
-
::
Hola, ante todo gracias por el interés que te estás tomando con esto.
Los servidores están levantados correctamente. Tengo dos agentes: uno en la propia máquina (localhost), que puse de prueba pero no utilizo para recabar datos, y otro en otra máquina con ubuntu-server en red local. Hay conectividad entre ellas. Se está usando tentacle para enviar datos del agente al servidor. Todos los procesos están levantados porque los levanto a mano uno a uno y los chequeo cada vez que arranco, fijándome especialmente en que el servidor escucha en el puerto de tentacle.
He hecho lo que me has dicho: he parado todos los servicios de pandora y he reiniciado el agente en la otra máquina. El agente ha arrancado aparentemente bien, pero a los pocos segundos se ha parado. He chequeado los logs y no he visto ningún error, simplemente ha creado un xml en data_out. Lo he comprobado y está correcto.
A lo mejor hay activada alguna opción para que el servidor solamente admita los cambios en el interfaz web, y no en el archivo de configuración, porque el xml se genera bien pero el servidor no se entera de nada.
-
-
::
Tenía el debug a 1 en el agente, es lo que pasa cuando cambias cosas constantemente.
Ahora lo he cambiado y no se ha generado ningún xml, ni en el “data_out” del agente ni en el “data_in” del servidor. Lo único que hay en esos directorios es un fichero “nohup.out”. He chequeado los logs y no parece haber ningún error.
-
::
Bueno, había cometido un pequeño fallo al hacer ese último test pero lo he arreglado y el resultado es el mismo. Había parado todos los servicios de pandora en el servidor incluido tentacle, pero claro, sin tentacle no pueden llegar los xml. Ahora lo he activado y he reiniciado el agente. He chequeado “data_in” en el server y nada, he chequeado “data_out” en el agente y he visto que había 2 xml pero cuando he ido a ver su contenido ya habían desaparecido del directorio. No sé a dónde van esos xml si no van a parar al servidor…
-
::
Hola. No voy a molestaros más porque ya he conseguido solucionarlo.
El problema era el siguiente: en el archivo “/etc/init.d/tentacle_serverd”, la variable “TENTACLE_ADDR”, tenía el valor 127.0.0.1, por lo que tentacle solo escuchaba peticiones de agentes dentro de la misma máquina. Bastó con cambiar este parámetro a “0.0.0.0” para que escuche desde cualquier ip y comenzase a funcionar. Puede que fuera algo obvio pero se me pasó en la configuración. También hay que decir, que la documentación que he encontrado para configurar tentacle, no decía absolutamente nada de esto. Vale la pena que alguien lo actualice 😛
Espero que esto le sirva a alguien con el mismo problema. Saludos a todos.