Welcome to Pandora FMS Community!

Find answers, ask questions, and connect with our community around the world.

Welcome to Pandora FMS Community Forums Soporte de la comunidad Cantidad maxima de modulos por agente

  • Cantidad maxima de modulos por agente

    Posted by Robas on January 28, 2011 at 21:59

    Hola 🙂

    Estoy utilizando un agente para hacer la monitorizacion de URLs con el comando “curl”.
    Hice 2 polĂ­ticas:

    – Tiempo de respuesta
    – Disponibilidad

    Cada politica tiene casi 200 modulos (1 modulo para cada URL).

    He aplicado las 2 polĂ­ticas para un agente (400 modulos), se quedando responsable por la monitorizacion web.
    Mi pregunta es si hay algun limite maximo de modulos por agente.
    Pregunto eso pues estoy mirando algunos comportamientos raros de algunos modulos cuando hay las 2 politicas aplicadas para ese agente.

    Saludos!

    Robas replied 14 years ago 2 Members · 19 Replies
  • 19 Replies
  • luismi

    Member
    January 31, 2011 at 13:37
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Buenos dĂ­as Robas,

    Más que un límite de módulos para cada agente, hay un límite de módulos para cada servidor, ya que si los módulos son remotos, estos son ejecutados por los diferentes servidores de Pandora. Para el servidor de Pandora, podemos monitorizar aproximadamente unos 50000 módulos.

    ¿Lo estás haciendo mediante módulos remotos o módulos de agente software?

    Saludos.

  • Robas

    Member
    January 31, 2011 at 17:14
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Los modulos que dice son ejecutados en el agente, la lĂ­nea de comando es algo asĂ­:

    $ curl http://www.urlmonitorizada.com.br/ejemplo/paginamonitorizada.html -s | grep -i “cadena buscada” | wc -l

    Pregunté si hay algun limite en el numero de modulos porque a veces la salida del comando ejecutado por el agente es distinta de la salida del comando ejecutado directamente en la línea de comando (que raro!).

    Alguna idea de cĂłmo hacer algo como un debug?

  • luismi

    Member
    January 31, 2011 at 17:31
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Hola,

    Pues en principio el nĂşmero de mĂłdulos es “ilimitado” ya que el lĂ­mite lo pone la máquina al ejecutar los mĂłdulos. Los mĂłdulos van ejecutándose uno a uno y generando el XML, pero deberĂ­an recoger los mismos datos que al ejecutarlo desde la lĂ­nea de comandos.

    Saludos.

  • Robas

    Member
    January 31, 2011 at 18:07
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Luismi, sobre esa cantidad de 50.000 modulos / servidor. Hay alguna relaciĂłn con la frecuencia de monitorizaciĂłn?

  • luismi

    Member
    January 31, 2011 at 19:08
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    No, la frecuencia con la que envĂ­en los agentes los datos recogidos no deberĂ­a afectar a la monitorizaciĂłn. En caso extremo, el agente se volverĂ­a a ejecutar antes de terminar la ejecuciĂłn de los mĂłdulos de la ejecuciĂłn anterior. En casos normales no deberĂ­a afectar.

    Saludos.

  • Robas

    Member
    February 1, 2011 at 07:09
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Estaba pensando, hay alguna manera de un agente ejecutar sus modulos en paralelo? Por ejemplo utilizando 2 threads para ejecutar los modulos.
    Es que a veces el curl se queda detenido en una URL hasta el timeout establecido, si había alguna manera de ejecutar más 1 curl al mismo tiempo seria genial.

    Saludos.

  • luismi

    Member
    February 1, 2011 at 12:55
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Hola Robas,

    Se puede hacer que el agente utilice un número de hilos determinado para ejecutar los módulos en paralelo: Para ello basta con editar el archivo de configuración del agente /etc/pandora/pandora_agent.conf y modificar el parámetro:

    #agent_threads 1

    Aquí determinas el número de hilos que lanzará el agente para ejecutar los módulos. Por defecto viene desactivado y ejecutando los módulos uno detrás de otro en un único hilo.

    Eso sí, este parámetro solo está disponible para agentes Unix.

  • Robas

    Member
    February 1, 2011 at 22:58
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Hmmm, que bueno 🙂
    He intentado en un linux y me parece que en las primeras veces que ha ejecutado (primeros modulos), ha utilizado más de 1 hilo (ejecutando más de 1 modulo al mismo tiempo)… pero en las ejecuciones posteriores parece que la ejecuciĂłn se quedo serializada.
    Mira el ejemplo en anejo.

    El primero “ps” nos muestra 1 comando curl en la URL:
    sh -c curl http://URL1/Tva266/chat4/cliente/frm_login.asp -s | grep -i “TVA” | wc -l 2> /dev/null

    El segundo “ps” nos muestra que tenemos 2 curls ejecutando:
    sh -c curl http://URL1/Tva266/chat4/cliente/frm_login.asp -s | grep -i “TVA” | wc -l 2> /dev/null
    sh -c curl http://URL2/Classificacao/guiapratico/index.html -s | grep -i “Portal” | wc -l 2> /dev/null

    El tercero “ps” nos muestra el primero curl detenido en la primera url esperando que conteste y un otro comando curl ejecutando en una nueva URL:
    sh -c curl http://URL1/Tva266/chat4/cliente/frm_login.asp -s | grep -i “TVA” | wc -l 2> /dev/null
    sh -c curl http://URL3/Classificacao/guiapratico/index.html -s | grep -i “Portal” | wc -l 2> /dev/null

    El cuarto “ps” nos muestra el primero curl aun detenido y otro curl ejecutando una nueva URL:
    sh -c curl http://URL1/Tva266/chat4/cliente/frm_login.asp -s | grep -i “TVA” | wc -l 2> /dev/null
    sh -c curl http://URL4:8080/OUGWar/workflow_soap -s | grep -i “XMLSchema” | wc -l 2> /dev/null

    Hasta aquí todo bien, pero ahora se ejecuta un solo comando curl, como se tuviéramos un solo hilo.
    Mi intenciĂłn es justo esa: encuanto un hilo quedarse detenido en una URL que tarda a contestar, los otros hilos se quedan libres para acceder a las otras URLs.
    Tiene alguna idea de porque los hilos se ejecutaban OK, pero despues pasĂł a ejecutar solo 1 hilo?

    Muchas gracias por la ayuda! 🙂

  • luismi

    Member
    February 2, 2011 at 13:37
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Buenos dĂ­as Robas,

    Podría ser que los procesos estén terminando justo cuando se empiezan a ejecutar otros. Con esa prueba no se puede determinar exactamente el correcto funcionamiento de los hilos. Para hacer la prueba de forma más exhaustiva, prueba a ejecutar diferentes sleep.

    Con lo que sea nos cuentas. Saludos.

  • Robas

    Member
    February 2, 2011 at 16:38
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Buenos dĂ­as,

    Voy a hacer esta prueba 🙂

    Saludos!

    Obs: En la secuencia de comandos que he anejado, hice una limpieza… dejando solo los “ps -ef” con retornos distintos… o sea, estaba ejecutando 1 “ps -ef” por segundo, tuve muchos retornos iguales y en ningun de esos estaba más de 1 URL siendo accedida… por eso he pensado que no habĂ­a manera de los hilos acabaren justo cuando otro empezava.

  • Robas

    Member
    February 2, 2011 at 17:26
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Hola Luismi,

    Hice una politica con 3 modulos con tiempos distintos de sleep, para vermos facilmente la diferencia entre ellos por el “ps -ef”

    PolĂ­tica: SomnĂ­fero
    MĂłdulo 1: sleep 10
    MĂłdulo 2: sleep 9
    MĂłdulo 3: sleep 8

    Anejado está el dump de los “ps -ef”.
    He probado con “agent_threads 1” y “agent_threads 3”, pero me parece que solo 1 hilo esta ejecutando.

    Obs: ahora no he limpiado el log de la ejecuciĂłn, hice algunos “ps -ef” durante la ejecuciĂłn de cada modulo, para chequear si algun otro hilo habĂ­a empezado a ejecutar.

  • luismi

    Member
    February 3, 2011 at 14:22
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Hola Robas,

    Sí, efectivamente he estado haciendo las mismas pruebas y la ejecución con diferentes hilos se realiza siempre en la primera ejecución después de iniciar el agente, pero las siguientes ejecuciones las hace sobre un único hilo.

    He abierto el bug en el tracker y se solucionará para próximas versiones. De todas maneras, te adjunto el demonio del agente modificado y que funciona bien con todos los hilos de ejecución que configures.

    Para el servicio del agente de pandora, sustituye el demonio que tienes ahora, que por defecto está en /usr/bin/pandora_agent y /usr/share/pandora_agent por el modificado e inicia de nuevo el agente de pandora.

    Saludos.

  • Robas

    Member
    February 3, 2011 at 17:01
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Hola Luismi,

    Muchas gracias 🙂
    He probado y con esa versiĂłn que me ha enviado está perfecto… la cantidad exacta de hilos son creados y recreados despues de la primera ejecuciĂłn.

    Saludos!

  • Robas

    Member
    February 3, 2011 at 22:03
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Hola Luismi,

    Hay alguna cantidad maxima de hilos??
    Algo raro esta pasando: tengo 278 modulos, pero 155 estan como unknown…
    He puesto 15 y despues 10 hios… los modulos se ejecutan biĂ©n, pero en un determinado momento los hilos van morriendo y la ejecuciĂłn para, reporta al server, pero, más de metade de los modulos no son ejecutados. Que raro!
    Actualmente estan aplicadas 2 politicas… voy probar solo con 1 politica.. despues solo con la otra.. y si todo ocurrir bien, ponerĂ© las 2 juntas.. i’ll let you know

    Alguna idea de pruebas que podemos hacer??

    Muchas Gracias por la ayuda!!
    Saludos.

  • Robas

    Member
    February 4, 2011 at 00:03
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Hmmm, mira lo que tenemos en pandora_agent.log:

    Thread creation failed: pthread_create returned 11 at /usr/bin/pandora_agent line 1402.

  • luismi

    Member
    February 4, 2011 at 17:22
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    El número máximo de hilos son unos 15 hilos, aunque no te aconsejo poner tanto ya que no por tener más hilos el agente ejecutará antes todos los módulos ya que los cambios de contexto también consumen tiempo.

    Yo te aconsejarĂ­a poner por ejemplo 4 o 5 hilos para ejecutar todos los mĂłdulos.

    El error ese puede ser causado al manejar más hilos de los que soporta.

    Un saludo.

  • Robas

    Member
    February 7, 2011 at 16:24
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Hola Luismi,

    ProbĂ© lo sugerido pero el agente no esta bien.. he puesto 4 threads, 3 threads, 2 threads, rearrancado el agente, pero no se ejecuta normalmente. El numero de modulos ejecutados esta cada vez más bajo… ahora mismo creo que ningun modulo esta ejecutando.. en el log tenemos la lĂ­nea “Thread creation failed: pthread_create returned 11 at /usr/bin/pandora_agent line 1402.”
    Alguna idea?

  • luismi

    Member
    February 10, 2011 at 15:10
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Buenos dĂ­as Robas,

    Hemos replicado una situación parecida con muchos módulos y con algunos threads  y efectivamente se da el mismo comportamiento que describes.

    Hemos vuelto ha hacer algunos cambios al demonio del agente de pandora y lo hemos comprobado para el mismo caso, obteniendo buen resultado.

    Igual que la vez anterior, para el servicio del agente de pandora y sustituye el demonio que tienes (/usr/bin/pandora_agent y /usr/share/pandora_agent) por el nuevo que subo e inicia de nuevo el agente de pandora.

    Cuando lo pruebes nos cuentas.

    Saludos.

  • Robas

    Member
    February 10, 2011 at 15:54
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Buenos dĂ­as Luismi,

    Voy reemplazar el demonio y le cuento 🙂

    Muchas Gracias!!

    Saludos.