UiPath Documentation
automation-suite
2.2510
true
Guía de instalación de Automation Suite en EKS/AKS
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Configurar NLog

Configura el registro de NLog para Orchestrator en Automation Suite en EKS/AKS.

Agregar extensiones NLog​

Orchestrator carga las siguientes extensiones de forma predeterminada, por lo que no es necesario incluirlas en la carpeta o en la configuración de NLog:

  • NLog.Targets.ElasticSearch
  • UiPath.Orchestrator.Logs.Elasticsearch
  • Microsoft.ApplicationInsights.NLogTarget
  • NLog.Extensions.AzureEventHub

Solo se pueden usar extensiones compatibles con Linux en esta configuración, así que asegúrate de que la extensión NLog elegida cumple esta regla.

Para que la extensión esté disponible para su uso, debe cargarse en el almacenamiento del clúster. La herramienta de línea de comandos uipathctl puede hacerlo a través del comando uipathctl config orchestrator upload :

uipathctl config orchestrator upload --nlog-extensions-directory /path/to/extensions/directory
uipathctl config orchestrator upload --nlog-extensions-directory /path/to/extensions/directory

Si utilizas una configuración de almacenamiento externo en el nivel del clúster, debes indicarlo incluyendo el parámetro --is-external-storage.

Configuración avanzada de NLog​

Crear la configuración avanzada de NLog​

  1. Cree el archivo nlog.config.json que contiene las secciones las extensiones, los objetivos y las reglas estándar.

    La sección de extensiones es una matriz de elementos que especifica los ensamblados de extensión, a través de assemblyFile, y la ruta del ensamblado.

    Si se cargaron complementos NLog personalizados (como se describe en la sección Añadir extensiones NLog ), se hará referencia a ellos en la sección extensions .

  2. Configura el destino y la regla en el archivo nlog.config.json.

  3. Aplica el archivo nlog.config.json utilizando la herramienta de línea de comandos uipathctl :

    uipathctl config orchestrator update-config --nlog-config nlog.config.json
    uipathctl config orchestrator update-config --nlog-config nlog.config.json
    
    Importante:

    Esta acción sobrescribe la configuración de NLog personalizada existente. Puedes comprobar cuál es la configuración existente utilizando este comando:

    uipathctl config orchestrator get-config --nlog-config
    uipathctl config orchestrator get-config --nlog-config
    

    Archivo nlog.config.json de ejemplo que escribe registros en Azure Blob:

    {   "NLog": {
            "extensions": [
                { "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" }
            ],
            "targets": {
                "azureBlob": {
                    "type": "AzureBlobStorage",
                    "connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net",
                    "container": "orchestratorlogs",
                    "blobName": "${date:format=yyyy-MM-dd hh.mm}",
                    "layout": {
                      "type": "JsonLayout",
                      "includeAllProperties": true,
                      "Attributes": [
                        {"name": "ts","layout": "${longdate}"},
                        {"name": "level","layout": "${level:upperCase=true}"},
                        {"name": "logger","layout": "${logger}"},
                        {"name": "message","layout": "${message}"},
                        {"name": "exception","layout": "${onexception:${ui-pretty-exception}}"}
                      ]
                    }
                }
            },
            "rules": { "70_Final": { "writeTo": "stdout,azureBlob" } }
        }
    }
    {   "NLog": {
            "extensions": [
                { "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" }
            ],
            "targets": {
                "azureBlob": {
                    "type": "AzureBlobStorage",
                    "connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net",
                    "container": "orchestratorlogs",
                    "blobName": "${date:format=yyyy-MM-dd hh.mm}",
                    "layout": {
                      "type": "JsonLayout",
                      "includeAllProperties": true,
                      "Attributes": [
                        {"name": "ts","layout": "${longdate}"},
                        {"name": "level","layout": "${level:upperCase=true}"},
                        {"name": "logger","layout": "${logger}"},
                        {"name": "message","layout": "${message}"},
                        {"name": "exception","layout": "${onexception:${ui-pretty-exception}}"}
                      ]
                    }
                }
            },
            "rules": { "70_Final": { "writeTo": "stdout,azureBlob" } }
        }
    }
    

    Archivo nlog.config.json de ejemplo que escribe registros de UiPath Robots en Splunk:

    {
        "Nlog": {
            "extensions": [
                { "assemblyFile": "NLog.Targets.Splunk.dll" },
                { "assembly": "UiPath.Orchestrator.Logs.DatabaseBulk.NLogTarget" }
            ],
            "targets": {
                "Splunk": {
                    "type": "AsyncWrapper",
                    "overflowAction": "Discard",
                    "queueLimit": 10000,
                    "batchSize": 200,
                    "timeToSleepBetweenBatches": 1,
                    "target": {
                        "type": "SplunkHttpEventCollector",
                        "serverUrl": "http://splunk.example.com",
                        "token": "splunk-token",
                        "channel": "",
                        "source": "${logger}",
                        "sourceType": "_json",
                        "index": "uipath",
                        "retriesOnError": "0",
                        "batchSizeBytes": "0",
                        "batchSizeCount": "0",
                        "includeEventProperties": "true",
                        "includePositionalParameters": "true",
                        "includeMdlc": "true",
                        "maxConnectionsPerServer": "10",
                        "ignoreSslErrors": "false",
                        "useProxy": "false",
                        "proxyUrl": "",
                        "proxyPassword": ""
                    }
                }
            },
            "rules": {
                "20_Robot_Primary": { "writeTo": "Splunk,database,insightsRobotLogs" }
            }
        }
    }
    {
        "Nlog": {
            "extensions": [
                { "assemblyFile": "NLog.Targets.Splunk.dll" },
                { "assembly": "UiPath.Orchestrator.Logs.DatabaseBulk.NLogTarget" }
            ],
            "targets": {
                "Splunk": {
                    "type": "AsyncWrapper",
                    "overflowAction": "Discard",
                    "queueLimit": 10000,
                    "batchSize": 200,
                    "timeToSleepBetweenBatches": 1,
                    "target": {
                        "type": "SplunkHttpEventCollector",
                        "serverUrl": "http://splunk.example.com",
                        "token": "splunk-token",
                        "channel": "",
                        "source": "${logger}",
                        "sourceType": "_json",
                        "index": "uipath",
                        "retriesOnError": "0",
                        "batchSizeBytes": "0",
                        "batchSizeCount": "0",
                        "includeEventProperties": "true",
                        "includePositionalParameters": "true",
                        "includeMdlc": "true",
                        "maxConnectionsPerServer": "10",
                        "ignoreSslErrors": "false",
                        "useProxy": "false",
                        "proxyUrl": "",
                        "proxyPassword": ""
                    }
                }
            },
            "rules": {
                "20_Robot_Primary": { "writeTo": "Splunk,database,insightsRobotLogs" }
            }
        }
    }
    

Dimensionar el queueLimit​de Slunk

La cola absorbe la acumulación de Splunk durante las ralentizaciones. Ajusta el tamaño a tu rendimiento máximo, no a tu promedio:

queueLimit = peak_logs_per_sec × acceptable_backlog_seconds
queueLimit = peak_logs_per_sec × acceptable_backlog_seconds
ImplementaciónTasa máximaTolerancia a la acumulaciónLímite de cola
Pequeño~10 registros/s60 s600
Medio~35 registros/s300 s10000
Grande~200 registros/s60 s12000

Mejores prácticas para objetivos de Splunk​

  • Usa overflowAction: Discard para objetivos secundarios. Los destinos de registro externos como Splunk suelen ser destinos de análisis u observabilidad, la base de datos de Orchestrator es la fuente de la verdad. Si el destino externo no puede seguir el ritmo, es preferible soltar su copia que bloquear los hilos de la aplicación.
  • Reserve overflowAction: Block para destinos en los que la pérdida no sea aceptable. Block evita la pérdida de eventos, pero no evita el bloqueo. Cuando la cola se llena bajo carga sostenida, vuelve al mismo comportamiento de bloqueo de hilos que BufferingWrapper. Úsalo solo cuando el destino externo sea un requisito de cumplimiento o de auditoría, y dimensiona queueLimit generosamente para que coincida con el rendimiento máximo.
  • Mantén siempre database en la regla writeTo junto con cualquier destino externo. Esto garantiza que ningún registro del robot se pierda de forma permanente, independientemente de la disponibilidad o el rendimiento del destino externo.
  • Lavar antes de apagar. AsyncWrapper mantiene eventos en una cola en memoria. Asegúrate de que los destinos de NLog se vacíen en un apagado ordenado para evitar perder la cola de la cola cuando finaliza el proceso.

Actualizar la configuración avanzada de NLog​

Los comandos uipathctl necesarios para actualizar la configuración de NLog son:

  • uipathctl config orchestrator get-config --nlog-config : exporta la configuración actual en un archivo json de par clave-valor, listo para editar.
  • uipathctl config orchestrator update-config --nlog-config nlog.config.json : actualiza la configuración con tus cambios.
  1. Exporta la configuración de NLog personalizada actual a un archivo json utilizando este comando:

    uipathctl config orchestrator get-config --nlog-config > nlog.config.json
    uipathctl config orchestrator get-config --nlog-config > nlog.config.json
    
  2. Edita el archivo nlog.config.json exportado según sea necesario. Puedes añadir, eliminar o cambiar cualquiera de sus ajustes.

    Nota:

    Debes exportar el archivo de nuevo cada vez que necesites realizar un cambio, ya que la actualización sobrescribe toda la configuración de NLog.

  3. Actualiza la configuración de NLog utilizando este comando:

    uipathctl config orchestrator update-config --nlog-config nlog.config.json
    orchestrator config updated
    uipathctl config orchestrator update-config --nlog-config nlog.config.json
    orchestrator config updated
    

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado