Telegram bot CLI
Conector CLI de bots de Telegram para usar en alertas de pandora
- Introducción
- Matriz de compatibilidad
- Prerrequisitos
- Configuración
- Parámetros generales del plugin
- Uso en Pandora FMS
Introducción
Ver. 080621
Conector CLI de bots de Telegram para usar en alertas de pandora.
Matriz de compatibilidad
- Python3 para source code
- Linux x64 para compilado
- No funciona en sistemas Windows
Prerrequisitos
Los requisitos son los siguientes:
- Una cuenta de Telegram para crear el bot
- Añadir el bot al grupo de notificación
- Obtener la id del grupo
- Tener instalado python3 en el servidor de Pandora con el módulo: request (solo para código fuente)
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.
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.
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.
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.
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.
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
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.
Hacemos clic en crear nuevo comando.
Aquí definiremos la ejecución del script y los parámetros que utilizaremos haciendo uso de las macros de PandoraFMS.
Mi definición será:
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.
Pulsamos en Crear.
Seleccionamos 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: