Azure Backups Este documento describe la funcionalidad Azure Microsoft Compute del discovery de PandoraFMS. 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 Archivo de configuración (--conf) 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: 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. 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. 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. Last backup status Estado del último backup realizado. Permite conocer si la última ejecución fue correcta o si presentó algún problema. Health status Estado general de salud del recurso dentro del sistema de backup, indicando si Azure detecta alguna acción recomendada o requerida. 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 .