Telegram bot CLI

Conector CLI de bots de Telegram para usar en alertas de pandora

Introducción

Ver. 080621

Conector CLI de bots de Telegram para usar en alertas de pandora.

 

Matriz de compatibilidad

Prerrequisitos

Los requisitos son los siguientes:

Configuración

Creación del BOT en Telegram

Desde una cuenta de Telegram se debe escribir /start al usuario BotFather (https://telegram.me/botfather) para crear un bot.

Nos devolverá una serie de parámetros e instrucciones que podemos hacer para la creación y manipulación de bots.

image-1626693442412.png

Nosotros utilizaremos la opción /newbot con la que crearemos un nuevo bot.
Nos preguntará el nombre que queramos poner a nuestro bot, en mi caso he seleccionado Pandora_FMS_Test_bot , pero usted puede poner el que prefiera
.

Ahora nos pedirá un id de usuario para el bot, este tiene que terminar en _bot en este caso utilizaré el mismo. Pandora_FMS_Test_bot.

Ahora nos devolverá la información de nuestro bot y algunas instrucciones para su administración, nosotros copiaremos y guardaremos el API token que es con el que nos autenticaremos como ese bot.

image-1629719317095.png

 

Crear un grupo y añadir el bot


Para crear un grupo desde Telegram simplemente debemos hacer clic en crear grupo y seleccionar los usuarios que estarán en ese grupo. Es importante que uno de esos usuarios sea nuestro bot para poder enviar mensajes a ese grupo específico. También podemos simplemente añadir el bot a un grupo existente.

image-1626695074691.png

Obtener la id del grupo para enviar mensajes desde el CLI

Ahora necesitamos obtener la id del grupo en el que hemos añadido nuestro bot, hay diferentes formas de hacerlo, pero de las más sencillas es añadir otro bot que extrae esa información muy fácilmente GetIDs Bot (https://t.me/getidsbot).
Lo añadimos al grupo que queremos conocer el id y nos dará una serie de instrucciones para su uso. Pero solo con añadirlo ya nos dará la información que necesitamos que es la id del grupo.

image-1629719396585.png

Una vez tengamos la id del grupo lo copiamos y guardamos, podemos eliminar este bot del
grupo si queremos, ya ha cumplido el objetivo de darnos el id.

Configurar Pandora-Telegram CLI


Para usar el Pandora Telegram CLI (source code) debemostener instalado python3 y pip3 para las dependencias.
Para instalar las dependencias, en el paquete del que descargue verá el fichero requirements.txt, nos posicionamos en su directorio y simplemente ejecutamos:

pip3 install -r requirements.txt

Esto descargará e instalará las dependencias necesarias.
Una vez instaladas las dependencias ejecutamos él fichero pandora-telegram-cli.py -h con el intérprete de Python para ver su ayuda:

python3 pandora-telegram-cli.py -h
usage: pandora-telegram-cli.py [-h] -m MESSAGE -t TOKEN -c CHAT_ID
Bot telegram cli
optional arguments:
-h, --help show this help message and exit
-m MESSAGE, --message MESSAGE
Message to be send
-t TOKEN, --token TOKEN
Bot token
-c CHAT_ID, --chat_id CHAT_ID
chat id to send messages

Si vemos la ayuda sin ningún error ya estamos listos para usarlo.

Parámetros generales del plugin

python pandora-telegram-cli.py -t <bot_token> -c <chat_id> -m <MESSAGE> [ --api_conf <API_CONF> ] [ --module_graph <MODULE_GRAPH> ] [ --tmp_dir <TMP_DIR> ]

Si las credenciales son correctas nos devolverá en formato .json la información del mensaje que acabamos de enviar, que podremos ver recibido en nuestro grupo de Telegram.

image-1626777891772.png

image-1626778321184.png

 

Uso en Pandora FMS

Lo primero que debemos hacer es subir el script a una ruta accesible en la máquina donde tengamos desplegado el servidor de Pandora FMS, en mi caso lo colocaré en/usr/share/pandora_server/util/pandora-telegram-cli.py. No obstante, puede usar cualquier ubicación siempre que el servidor de pandora tenga acceso a esta.

También, debemos asegurarnos de que tenemos las dependencias instaladas para la ejecución del plugin o que contamos con la versión compilada en su defecto. Para comprobarlo simplemente ejecutamos el plugin sin ningún parámetro, el cual debe devolvernos una respuesta similar a:

python3 pandora-telegram-cli.py

image-1626779978941.png

En caso de tener algún error ir a la sección de configuración del plugin de esta guía donde se describe cómo instalar las dependencias.

Teniendo el plugin en el servidor y funcionando correctamente, ahora tenemos que declararlo en la consola web de Pandora FMS.

Una vez accedemos como administrador (o con permisos de gestión de alertas) iremos a la sección de Alertas > Comandos.

image-1626780482823.png

Hacemos clic en crear nuevo comando.

image-1626781199964.png

Aquí definiremos la ejecución del script y los parámetros que utilizaremos haciendo uso de las macros de PandoraFMS.
Mi definición será:

image-1626783620101.png

Aquí definimos un campo por cada parámetro que va a tener el plugin. Si no quisiesemos usar alguno de los parámetros opcionales simplemente valdría con dejarlo en blanco, o no definirlo.

Ahora podemos ir a configurar la acción usando nuestro comando. Nos vamos a Alertas > Acciones.

image-1626783882187.png

Pulsamos en Crear.

image-1626783945727.pngSeleccionamos el comando que queremos usar, en este caso el que acabamos de crear para el bot de Telegram.

Aquí podremos definir y modificar los campos correspondientes a los field que hemos definido, yo lo he dejado como configuración por defecto en el comando, por lo que podemos usarlo con lo que hemos definido, pero podremos cambiarlo a nivel de acciones específicas si queremos cambiar los datos que se envían para cada acción y cambiar el texto de disparo y el de recuperación

Teniendo la acción configurada simplemente podemos ir a un módulo o política y aplicar esta acción con el template correspondiente.
Para más información acerca de la configuración de alertas vaya a la documentación oficial de PandoraFMS:

image-1626853534873.png