Sap hana Discovery
Este documento describe la funcionalidad Sap Hana del discovery de PandoraFMS.
Introducción
El plugin de SAP HANA para Pandora FMS descubre las bases de datos HANA configuradas y recopila métricas de estado y rendimiento para crear los módulos de monitorización correspondientes. Entre otros indicadores, obtiene información de conectividad y disponibilidad, consumo de memoria, CPU, E/S de volúmenes, conexiones, transacciones y servicios.
Prerrequisitos
- Conectividad a SAP Hana desde Pandora
El plugin es un binario que contiene las dependias empaquetadas por lo que no es necesaria la instalación de ningún tipo de dependencia para su uso.
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 SAP HANA creando tareas de Discovery desde la sección Management > Discovery > Aplications.
Para cada tarea se solicitarán los siguientes parámetros mínimos:
- SAP HANA target string: Dirección IP del host con SAP HANA, puerto, instancia de la base de datos.
- Credenciales: Usuario y contraseña de tipo Custom, para ello necesitaremos crear en el apartado Management > Configuration > Credential store una nueva credencial.
También se podrá ajustar la configuración de la tarea para personalizar la monitorización deseada:
- Max threads: Número máximo de hilos concurrentes que se utilizarán para ejecutar las consultas de monitorización.
- Target agent: Permite indicar manualmente el nombre de los agentes en los que se crearán los módulos. Se debe introducir un nombre de agente por cada SAP HANA target string, respetando el mismo orden. Si se deja vacío, el plugin creará los agentes automáticamente con el formato HOST - DATABASE.
- Regexp to filter modules: Habilita el filtrado de módulos mediante expresiones regulares.
- Allow regexp: Si se activa el filtro, solo se crearán los módulos cuyo nombre coincida con esta expresión regular.
- Regexp to discard modules: Habilita el descarte de módulos mediante expresiones regulares.
- Deny regexp: Si se activa el descarte, no se crearán los módulos cuyo nombre coincida con esta expresión regular.
- Backups Size: Crea el módulo backups_estimated_size_bytes, con el tamaño estimado de los backups de SAP HANA.
- Timestamp: Crea el módulo timestamp, con la fecha/hora actual de la base de datos para verificar desfases temporales.
- Hana Version: Crea el módulo version, con la versión instalada de SAP HANA.
- Data Disk Information: Crea los módulos volumes_count y volumes_io_entries, con información básica sobre volúmenes y actividad de E/S.
- Hana Service Statistics: Crea módulos por cada servicio SAP HANA detectado, incluyendo ACTIVE_STATUS, PROCESS_CPU_TIME, TOTAL_CPU_TIME, PROCESS_MEMORY, TOTAL_MEMORY, AVAILABLE_MEMORY, ACTIVE_REQUEST_COUNT, PENDING_REQUEST_COUNT, ACTIVE_THREAD_COUNT, THREAD_COUNT, OPEN_FILE_COUNT, REQUESTS_PER_SEC, RESPONSE_TIME, START_TIME y SYS_TIMESTAMP.
- Hana CPU Time: Crea los módulos cpu_total_time_ms, cpu_process_time_ms y cpu_service_count, con métricas agregadas del uso de CPU en los servicios SAP HANA.
- Hana RS Fragmentation: Crea el módulo rowstore_fragmentation_pct, con el porcentaje estimado de fragmentación del Row Store.
- Hana License: Crea los módulos license_expiration_date, license_days_remaining, license_memory_limit, license_hardware_key, license_installation_number, license_product_name, license_system_id, license_swproductname y license_enforced, con información de licencia del entorno SAP HANA.
- Hana IO Stats: Crea los módulos io_total_read_bytes, io_total_write_bytes e io_total_time_ms, con métricas agregadas de lectura, escritura y tiempos de E/S.
- Hana Get Stated Connections: Crea los módulos connections_total, connections_running, connections_idle, connections_queued, connections_disconnected y connections_unknown, con el estado de las conexiones activas.
- Hana Memory: Crea los módulos memory_used_bytes y memory_allocation_limit_bytes, con métricas de uso y límite de memoria.
- Hana Transactions: Crea los módulos blocked_transactions, blocked_transactions_distinct_users y open_transactions, con información sobre transacciones abiertas y bloqueadas.
- Execute custom queries: Habilita la ejecución de consultas personalizadas definidas en el campo Custom queries.
- Custom queries: Permite crear varios módulos personalizados usando bloques check_begin/check_end.
- Custom module prefix: Define un prefijo que se concatenará al nombre de los módulos generados.
- Custom modules (legacy): Permite declarar módulos personalizados con el formato heredado module:query:type:description.
Ejemplos de custom queries:
check_begin
name connections_total
description Conexiones totales (SYS.M_CONNECTIONS)
operation value
target SELECT COUNT(*) FROM SYS.M_CONNECTIONS
datatype generic_data
unit conns
check_end
check_begin
name connections_active
description Conexiones activas RUNNING (SYS.M_CONNECTIONS)
operation value
target SELECT COUNT(*) FROM SYS.M_CONNECTIONS WHERE CONNECTION_STATUS = 'RUNNING'
datatype generic_data
unit conns
check_end
check_begin
name memory_used_bytes
description Memoria usada total (INSTANCE_TOTAL_MEMORY_USED_SIZE)
operation value
target SELECT COALESCE(SUM(INSTANCE_TOTAL_MEMORY_USED_SIZE),0) FROM SYS.M_HOST_RESOURCE_UTILIZATION
datatype generic_data
unit bytes
check_end
check_begin
name memory_allocation_limit_bytes
description Limite de asignacion de memoria (ALLOCATION_LIMIT)
operation value
target SELECT COALESCE(SUM(ALLOCATION_LIMIT),0) FROM SYS.M_HOST_RESOURCE_UTILIZATION
datatype generic_data
unit bytes
check_end
check_begin
name cpu_total_time_ms
description CPU total time agregado (TOTAL_CPU_TIME)
operation value
target SELECT COALESCE(SUM(TOTAL_CPU_TIME),0) FROM SYS.M_SERVICE_STATISTICS
datatype generic_data
unit ms
check_end
check_begin
name cpu_process_time_ms
description CPU process time agregado (PROCESS_CPU_TIME)
operation value
target SELECT COALESCE(SUM(PROCESS_CPU_TIME),0) FROM SYS.M_SERVICE_STATISTICS
datatype generic_data
unit ms
check_end
check_begin
name service_total_memory_bytes
description Memoria total agregada por servicios (TOTAL_MEMORY)
operation value
target SELECT COALESCE(SUM(TOTAL_MEMORY),0) FROM SYS.M_SERVICE_STATISTICS
datatype generic_data
unit bytes
check_end
check_begin
name service_available_memory_bytes
description Memoria disponible agregada (AVAILABLE_MEMORY)
operation value
target SELECT COALESCE(SUM(AVAILABLE_MEMORY),0) FROM SYS.M_SERVICE_STATISTICS
datatype generic_data
unit bytes
check_end
check_begin
name io_total_read_bytes
description IO total leido acumulado (TOTAL_READ_SIZE)
operation value
target SELECT COALESCE(SUM(TOTAL_READ_SIZE),0) FROM SYS.M_VOLUME_IO_TOTAL_STATISTICS
datatype generic_data
unit bytes
check_end
check_begin
name io_total_write_bytes
description IO total escrito acumulado (TOTAL_WRITE_SIZE)
operation value
target SELECT COALESCE(SUM(TOTAL_WRITE_SIZE),0) FROM SYS.M_VOLUME_IO_TOTAL_STATISTICS
datatype generic_data
unit bytes
check_end
check_begin
name io_total_time_ms
description Tiempo total de IO acumulado (TOTAL_IO_TIME)
operation value
target SELECT COALESCE(SUM(TOTAL_IO_TIME),0) FROM SYS.M_VOLUME_IO_TOTAL_STATISTICS
datatype generic_data
unit ms
check_end
check_begin
name rowstore_free_pct
description Rowstore porcentaje libre (FREE_SIZE/ALLOCATED_SIZE)
operation value
target SELECT CASE WHEN SUM(ALLOCATED_SIZE)=0 THEN 0 ELSE ROUND(SUM(FREE_SIZE)*100.0/SUM(ALLOCATED_SIZE),2) END FROM SYS.M_RS_MEMORY
datatype generic_data
unit %
min_warning 40
min_critical 20
inverse_warning 1
inverse_critical 1
check_end
check_begin
name hana_time_utc
description Timestamp UTC de la BD
operation value
target SELECT TO_VARCHAR(CURRENT_UTCTIMESTAMP) FROM DUMMY
datatype generic_data_string
check_end
check_begin
name hana_services_running
description Numero de servicios activos (ACTIVE_STATUS='YES')
operation value
target SELECT COUNT(*) FROM SYS.M_SERVICE_STATISTICS WHERE ACTIVE_STATUS = 'YES'
datatype generic_data
unit services
check_end
Ejemplos de legacy queries:
legacy_memory_used:SELECT COALESCE(SUM(INSTANCE_TOTAL_MEMORY_USED_SIZE),0) FROM SYS.M_HOST_RESOURCE_UTILIZATION:generic_data:Legacy memory usage
legacy_hana_version:SELECT VERSION FROM SYS.M_DATABASE:generic_data_string:Legacy HANA version
Agentes y módulos generados por el plugin
Un ejemplo de Agentes creados con el plugin sería este:
Los módulos del host sap hana serán estos:
Enable Backups Size
| Módulo | Descripción |
| backups_estimated_size_bytes | Tamaño estimado de los backups de la base de datos SAP HANA. |
Enable Timestamp
| Módulo | Descripción |
| timestamp | Fecha y hora actual de la base de datos para validar sincronización temporal. |
Enable Hana Version
| Módulo | Descripción |
| version | Versión instalada de SAP HANA. |
Enable Data Disk Information
| Módulo | Descripción |
| volumes_count | Número total de volúmenes de datos detectados en SAP HANA. |
| volumes_io_entries | Número de entradas de actividad de E/S detectadas. |
Enable Hana Service Statistics
| Módulo | Descripción |
| ACTIVE_STATUS | Estado activo actual del servicio. |
| PROCESS_CPU_TIME | Tiempo de CPU consumido por el proceso del servicio. |
| TOTAL_CPU_TIME | Tiempo total de CPU consumido por el servicio. |
| PROCESS_MEMORY | Memoria utilizada actualmente por el proceso del servicio. |
| TOTAL_MEMORY | Memoria total asignada al servicio. |
| AVAILABLE_MEMORY | Memoria disponible reportada por el servicio. |
| ACTIVE_REQUEST_COUNT | Número de peticiones activas actualmente. |
| PENDING_REQUEST_COUNT | Número de peticiones pendientes del servicio. |
| ACTIVE_THREAD_COUNT | Número de hilos activos del servicio. |
| THREAD_COUNT | Número total de hilos del servicio. |
| OPEN_FILE_COUNT | Número de archivos abiertos utilizados por el servicio. |
| REQUESTS_PER_SEC | Peticiones procesadas por segundo. |
| RESPONSE_TIME | Tiempo medio de respuesta del servicio. |
| START_TIME | Fecha y hora de inicio del servicio. |
| SYS_TIMESTAMP | Marca temporal actual reportada por el servicio. |
Enable Hana CPU Time
| Módulo | Descripción |
| cpu_total_time_ms | Tiempo total de CPU agregado entre los servicios SAP HANA. |
| cpu_process_time_ms | Tiempo de CPU de proceso agregado entre los servicios SAP HANA. |
| cpu_service_count | Número de servicios incluidos en las estadísticas de CPU. |
Enable Hana RS Fragmentation
| Módulo | Descripción |
| rowstore_fragmentation_pct | Porcentaje estimado de fragmentación del Row Store. |
Enable Hana License
| Módulo | Descripción |
| license_expiration_date | Fecha de expiración de la licencia. |
| license_days_remaining | Días restantes hasta la expiración de la licencia. |
| license_memory_limit | Límite de memoria configurado para la licencia. |
| license_hardware_key | Clave de hardware asociada a la licencia. |
| license_installation_number | Identificador de instalación de la licencia. |
| license_product_name | Nombre del producto SAP HANA licenciado. |
| license_system_id | Identificador del sistema SAP HANA. |
| license_swproductname | Nombre del producto software licenciado. |
| license_enforced | Indica si la aplicación de licencia está habilitada. |
Enable Hana IO Stats
| Módulo | Descripción |
| io_total_read_bytes | Total de bytes leídos desde disco. |
| io_total_write_bytes | Total de bytes escritos en disco. |
| io_total_time_ms | Tiempo total acumulado de operaciones de E/S en disco. |
Enable Hana Get Stated Connections
| Módulo | Descripción |
| connections_total | Número total de conexiones a la base de datos. |
| connections_running | Número de conexiones activas en ejecución. |
| connections_idle | Número de conexiones inactivas. |
| connections_queued | Número de conexiones en cola. |
| connections_disconnected | Número de sesiones desconectadas. |
| connections_unknown | Conexiones con estado desconocido. |
Enable Hana Memory
| Módulo | Descripción |
| memory_used_bytes | Memoria total actualmente utilizada por SAP HANA. |
| memory_allocation_limit_bytes | Límite de asignación de memoria configurado en SAP HANA. |
Enable Hana Transactions
| Módulo | Descripción |
| blocked_transactions | Número total de transacciones bloqueadas. |
| blocked_transactions_distinct_users | Número de usuarios distintos con transacciones bloqueadas. |
| open_transactions | Número total de transacciones abiertas actualmente. |
Execute Custom Queries
| Módulo | Descripción |
| Módulos personalizados definidos por el usuario | Módulos generados dinámicamente a partir de las consultas personalizadas configuradas. |