meta data de esta página
  •  

¡Esta es una revisión vieja del documento!


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

chmod +x zabbix-telegram.sh

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

./zabbix-telegram.sh -123456789 "prueba 12:43"  "Item Graphic: [37502]" 
. 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
    1. Name → Enviar alarmas por telegram
    2. Default subject → {HOSTNAME}:{TRIGGER.NAME}-Status-{TRIGGER.STATUS}
    3. Default message →

Trigger:{TRIGGER.NAME}
Trigger status:{TRIGGER.STATUS}
Trigger severity:{TRIGGER.SEVERITY}
Trigger URL:{TRIGGER.URL}

Item values:
1.{ITEM.NAME1}({HOST.NAME1}:{ITEM.KEY1}):{ITEM.VALUE1}

Item Graphic:[{ITEM.ID1}]

  1. 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

yum install python
yum install python-pip

Instalamos el módulo request necesario para ejecutar los scripts

pip install requests

  • 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