Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Consultas SNMP en "paralelo"

42 views
Skip to first unread message

Mauro Antivero

unread,
Nov 30, 2015, 12:10:03 PM11/30/15
to
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).

Saludos y muchas gracias de antemano por su ayuda,

Mauro.

Camaleón

unread,
Nov 30, 2015, 1:00:03 PM11/30/15
to
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/

Saludos,

--
Camaleón

Pablo JIMÉNEZ

unread,
Nov 30, 2015, 1:40:05 PM11/30/15
to

Javi Barroso

unread,
Nov 30, 2015, 1:40:05 PM11/30/15
to
Hola,

El 30 de noviembre de 2015 18:09:00 CET, Mauro Antivero <mauro.a...@gmail.com> 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.

Como es el script? Si lo puedes parametrizar para q reciba el nombre del dispositivo del q sacar información, luego lo puedes paralelizar con cualquier paralelizador como pdsh

Eso sí, si el script lo inserta directamente en bbdd no sé si te generará bloqueos. Siempre puedes primero lanzarlo en paralelo guardarlo en ficheros separados e importar los resultados en bbdd

Un ejemplo con snmpwalk , con un fichero (hosts.txt) donde tengas los nombres u ips de los dispositivos:

$ pdsh -w^hosts.txt -R exec snmpwalk -v2c %h | tee resultados.log

Luego puedes usar dshbak para ver los resultados ordenados

Saludos

Camaleón

unread,
Dec 2, 2015, 9:30:03 AM12/2/15
to
El Mon, 30 Nov 2015 15:38:06 -0300, Pablo JIMÉNEZ escribió:

> 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.

(...)

>> Según la documentación, no parece que SNMP sea muy amigo de las
>> consultas asíncronas:

(...)
Entiendo que harán algo similar a lo que hace la biblioteca de Python.
Pero es curioso que el demonio en sí no esté preparado para procesamiento
de hilos múltiples porque ya ha llovido bastante desde que salió la
versión 3 y el multihilo (2003).

Saludos,

--
Camaleón
0 new messages