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

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

Configuramos el zabbix para que envie las alarmas

Añadimos en zabbix→Administration→Media types→Create Media type.

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 y pulsamos sobre el botón Create action o 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 larmas se entan enviado correctamente ir a Zabbix→Reports→Action log

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