LinuxParty
1 Nota preliminar
FoxBox (www.smsfoxbox.it), según lo indicado por los fabricantes, se presenta en dos versiones similares (G25 y LX800) que difieren en aspectos específicos de hardware. En esta guía nos referiremos a SMS Gateway LX800 (compramos éste debido a su alto rendimiento y el almacenamiento CompactFlash), pero estoy seguro de que podría extenderse a otras versiones sin problemas.
Nuestro servidor se ejecuta el Nagios Core 3.5.0 (con plugins de Nagios 1.4.16) sobre una Debian Squeeze. Probablemente para diferentes distribuciones los caminos van a cambiar, pero la lógica sigue siendo la misma
2 Instalación del lado FoxBox
El dispositivo está diseñado para este tipo de tareas de comunicación, por lo que no hay mucho que hacer aquí, excepto:
Proporcione una dirección IP válida, accesible desde nuestro servidor de supervisión; Inserte una tarjeta SIM de trabajo probada y completa, para enviar los SMS.
3 Instalación en el lado del servidor
En primer lugar tenemos que poner este script dentro de la carpeta /usr/lib/nagios/plugins/:
#!/usr/bin/perl use LWP::UserAgent; use Getopt::Long; use strict; use warnings; use constant OK => 0; use constant WARNING => 1; use constant CRITICAL => 2; use constant UNKNOWN => 3; use constant SEND_PAGE => "/source/send_sms.php"; my($host); my($username); my($password); my($number); my($message); sub usage() { print("Usage: send_sms -h|--host <host> -u|--user <username> --pw|--pass <password> -n|--number <phone_number> -m|--message <message>\n\n"); print("<host> - IP address or hostname of the SMS FoxBox\n"); print("<username> - name of the SMS FoxBox administrator\n"); print(" <password> - password of the SMS FoxBox administrator\n"); print(" <phone_number> - phone number where SMS will be sent\n"); print("<message> - message to be sent\n"); } sub send_sms { my($host, $user, $pass, $phonenum, $text) = @_; my($ua); my($html_page); my($response); my($status_code); $ua = LWP::UserAgent->new; $ua->timeout(10); $response = $ua->post("http://$host" . SEND_PAGE, [ "username" => $user, "pwd" => $pass, "from" => 'Nagios', "nphone" => $phonenum, "testo" => $text, "nc" => "http://$host" . SEND_PAGE ]); if(!$response->is_success) { print("ERROR: " . $response->status_line . "\n"); $status_code = UNKNOWN; } $html_page = $response->content; if($html_page =~ /p class="(\w+)"/g) { if($1 eq "confneg") { print("ERROR: Unable to send SMS\n"); $status_code = UNKNOWN; } else { $status_code = OK; } } else { print("ERROR: Unknown page output\n"); $status_code = UNKNOWN; } return $status_code; } undef $host; undef $username; undef $password; undef $number; undef $message; GetOptions( 'host|H=s' => \$host, 'user|u=s' => \$username, 'pass|pw=s' => \$password, 'number|n=s' => \$number, 'message|m=s' => \$message); if(!defined $host || !defined $username || !defined $password || !defined $number || !defined $message) { usage(); exit(UNKNOWN); } $message =~ s/\\n/\n/g; my($ret_status); $ret_status = send_sms($host, $username, $password, $number, $message); exit($ret_status);
También es importante establecer correctamente los permisos de este fichero, para que el usuario Nagios pueda ejecutarlo.
Ahora hay que añadir los nuevos comandos de notificación, que trabaja en el canal en lugar del clásico único correo electrónico SMS. Para ello, hay que añadir estas líneas al archivo /etc/nagios3/commands.cfg:
# 'notify-host-by-foxbox' command definition define command{ command_name notify-host-by-foxbox command_line /usr/lib/nagios/plugins/sendSMS.sh -h "127.0.0.1" -u "nagiosadmin" -pw "nagios" -n "$CONTACTPAGER$" -m "Host Alert: $HOSTNAME$ \nHost State: $HOSTSTATE$ \nDate/Time: $LONGDATETIME$" } # 'notify-service-by-foxbox' command definition define command{ command_name notify-service-by-foxbox command_line /usr/lib/nagios/plugins/sendSMS.sh -h "127.0.0.1" -u "nagiosadmin" -pw "nagios" -n "$CONTACTPAGER$" -m "Service Alert: $HOSTALIAS$/$SERVICEDESC$ \nService State: $SERVICESTATE$ \nDate/Time: $LONGDATETIME$" }
Como puede ver, necesitamos una nueva información para las visitas, el número de teléfono. Por lo tanto, tenemos que definirlo como "buscapersonas" en el archivo /etc/nagios3/conf.d/contacts_nagios2.cfg.
Por otra parte, hemos creado el comando notificación de servicio / host. Por defecto estos están utilizando el canal de correo electrónico, mientras que nosotros queremos alertar a los nuevos comandos de notificación, así que tenemos que editar los parámetros "service_notification_commands" y "host_notification_commands":
define contact{ contact_name test-contact use generic-contact alias tester email yourname@domain host_notification_commands notify-host-by-foxbox service_notification_commands notify-service-by-foxbox pager 12453683421 }
Obviamente, una vez terminada la configuración que tenemos que reiniciar el servicio de Nagios para ver sus efectos.
Para comprobar que todo está bien, tal vez podría iniciar la verificación previa con:
nagios3 -v /etc/nagios3/nagios.cfg
Como yo lo veo, esta arquitectura también se ha aplicado en un par de versiones FOXBOX, proporcionando una solución de notificación todo-en-uno (EasyG2 G25 y Monitoreo LX800).
(Referencias: www.smsfoxbox.it)

-
Espacio
- El primer satélite construido con paneles de madera fue lanzado al espacio
- Lo que quise saber del Universo pero la mala divulgación no contó
- ¿Puede existir vida en el espacio sin un planeta? Un nuevo estudio revela una respuesta sorprendente
- Los competidores de SpaceX se esfuerzan por construir cohetes reutilizables
- Descifraron la señal ¡Wow!: y su resultado no te gustará
- Starlink ya está disponible en todos los vuelos Airbus de Hawaiian Airlines
- Hace 4.500 millones de años, otro planeta impactó contra la Tierra. Hemos encontrado sus restos.
- Estudio Revela que las Civilizaciones Avanzadas en la Vía Láctea Podrían ser Extremadamente Raras
- Plutón no regresará, pero los astrónomos quieren redefinir los planetas nuevamente
- La Voyager 1 regresa a las operaciones científicas normales
- China aterriza con éxito una sonda en la cara oculta de la Luna y comienza a recolectar muestras
- Un estudio confirma la predicción de Einstein: los agujeros negros tienen una "región que se hunde"
- La Voyager 1, la primera nave en el espacio interestelar, puede haberse quedado a oscuras
- Adiós al Ingenuity, Perseverence toma una foto del helicóptero dañado y abandonado en Marte.
- Una Kilonova a años luz de la tierra, representa un potencial peligro para nuestro planeta