Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Modificar los motores UDA, UDF y de flujo de trabajo

Visión general

Al crear reglas, Paragon Insights (anteriormente HealthBot) incluye la capacidad de ejecutar acciones definidas por el usuario (UDA) como parte de un desencadenador. Las UDA son esencialmente scripts de Python que se pueden ejecutar mediante una regla de Paragon Insights. Por ejemplo, puede configurar una regla con un desencadenador que reaccione a alguna interfaz crítica que deja de funcionar y responda al evento llamando a una función para enviar una alerta por SMS. Puede escribir la lógica para enviar el SMS en un script python UDA.

A partir de Paragon Insights versión 4.1.0, puede programar UDA y notificaciones. Esto resulta útil cuando se despliegan varias instancias paralelas de Paragon Insights en diferentes ubicaciones. Puede programar UDA para que se ejecuten alternativamente desde programadores UDA ubicados en diferentes regiones. En caso de que se produzca un error en un nodo, el programador de UDA que se ejecuta en una instancia paralela seguirá ejecutando las UDA y las notificaciones. Para obtener más información, consulte Habilitar el Programador UDA en una acción desencadenante.

Paragon Insights también incluye la capacidad de ejecutar funciones definidas por el usuario (UDF). Creadas como scripts de Python, las UDF proporcionan la capacidad de procesar datos de telemetría entrantes desde un dispositivo y almacenar el valor procesado en la base de datos de series temporales para ese dispositivo o grupo de dispositivos. Por ejemplo, el dispositivo puede estar enviando temperatura FPC en grados Celsius, pero desea procesarla para almacenarla como valores Fahrenheit en la base de datos.

A partir de HealthBot versión 3.2.0, el procesamiento de los campos UDF/UDA se ha movido a microservicios denominados granja UDF. Este enfoque permite a Paragon Insights procesar varios puntos de datos de varios dispositivos y campos al mismo tiempo (procesamiento paralelo). El resultado es un aumento de 4 a 5 veces en el rendimiento de procesamiento para UDA/UDF.

Aunque las UDA y las UDF proporcionan excelentes capacidades adicionales a Paragon Insights, puede haber casos en los que los scripts importen módulos de Python que no están incluidos en la instalación predeterminada de Paragon Insights. Dado esto, debe poder agregar módulos según sea necesario al motor que ejecuta estos scripts. Paragon Insights versión 2.1.0 y posteriores resuelven este desafío permitiéndole modificar los motores UDA, UDF y Workflow mediante un script bash que contiene las instrucciones para instalar cualquier dependencia.

Variables globales en scripts de Python

TAND ejecuta scripts de Python que usan variables globales. Las variables globales conservan un valor en varias UDF.

La siguiente es una función de ejemplo para calcular la suma acumulada y almacenar el valor en una variable sumglobal.

El uso de variables globales en las FDU puede impedir que aproveche las ganancias en el rendimiento de procesamiento garantizadas por las granjas de UDF.

En lugar de variables globales, puede usar la construcción **kwargs de Python para capturar valores que deben conservarse en diferentes funciones. Cuando Paragon Insights llama a una función (definida en una UDF), envía el nombre del tema, el nombre de la regla, el grupo de dispositivos, la hora puntual y el ID del dispositivo que se capturan mediante la construcción **kwargs. En el caso de las UDA, Paragon Insights envía el nombre del tema y el nombre de la regla mientras se ejecuta el script de Python.

Junto con los valores de infraestructura, Paragon Insights también envía un parámetro llamado hb_store que **kwargs recupera el último valor calculado para una variable.

Para ilustrar cómo funciona hb_store en el ejemplo de suma acumulativa:

Cada vez que se llama a una función con el código anterior, realiza la adición del último valor almacenado en 'suma' con el valor de y el valor de a b. El nuevo valor de la operación de suma se muestra y almacena en 'suma'.

Cómo funciona

Puede modificar el motor UDA, UDF o Workflow mediante la CLI de Paragon Insights, como se muestra a continuación.

Los comandos tienen tres opciones principales:

  • Simular: pruebe un script (y vea su resultado) en el entorno simulado del motor UDA/UDF/Workflow sin afectar al sistema Paragon Insights en ejecución

  • Modificar: modifica el motor UDA/UDF/Workflow real mediante un script

  • Reversión: revertir a la versión original del motor UDA/UDF/Workflow

Notas de uso

  • El script bash se ejecutará en un contenedor que ejecute Ubuntu OS versión 16.04 o 18.04; Escriba el guión en consecuencia.

  • El script debe ser no interactivo; Cualquier pregunta debe ser respondida previamente. Por ejemplo, use la opción '-y' al instalar un paquete usando apt-get.

  • Si prefiere copiar los paquetes de origen de los módulos de dependencia en el servidor de Paragon Insights para que el motor pueda instalarlos manualmente en lugar de descargarlos de Internet, coloque los paquetes de origen necesarios en el directorio /var/local/healthbot/input. Luego, dentro de su script bash, apunte al directorio /input. Por ejemplo, para usar un archivo colocado en /var/local/healthbot/input/myfile.txt, establezca el script bash para acceder a él en /input/myfile.txt.

  • Modificar el motor UDA/UDF/Workflow más de una vez no es un procedimiento incremental; Utilice un nuevo script bash que incluya tanto las instrucciones originales como las nuevas, y vuelva a ejecutar el procedimiento de modificación con el nuevo script.

  • Las modificaciones UDA/UDF/Workflow son persistentes en todas las actualizaciones.

Configuración

Como práctica recomendada, se recomienda usar el siguiente flujo de trabajo:

Este enfoque de prácticas recomendadas garantiza que primero valide el script en el entorno simulado antes de modificar el motor real.

Nota:

Los ejemplos siguientes utilizan el motor UDA; estos procedimientos se aplican por igual a los motores UDF y Workflow.

Nota:

En el procedimiento siguiente se asume que el servidor de Paragon Insights está instalado, incluida la ejecución del sudo healthbot setup comando.

SIMULAR

Utilice la función simular para probar el script bash en el entorno simulado, sin que ello afecte al sistema Paragon Insights en ejecución.

Para simular la modificación del motor UDA:

  1. Escriba el comando healthbot modify-uda-engine -s /<path>/<script-file> --simulate.

  2. El script se ejecuta y la salida se muestra en la pantalla, como si hubiera ingresado los comandos de script usted mismo.

MODIFICAR

Cuando esté satisfecho con los resultados de la simulación, continúe con el procedimiento de modificación real.

Para modificar el motor UDA:

  1. Cargue el script bash deseado en el servidor de Paragon Insights.

  2. Si el servidor de Paragon Insights está completamente en funcionamiento, emita el comando healthbot stop -s alerta para detener los servicios en ejecución.

  3. Ejecute el comando healthbot modify-uda-engine -s /<path>/<script-file>.

  4. (Opcional) Como se indica en el resultado, puede comprobar el archivo de registro para comprobar que el script se cargó correctamente.

  5. Reinicie el servicio de alerta con el comando healthbot start -s alerta.

  6. Una vez completado, verifique que el servicio de alerta esté en funcionamiento utilizando el comando healthbot status.

  7. Para comprobar que el motor UDA se ha actualizado, utilice el comando healthbot version -s alerta y compruebe que el contenedor healthot_alerta está utilizando la <version>-custom etiqueta.

El motor UDA ahora se está ejecutando con las dependencias instaladas según el script bash.

ROLLBACK

Si tiene la necesidad o el deseo de eliminar los cambios en el motor, puede revertir el motor a su estado original.

Para revertir el motor UDA:

  1. Escriba el comando healthbot modify-uda-engine --rollback.

    Tenga en cuenta que no es necesario reiniciar el servicio de alerta en este momento.

  2. Una vez completado, verifique que el servicio de alerta esté en funcionamiento utilizando el comando healthbot status.

  3. Para comprobar que el motor UDA se ha revertido, utilice el comando healthbot version -s alerta y compruebe que el contenedor healthot_alerta está utilizando la <version> etiqueta.

El motor UDA ahora se está ejecutando en su estado original, sin dependencias instaladas adicionales.

Habilitar el Programador UDA en la acción de activación

En Paragon Insights versión 4.1.0, puede programar UDA y notificaciones para que se ejecuten dentro de un intervalo de tiempo establecido. Para programar UDA, primero debe crear un programador discreto y, a continuación, vincular el programador en la página Acción desencadenante.

Nota:

Solo puede vincular un programador de acciones desencadenantes a una instancia de Paragon Insights.

Para obtener más información sobre cómo crear un programador, consulte Generar informes.

El programador establecido en Acción de activación se aplica a todos los grupos de dispositivos y grupos de red. Puede deshabilitar la programación de UDA en la configuración del grupo de dispositivos o del grupo de red. Para obtener más información, consulte Administrar dispositivos, grupos de dispositivos y grupos de red.

Para habilitar un programador:

  1. Vaya a Configuración > sistema.

  2. Haga clic en la ficha Acción desencadenante.

    Aparecerá la página Acción desencadenante.

  3. Seleccione un perfil de programador que desee asociar a Trigger Action.

  4. Realice una de las siguientes acciones:

    • Haga clic en Guardar para guardar el perfil del programador.

      El perfil no se aplica a dispositivos ni a grupos de red. Esta opción le permite confirmar o revertir los cambios de configuración en la plataforma.

    • Haga clic en Save and Deploy (Guardar e implementar) para implementar la configuración en la instancia de Paragon Insights.

      Las UDA y las notificaciones se generan en función del período de tiempo y el intervalo de tiempo configurados en el programador para la instancia de la aplicación.

      No puede revertir los cambios de configuración aplicados a través de Guardar e implementar. Sin embargo. puede quitar el perfil del programador y repetir la opción Guardar e implementar para cancelar la programación de UDA.

Tabla de historial de versiones
Lanzamiento
Descripción
3.2.0
A partir de HealthBot versión 3.2.0, el procesamiento de los campos UDF/UDA se ha movido a microservicios denominados granja UDF.