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)

-
Salud
- ¿Los humanos han superado el pico de su capacidad cerebral?
- Si la gripe aviar se transmitió a los humanos, ¿podrían las infecciones de gripe anteriores ofrecer alguna protección?
- Un amplio estudio demuestra que beber alcohol es bueno para los niveles de colesterol
- El sistema de salud pública de Nueva Zelanda, valorado en 16.000 millones de dólares, funciona con una única hoja de cálculo de Excel
- Correr, entrenamientos para cuestas arriba
- Bután, tras priorizar la felicidad, se enfrenta ahora a una crisis existencial
- Cómo se podrían prevenir la mayoría de los accidentes cerebrovasculares
- El gel anticonceptivo masculino sigue siendo prometedor
- Gran Bretaña encubrió el escándalo de sangre contaminada que mató a miles de personas, según un informe
- La contaminación del aire podría ser una causa importante de demencia
- ¿Dormimos demasiado? ¿Es un mito las ocho horas de sueño diarias?
- La Escritura a Mano Potencia la Memoria y el Aprendizaje, Según Estudios Científicos
- La Clave para la Felicidad: Equilibrar Tu 'Cartera de Inversiones'
- La Sisifemia Laboral: El Peligroso Ciclo de la Obsesión por la Perfección en el Trabajo
- Lanzamiento del kernel de Linux 6.3