Zabbix, envio de alarmas mediante SMS

Cómo sabéis los servidores son críticos y cuando estoy fuera de la oficina siempre es bueno estar atento, para ello no utilizo el sistema de SMS de Zabbix, porque no tengo ningún modem GSM conectado físicamente a los servidores.Utilizo un servicio de la empresa Clickatell, me proporciona un buen servicio y no tengo queja hasta la fecha, es barato y tiene cobertura internacional.

En Zabbix lo primero que hago es configurar un trigger. Lo que hago es monitorizar el puerto 81 de un equipo para probar. Ahí tengo configurado un servidor de nginx, y lo activo y desactivo para comprobar que funciona el trigger.

Lo siguiente que hago es configurar un media type para un usuario.
También añado una acción para enviar por correo en el caso de que el trigger se active.

El media type que he creado es un script en python, que lo que hace es enviarme un sms en el caso de que se le llame con el parámetro del trigger ON.

Si se le pasa cualquier otra cosa como parámetro no me enviará mensaje.

enviarsms.py
#!/usr/bin/env python '''Script para enviar mensajes al gateway sms''' import sys import os import smtplib import ssmtplib # definimos una funcion en la que recogemos varios parametros, luego formateamos el mensaje y lo enviamos def enviosmsservicio(alarma,host,estado): servidor="tu servidor smtp" puerto=465 fromadr="cuenta desde la que enviamos" cont="clave para autenticar" msg = ("From: cuenta desde la que enviamosrnTo: cuenta de correo de clickatellrnrn") numeros={"uno":"34000000000"} click=("usuarioclick","clave","clave_api") if sys.argv[3]=="ON": texto="user:"+click[0]+"rnpassword:"+click[1]+"rnapi_id:"+click[2]+ "rnto:"+numeros["uno"]+"rntext:Alarma" "rntext:"+sys.argv[1]+" "+sys.argv[2]+" "+sys.argv[3] msg=msg+texto server=ssmtplib.SMTP_SSL(servidor,puerto) server.set_debuglevel(0) server.login(fromadr,cont) server.sendmail(fromadr, "cuenta de correo de clickatell",msg) server.close() return msg enviosmsservicio(sys.argv[1],sys.argv[2],sys.argv[3]) 

Lo primero que tenemos que hacer es importar los módulos necesarios, aquí sólo hay uno que no es habitual y es ssmtplib.

Utilizo este módulo porque envío los mensajes hacia clickatell a través de nuestro servidor de correo y sólo podemos enviar mensajes conSSL y autenticación; de ahí las siguientes líneas para autenticar el correo.

Si no utilizáramos autenticación ni SSL reduciríamos líneas del script.

numeros es un diccionario donde incluimos el número al que hay que enviar el SMS. Lo hice así en previsión de futuras modificaciones.

click es una tupla que contiene el nombre de usuario, la clave api y la contraseña del servicio de mensajes de clickatell.

La comprobación del script es sencilla, ejecutando por ejemplo sendsms.py host algo ON nos enviaría el mensaje.

Anuncios

Deja un comentario

Archivado bajo Sistemas

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s