Telegram bot CLI
Conector CLI de bots de Telegram® para usar en alertas de Pandora FMS.
- Introducción
- Matriz de compatibilidad
- Prerrequisitos
- Configuración
- Parámetros generales del plugin
- Uso en Pandora FMS
Introducción
Versión 080621.
Conector CLI de bots de Telegram® para usar en alertas de Pandora FMS.
Matriz de compatibilidad
- Python versión 3 para el código fuente.
- Linux® x64 para código compilado.
- Incompatible en sistemas MS 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 Python versión 3 en el PFMS Server con el módulo:
request(solamente para código fuente).
Configuración
Creación del BOT en Telegram
Desde una cuenta de Telegram® se debe escribir /start al usuario BotFather para crear un bot.
Devolverá una serie de parámetros e instrucciones disponibles para la creación y manipulación de bots:
Utilizar la opción /newbot para crear un nuevo bot.
Preguntará el nombre, para este caso Pandora_FMS_Test_bot , se puede utilizar el nombre que se prefiera.
Ahora pedirá un id de usuario para el bot, este tiene que terminar en _bot. En este caso se utiliza el mismo anterior: Pandora_FMS_Test_bot.
Ahora devolverá la información de nuestro bot y algunas instrucciones para su administración, se debe copiar y guardar 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 se debe 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 se puede simplemente añadir el bot a un grupo existente.
Obtener la id del grupo para enviar mensajes desde el CLI
Ahora se necesita obtener la id del grupo en el que hemos añadido nuestro bot, hay diferentes formas de hacerlo. Una de las más sencillas es añadir otro bot que extrae esa información muy fácilmente GetIDs Bot.
Lo añadimos al grupo que queremos conocer el id y dará una serie de instrucciones para su uso. Solamente con añadirlo ya proporciona la información que necesitamos (id del grupo).
Una vez tengamos la id del grupo lo copiamos y guardamos.
Podemos eliminar este GetIDs Bot del grupo porque ya ha cumplido el objetivo de darnos el id.
Configurar Pandora-Telegram CLI
Para usar el Pandora Telegram CLI (source code) se debe tener instalado Python versión 3 y Pip versión 3 para las dependencias. Para instalar las dependencias, en el paquete a descargar verá el fichero requirements.txt, nos posicionamos en su directorio y ejecutamos:
pip3 install -r requirements.txt
Esto descargará e instalará las dependencias necesarias.
Una vez instaladas las dependencias ejecutamos el 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 error alguno pues ya estamos listos para usarlo.
Parámetros generales del plugin
# [Optional parameter]
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
El plugin Telegram® viene plenamente integrado en Pandora FMS versión 800.
El script por defecto está ubicado en: /usr/share/pandora_server/util/pandora-telegram-cli.py. No obstante se puede usar cualquier ubicación siempre que el PFMS Server tenga acceso a esta.
Se debe asegurar de que se tienen todas las dependencias instaladas, para comprobarlo se ejecuta:
python3 pandora-telegram-cli.py
Se obtendrá una respuesta similar a esta:
En caso de tener algún error se deberán reinstalar las dependencias:
pip3 install -r requirements.txt
Comando de alerta Telegram
Teniendo el plugin en el servidor y funcionando correctamente, ahora tenemos que configurarlo en la Consola web de Pandora FMS. Una vez accedemos como usuario administrador (o con permisos de gestión de alertas) se verifica la instalación del comando de alerta Telegram en el menú Management → Alerts→Commands. En Filter introduzca la clave de búsqueda:
Este comando carece de acciones de edición y borrado por lo que se considera de solamente lectura, utilizado por el sistema. Por ello deberá ir a la configuración general para grabar el token obtenido en el tema anterior.
Menú Managements → Settings → System settings → General setup → Alerts configuration:
El campo muestra en texto plano el token, tómese las precauciones del caso antes visualizaciones por terceros del mismo.
Al finalizar pulse el botón Update para guardar el token de Telegram en la base de datos.
Acción de alerta Telegram
Vaya al menú Management→ Alerts→ Actions y en Filter elija Pandora Telegram en el campo Command. Serán mostradas las acciones de alerta que utilizan el comando Pandora Telegram:
Bien puede:
- Utilizar la acción que viene por defecto al instalar Pandora FMS.
- Copiar la acción anterior y personalizar según necesidades. Puede darse el caso de que varios grupos de agentes utilicen distintas acciones de alerta configuradas según cada caso.
- Crear una acción basada en el comando de alerta (de solo lectura) Telegram.
Para cualquiera de los tres casos siempre se deberá configurar el Chat ID, obtenido según se indica en tema anterior.
Sea edición, copia y edición o creación, el proceso de configuración es similar:
- En nombre y grupo indique y elija según el caso.
- Asegúrese que en la lista Command esté seleccionado Pandora Telegram.
- En Chat ID introduzca el identificador correspondiente. Este campo no acepta macros, solamente introduzca dicho identificador.
- En el campo Message para Triggering, si está vacío, inserte
[PANDORA] Alert FIRED on _agent_ / _module_ / _timestamp_ / _data_. Consulte las demás macros disponibles para insertar más información. - En el campo Message para Recovery, si está vacío, inserte
[PANDORA] Alert RECOVERED on _agent_ / _module_ / _timestamp_ / _data_. Consulte las demás macros disponibles para insertar más información. - Presione el botón Create si es está creando una acción de alerta o( Update si se está editando) para guardar los parámetros.
Haga clic en Create. Una vez haya creado esta acción de alerta, esta puede ser incluida en una política, una plantilla o Módulo.
Si se requiere información adicional visite la documentación del plugin.