Archive for October 2014

Check Network Device: plugin Nagios para chequear recursos en dispositivos de red

Desde hace un tiempo vengo trabajando en un plugin para Nagios que me permita chequear recursos básicos de dispositivos de red. Me focalicé en el monitoreo de dispositivos Cisco, con los cuales trabajo a diario y es mi principal interés, pero la idea es que soporte diversos dispositivos en el futuro.

El plugin permite chequear los siguientes recursos:

  • Carga de CPU
  • Temperaturas
  • Estados de los FANs
  • Uso de Memoria
  • Estado de interfaces de red (up/down)
  • Ancho de banda (input y output) en interfaces de red

Además de chequear el estado (con umbrales warning y critical), también retorna información contabilizable para poder graficar los resultados con PNP4Nagios u otros plugins. Los valores posibles de graficar son carga de CPU, memoria, temperatura y ancho de banda de las interfaces.

El monitoreo se realiza por SNMP, por lo cual este protocolo debe estar activo en los dispositivos y aceptar conexiones desde el servidor Nagios. Además, el script utiliza la versión en python de la librería Net-SNMP, la cual se encuentra en los siguientes paquetes:

  • python-netsnmp // debian
  • net-snmp-python // Red Hat

Actualmente el proyecto se encuentra en Launchpad y pueden descargar la última versión desde la siguiente dirección: https://launchpad.net/check-net-device/+download

Opciones

Se proveen varias opciones que pueden resultar abrumantes al principio, pero una vez que se entienden, no son complicadas..

El uso de check_net_device es el siguiente:

check_net_device -H <ip_address> -C <community> <-t -t device_type | -i interface_ID> [-o check_option] [-w warning] [-c critical] [-P log_path]

donde las opciones obligatorias son:

  • -H; –host <ip_address>:  es la IP del host a chequear.
  • -C; –community <community>: comunidad SNMP definida en el dispositivo.
  • -t; –type <device_type>: tipo de dipositivo a chequear. Los valores permitidos en la versión 0.4 son cisco y bc (de BlueCoat), pero sólo cisco está implementado.
  • -i; –interface <interface_id>: se utiliza para chequear estado de interfaces y anchos de banda. El ID dado por el fabricante a la interfaz que se desea chequear. El ID de la interfaz se puede encontrar consultando el OID 1.3.6.1.2.1.31.1.1.1.1 (ifName) con snmpwalk, y sólo la última parte del OID se necesita como parámetro. Ejemplo: snmpwalk -v2c -c <community> <host ip> 1.3.6.1.2.1.31.1.1.1.1
  • -o; –option <check_option>: especifica el recurso a chequear. 
  • Las opciones disponibles son con el argumento -t son:

    • env: check environmental status. On Cisco it includes temperatures and fan status.
    • cpu: check status and return CPU load.
    • memory: check memory status, and return percentage usage.

    Con el argumento -i, las opciones disponibles son:

    • ifstatus: check the interface status, returning OK or DOWN.
    • ifbw: check input/output bandwidth and return usage.
  • -w; –warning <value>: umbral para reportar un warning. Dependiendo del tipo de chequeo, puede ser un porcentaje o un número.
  • -c; –critical <value>: umbral para reportar un estado crítico. Dependiendo del tipo de chequeo, puede ser un porcentaje o un número.
  • -P; –log-path <path to dir>: necesario para utilizar la opción “-i <interface id> -o ifbw”, dado que esta opción necesita un directorio donde guardar los valores de ancho de banda leídos. El usuario que ejecute este comando (usualmente llamado nagios) necesita permiso de escritura en el directorio especificado.

Nota:

  • -t y -i no se usan al mismo tiempo, dado que los chequeos de interfaces son independientes del tipo de dispositivo. Esta opción se puede utililizar para chequear cualquier tipo de dispositivo.
  • -w y -c son opcionales, dado que el script posee valores ya definidos para estados de warning y critical.

Ejemplos

Uso de CPU:

$ ./check_net_device.py -C public -H 192.168.0.1 -t cisco -o cpu
OK –  CPU Load: 1% | ‘CPU Load’=1%;60;80

Ancho de banda:

$ ./check_net_device.py -C public -H 192.168.0.1 -i 2 -o ifbw -P /tmp/
OK –  In: 1.08 Mb/s, Out: 1.49 Mb/s | ‘In’=1129850B;629145600;83886080  ‘Out’=1561893B;629145600;83886080

Estado de interfaces:

$ ./check_net_device.py -C public -H 192.168.0.1 -i 2,3,4,6
OK –  All Interfaces UP | Gi1/1: Up, Gi1/2: Up, Fa2/1: Up, Fa2/3: Up

Ejemplos de gráficos con PNP4Nagios, a partir de valores retornados por check_net_device:

Ancho de banda:

Carga de CPU:

Otro Plugin?

Alguno seguramente dirá, ya existen plugins para monitorear equipos de red. Pues si, pero desarrollé este script por tres grandes razones:

  • No encontré ningún plugin que realice todo esto junto:
    • Chequeo de estado de CPU, memoria, interfaces, ancho de banda, temperatura y fans.
    • Entrega de información de performance para poder graficar los valores obtenidos.
    • Sirva para múltiples dispositivos. Los que chequean múltiples tipos de dispositivos, no permiten muchos tipos de chequeos (por ejemplo check_snmp_environment).
  • Los plugins que vi están todos escritos en perl, y si bien perl me parece un lenguaje fantástico, se me hace difícil de seguir, con lo cual, me dificulta la posibilidad de agregar funcionalidad a scripts existentes. Creo que un script en python facilitará que muchos lo extiendan, ya que python es más fácil de aprender.
  • Me gusta programar =)

Espero que les sea útil. Si encuentran errores, por favor reportar, trataré de solucionarlos lo más rápido posible.

Leer artículo original: Check Network Device: plugin Nagios para chequear recursos en dispositivos de red

¿Subes Fotos de Tus hijos en la Web?

En esta era digital es muy común ver como cada actividad que realizamos la publicamos inmediatamente en la red. Algunos psicólogos explican que esto es debido a que queremos demostrar una falsa realidad de una vida entretenida y llena de experiencias, mas que en realidad experimentarlo.

Pero,¿realmente existen peligros con esto?
Como a e-safe4kids le interesan los niños la respuesta es SI.

Gente malintencionada pasa días navegando en Internet solo recolectando información sobre otros con fines maliciosos, y son las mismas victimas muchas veces las que hacen su trabajo mas fácil.



Incluso una forma mucho más simple para ejemplificar esto es: Si una persona desconocida en la calle te solicita que le regales una foto de tu hijo o que le permitas sacarle una: Lo más probable es que tu respuesta sea NO.

Entonces ¿porqué por en la RED si se la vamos a regalar?

La información es el bien mas importante que tienes las personas, y su privacidad el derecho mas preciado.


Recomendaciones para Padres y Niños:

1) NO PUBLIQUEN FOTOS DE MENORES EN INTERNET (como probablemente lo harán, sigan con las recomendaciones que siguen)

2) No dejar en evidencia lugares como el colegio de los niños o en el lugar donde viven o que puedan dar pistas de aquello.

3) No publicar fotos con los niños con sus uniformes donde faciliten la forma de ubicar el lugar donde permanecen esos niños.

4) OJO con la aplicaciones que publican fotos o derechamente sus coordenadas como: Foursquare – Facebook – Twitter – INSTAGRAM ETC

5)En caso de llevar tu equipo al servicio técnico, respalda su información y borra la información importante.

6) NO publiques información sobre que actividades realizan tus hijos y donde las realizan.

* cosas como: foursquare: ( aquí en el colegio buscando a mi hijo ) resultan en entrega de datos innecesarios hacia extraños que podrían ser potencialmente abusadores.

7) Finalmente: NO olvides que una vez que subes una imagen a Internet, esta se multiplicará sin control y cualquier personas a miles de kilómetros podría verla en la comodidad de su pieza.




Leer artículo original: ¿Subes Fotos de Tus hijos en la Web?