Azure Backups
Este documento describe la funcionalidad Azure Microsoft Compute del discovery de PandoraFMS.
- Introducción
- Matriz de compatibilidad
- Prerrequisitos
- Parámetros
- Ejecucion manual
- Discovery
- Agentes y módulos generados por el plugin
Introducción
Este plugin tiene como objetivo monitorizar el estado de las copias de seguridad en Microsoft Azure, permitiendo comprobar de forma continua si los recursos protegidos están realizando sus backups correctamente. Gracias a esta monitorización es posible detectar fallos en las copias de seguridad, conocer el estado de protección de los recursos y verificar cuándo se realizó el último backup, lo que ayuda a garantizar la disponibilidad de los datos y la capacidad de recuperación ante incidencias.
El plugin se conecta al entorno de Azure para obtener información de los servicios de backup configurados en la suscripción. Con estos datos genera diferentes métricas relacionadas con el estado de las copias de seguridad, como el tiempo transcurrido desde el último backup, el número de puntos de recuperación disponibles o el estado general de la protección.
Posteriormente, esta información se envía a Pandora FMS, donde se crean los agentes y módulos necesarios para visualizar y supervisar el estado de los backups desde la consola de monitorización. De esta forma, el cliente puede tener una visión clara y centralizada del estado de sus copias de seguridad en Azure y actuar rápidamente ante cualquier problema.
Matriz de compatibilidad
| Sistemas donde se ha probado | Rocky linux |
| Sistemas donde funciona | Cualquier sistema linux |
Prerrequisitos
- Conectividad a la API de Azure
El plugin es un binario que contiene las dependencias empaquetadas por lo que no es necesaria la instalación de ningún tipo de dependencia para su uso.
- Credenciales
SUBSCRIPTION_ID
Ve a tu subscripción, podras encontrar el subscription ID, en el menu de arriba.
TENANT_ID
Para obtener el ID de inquilino. Vaya al Portal Azure y busque «Entra Id». En la página Overview overview.se muestra el ID del Directorio (tenant). Copie este ID. Ese es su tenant_id
.
CLIENT_ID AND SECRET
Para el ID de cliente y el secreto, tendrá que crearlos como un registro de aplicación.
Para crear un nuevo registro de aplicación, deberá seguir los pasos que se indican a continuación:
https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application
Allí obtendrá el ID de la aplicación (ID de cliente) y creará también el secreto del cliente. A continuación, puede copiar los valores y utilizar.
- Permisos
Para hacer las solicitudes a través de la api, la cuenta utilizada para autenticar en la ejecución requiere de unos determinados permisos.
Asignación de permisos
Debe asignar un rol a la cuenta con la que vaya a operar la app, para ello acceda a Home y entre en Suscription:
Dentro de la suscripción, seleccione Access control (IAM):
Se agregará una nueva asignación de rol en la debe seleccionar Reader para la app creada:
La app creada se puede buscar en miembros (servicio principal)
Guarde los cambios pulsando Save .
A partir de ese momento podrá conectar con el servicio y hacer solicitudes a través de este plugin.
Parámetros
Parámetros
| --conf | Ruta al archivo de configuración |
agents_group_name = < Nombre del grupo de destino para los agentes creados >
agent_name = < Nombre del agente que contentendrá los módulos (solo si agent_per_mv no esta activado) >
interval = < Intervalo de creación del agente >
agent_prefix = < Prefijo para los agentes creados >
module_prefix = < Prefijo para los módulos creados >
transfer_mode = < Modo de transferencia, tentacle o local >
tentacle_ip = < IP de la máquina destino para los agentes creados >
tentacle_port = < Puerto de tentacle, por defecto : 41121 >
tentacle_opts = < Opciones adicionales de tentacle client >
use_proxy = < Marcar esta opcion para poder especificar una url de proxy >
proxy_url = < Url proxy >
ssl_check = < Marcar para habilitar el chequeo ssl >
agent_per_vm = < Habilitar para crear un agente por maquina virtual >
debug_mode = < Habilitar para activar el modo debug >
allow_regexp = < Patron de regexp. Las métricas que coincidan con el patron se monitorizaran >
deny_regexp = < Patron de regexp. Las métricas que coincidan con el patron se descartaran >
creds_b64 = < Credenciales en base64 del archivo JSON para autenticar >
Ejemplo
agents_group_name = azure
agent_name = Azure backups
interval = 3600
threads = 1
temporal = 0
data_dir = "/var/spool/pandora/data_in/"
agent_prefix =
module_prefix =
transfer_mode = "tentacle"
tentacle_client = "tentacle_client"
tentacle_ip = "192.168.50.61"
tentacle_port = 41121
tentacle_opts =
use_proxy = 0
proxy_url =
ssl_check = 0
agent_per_vm = 0
debug_mode = 1
allow_regexp =
deny_regexp =
creds_b64 = oiZJDNNJKCDJndkdKDNJDKDKNDhjdkdmdNHFJFKfFMFNFJFKk5IinDJFJKFKfmnfDHHDKDKDldjjDfmFJFNFFMNFNFMFNFmFNFFJJFmf==
Ejecucion manual
El formato de la ejecución del plugin es el siguiente:
./pandora_azure_backup --conf < ruta al fichero de configuración >
Por ejemplo:
./pandora_azure_backup --conf /usr/share/pandora_server/util/plugin/azure.conf
La ejecución devolverá una salida en formato JSON con información sobre la ejecución, y generará un fichero XML para cada agente monitorizado que enviará al servidor de Pandora FMS por el método de transferencia indicado en la configuración.
Por ejemplo:
{"summary": {"Total agents": 3}
Discovery
Este plugin puede integrarse con el Discovery de Pandora FMS.
Para ello se debe cargar el paquete ".disco" que puede descargar desde la librería de Pandora FMS:
https://pandorafms.com/library/
Una vez cargado, se podrán monitorizar entornos de Azure Microsoft Compute creando tareas de Discovery desde la sección Management > Discovery > Cloud.
Para cada tarea se solicitarán los siguientes datos mínimos:
- Azure credentials: Credenciales de conexión al API de Microsoft Azure a usar por la tarea. Se deben registrar previamente en el almacén de credenciales de Pandora FMS.
- Use proxy: Habilitar para poder especificar una direccion proxy
- Proxy url: Url del proxy
- Verify proxy SSL: Habilitar chequeo ssl
- Tentacle IP: IP del servidor de Tentacle al que enviar los datos de los agentes. Normalmente este parámetro no se modificará.
- Tentacle port: Puerto del servidor de Tentacle al que enviar los datos. Normalmente este parámetro no se modificará.
- Tentacle extra options: Opciones adicionales para el envio de datos mediante el cliente de Tentacle. Normalmente este parámetro no se modificará.
Finalmente se podrá ajustar la monitorización que se desee:
- Agent name: Nombre del agente que contentendrá los módulos (solo si Agent per item no esta activado)
- Use prefix for modules: Para poder especificar un prefijo para los módulos creados
- Prefix for modules created: Prefijo para los módulos creados
- Use prefix for agents: Para poder especificar un prefijo para los agentes creados
- Prefix for agents created: Prefijo para los agentes creados
- Regexp to filter modules: Habilitar para poder especificar un patron de regexp
- Allow regexp: Patron de regexp. Los backups de items que coincidan con el patron se monitorizaran
- Regexp to discard modules:Habilitar para poder especificar un patron de regexp
- Deny regexp: Patron de regexp. Los backups de items que coincidan con el patron se descartaran
- Agent per item: Habilitar para crear un agente por cada item que contendrá los backups de este
- Debug mode: Habilitar para obtener más información en la salida de la ejecución de la tarea
Las tareas que se completen exitosamente dispondrán de un sumario de ejecución con la siguiente información:
- Total agents: Número total de agentes generados por la tarea.
Las tareas que no se completen exitosamente dispondrán de un sumario de ejecución registrando los errores producidos.
Agentes y módulos generados por el plugin
La ejecución del plugin, creara un unico agente o uno por cada item si esta habilitado el token agent_per_vm. Creara los siguientes módulos:
| <item_name> Last backup | Indica el tiempo transcurrido desde la última copia de seguridad realizada para ese recurso. Esta métrica permite detectar rápidamente si un backup lleva demasiado tiempo sin ejecutarse. |
| <item_name> Recovery points | Muestra el número total de puntos de recuperación disponibles para el recurso. La descripción del módulo también indica cuántos backups se han completado correctamente y cuántos han fallado. |
| <item_name> Protection state | Indica el estado de la protección del recurso dentro del sistema de backups de Azure. Permite saber si el recurso está correctamente protegido o si la protección está detenida, pausada o presenta algún error. |
| <item_name> Last backup status | Estado del último backup realizado. Permite conocer si la última ejecución fue correcta o si presentó algún problema. |
| <item_name> Health status | Estado general de salud del recurso dentro del sistema de backup, indicando si Azure detecta alguna acción recomendada o requerida. |
| <item_name> Protection status | Indica si la protección del recurso se encuentra en estado saludable o si existe algún problema que pueda afectar a la correcta realización de las copias de seguridad. |
Los módulos "Protection state", "Last backup status", "Health status", y "Protection status" crean un módulo de valor númerico, agenciado a un estado, siendo estas las equivalencias :
Protection State
| Protected | 1 |
| IRPending | 2 |
| Invalid | 3 |
| BackupsSuspended | 4 |
| ProtectionPaused | 5 |
| ProtectionStopped | 6 |
| ProtectionError | 7 |
Last backup status
| Healthy | 1 |
| IRPending | 2 |
| Invalid | 3 |
| Unhealthy | 4 |
Health status
| Passed | 1 |
| ActionSuggested | 2 |
| ActionRequired | 3 |
| Invalid | 4 |
Protection status
| Healthy | 1 |
| Unhealthy | 2 |
item name es el nombre del recurso que tiene configurada la copia de seguridad en Azure. Es decir, identifica al elemento protegido dentro del sistema de backups, como puede ser una máquina virtual, una base de datos o un recurso de almacenamiento.