2012-08-11 21 views
5

Me gustaría escribir un script de python para realizar una supervisión "sin agente" muy simple de los procesos remotos que se ejecutan en los servidores de Linux.Monitoreo de procesos remoto simple con Python

Se llevaría a cabo las siguientes tareas, en psuedocode:

for each remoteIPAddress in listOfIPAddresses: 
    log into [email protected] via ssh 
    execute the equivalent of a 'ps -ef' command 
    grep the result to make sure a particular process (by name) is still running 

Una forma de hacer esto es tener los scripts de shell llamada pitón en un subproceso y analizar su producción. Eso parece bastante ineficiente. ¿Hay una mejor manera de hacer esto a través de las bibliotecas de Python?

Todo lo que podía encontrar a través de la investigación aquí y en otros lugares fue:

  • psutil - parece que no hace monitoreo remoto, por lo que tendría que ejecutar agentes en las máquinas remotas reportar las estadísticas de vuelta a través RPC.
  • pymeter - Tendría que escribir mi propio complemento para controlar un servicio remoto específico.
  • stackoverflow #4546492 - Algunos enlaces útiles pero el póster estaba buscando una solución diferente.

Gracias, y por favor, ir fácil en mí, es mi primera pregunta :-)

+0

http://www.noah.org/python/pexpect/ es también una opción gud Supongo –

+0

Gracias. Lo descargué y evaluaré en paralelo con Fabric (abajo). – tohster

Respuesta

3

La biblioteca Fabric puede ser de su interés.

+0

+1 a Fabric, hace que sea más eficiente escribir y mantener en lugar de los scripts de shell de Python. –

+0

Muchas gracias. Parece que todavía necesitaré hacer el núcleo usando comandos ssh, pero Fabric lo envuelve mucho más elegantemente de lo que hubiera esperado juntarme. ¡Aprecia la sugerencia rápida! – tohster

1

Salida paramiko. Puede usarlo para ingresar al servidor y ejecutar comandos. A continuación, puede analizar los resultados y hacer lo que desee con ellos.

+0

Gracias por la sugerencia. Creo que comenzaré con Fabric, pero este es el plan B y una buena respuesta. – tohster

+0

Miró tanto a Fabric como a Paramiko. Estoy aceptando esta respuesta porque se ajusta más a la pregunta original. – tohster

0

Puede ser más pesado de lo que está buscando, pero Zenoss es compatible con la supervisión sin agente.

Paramiko y Fabric, sugeridos en las otras respuestas, son excelentes opciones también.

+0

Gracias. Parece un producto comercial, así que lo guardaré en mi cuaderno para escalar más adelante. – tohster

+0

Es de código abierto, pero también tienen una edición comercial. –

0

¿Por qué no utilizar una herramienta de monitorización dedicada como Nagios? Nagios tiene un agente y agente menos monitoreado a través de los complementos NRPE y los complementos SSH, etc. Pruébelo.