Notificaciones de Zabbix por Telegram

Con un script bash

https://github.com/diegosmaia/zabbix-telegram

Se descarga el script en el directorio AlertScriptsPath directory.

El path a dicho directorio está definido en el fichero zabbix_server.conf. En mi caso AlertScriptsPath=/usr/lib/zabbix/alertscripts

se le da permisos de ejecución

En el script hay que modificarlo para añadir los parámetros correspondientes a nuestra configuración. En mi caso particular he modificado el script que te descargas desde la página de https://github.com/diegosmaia/zabbix-telegram y he modificado alguna de las llamadas a curl añadiendo la opción –noproxy '*' para evitar errores de ejecución ya que mi servidor utiliza un proxy para salir a internet.

Para saber el id del grupo creas un grupo nuevo y añades al bot a dicho grupo y desde el navegador accedes a la página https://api.telegram.org/bot<token>/getUpdates para obtener el id usuario y el id grupo. El token te llega en un mensaje de telegram
Ojo el bot tiene su propio id, que es distinto del id para el grupo

Para hacer una prueba ejecutamos el siguiente comando desde la consola situandonos en el directorio donde está localizado el script . Al ejecutarlo debería de llegarnos varios mensajes y un gráfico

-123456789 hay que cambiarlo por nuestro id de grupo que debemos obtener anteriormente

Configuración del zabbix para que envie las alarmas

Creamos un nuevo Media Types zabbix→Administration→Media types→Create Media type.

Como nombre ponemos telegram, tipo script, y en Script name ponemos el nombre de nuestro script zabbix-telegram.sh y marcamos la casilla Enabled.

En la casilla de Script Parameters pinchamos en Add y añadimos los siguientes parámetros

Ahora vamos a zabbix→Administration→User. Elegimos el usuario con el que enviamos las alarmas y pinchamos sobre el menú Media y después en add para añadir los parámetros de configuración

Por último vamos al menú zabbix→Configuration→Actions

En la casilla de Event Source seleccionamos Triggers y pulsamos sobre el botón Create action o bien modificamos una de las acciones existentes.

En nuestro caso creamos una nueva acción con los siguientes datos

Name → Enviar alarmas por telegram

Default subject → {HOSTNAME}:{TRIGGER.NAME}-Status-{TRIGGER.STATUS}

Default message →

Click en el menú operations y configuramos

para saber si las alarmas se están enviado correctamente ir a: Zabbix→Reports→Action log

Script Modificado para usar proxy

Mediante curl

Utilizando el siguiente script podemos enviar mensajes directamente con curl

Con un script en python

https://github.com/ableev/Zabbix-in-Telegram

Instalamos en el servidor python

Instalamos el módulo request necesario para ejecutar los scripts

Ponemos el script zbxtg.py en el directorio AlertScriptsPath directory. El path a dicho directorio está definido en el fichero zabbix_server.conf. En mi caso AlertScriptsPath=/usr/lib/zabbix/alertscripts

Copiamos zbxtg_group.py en la misma localización si queremos enviar mensajes a grupos

Creamos el fichero zbxtg_settings.py con la configuración nuestra en el mismo directorio donde está el script

Creamos un bot en telegram y apuntamos la API key

creamos un usuario de sólo lectura en Zabbix (paa obtener los gráficos e imagenes del zabbix)

Si usamos proxy debe de estar configurado en el fichero de configuración zbxtg_settings.py

Añadimos en zabbix→Administration_>Media types→Create Media type. Dos nuevos tipos de media types para Telegram con las siguiente configuración

y otro para los grupos

Referencias

http://zabbixecuador.blogspot.com.es/2016/05/integrar-telegram-en-zabbix.html

https://www.zabbix.com/forum/showthread.php?t=45600

Zabbix Notifications with graphs in Telegram