[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Consultas SNMP en "paralelo"



On Mon, Nov 30, 2015 at 05:52:41PM +0000, Camaleón wrote:
> El Mon, 30 Nov 2015 14:09:00 -0300, Mauro Antivero escribió:
> 
> > Estimados, tengo un script en PHP que realiza consultas SNMP a muchos
> > dispositivos y guarda los resultados en una DB MySQL. Una "ronda"
> > completa tarda aprox. 1 hora en correr. Esto en si por ahora no es un
> > problema pero me gustaría saber como puedo hacer para lanzar múltiples
> > consultas en paralelo (yo después vería como adaptar el script para que
> > cada uno consulte equipos distintos, sin pisarse digamos) para que
> > corran claro está al mismo tiempo.
> > 
> > El script de momento lo ejecuto mediante CRON cada una hora. Yo puedo
> > ejecutar más de una vez el mismo script (por supuesto, me falta ver como
> > hacer para que cada uno de los scripts consulte equipos distintos,
> > supongo que lo haré pasándole parámetros al script), pero como hago para
> > hacer uso de los distintos CPUs del servior? En este caso el CPU es un
> > Xeon E3 1270. Es necesario hacer algo o ya el sistema se encarga de
> > asignar un núcleo a cada ejecución del script (creería que no).
> 
> Según la documentación, no parece que SNMP sea muy amigo de las consultas 
> asíncronas:
> 
> Multi-tasking 
> http://www.net-snmp.org/wiki/index.php/Agent_Architecture#Multi-tasking
> 
> Is Net-SNMP thread safe?
> http://www.net-snmp.org/docs/FAQ.html#Is_Net_SNMP_thread_safe_
> 
> Pero sí he encontrado una biblioteca (para Python) que parece que 
> gestiona este tipo de peticiones, quizá haya algo similar para PHP:
> 
> http://pysnmp.sourceforge.net/

En Perl5, Net::SNMP permite realizar consultas en modo non-blocking:

http://search.cpan.org/~dtown/Net-SNMP-v6.0.1/lib/Net/SNMP.pm#Non-blocking_Objects
http://search.cpan.org/~dtown/Net-SNMP-v6.0.1/lib/Net/SNMP.pm#3._Non-blocking_SNMPv2c_get-bulk-request_for_ifTable
http://search.cpan.org/~dtown/Net-SNMP-v6.0.1/lib/Net/SNMP.pm#4._Non-blocking_SNMPv1_get-request_and_set-request_on_multiple_hosts

Saludos.

-- 
Pablo Jiménez


Reply to: