UiPath Documentation
test-cloud
latest
false
Guia do administrador do Test Cloud
Importante :
A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Exportação de logs

Observação:

A disponibilidade de funcionalidades depende da plataforma de nuvem que você usa. Para obter detalhes, consulte a página Disponibilidade de recursos.

A nova experiência de Auditoria (Logs unificados) permite exportar logs em formato CSV usando um dos seguintes métodos:

  • Opção Exportar na interface do usuário: na seção Logs de auditoria de sua organização ou tenant, selecione Exportar.
  • APIs de logs de auditoria: use as APIs de logs de auditoria.
  • Script personalizado da UiPath: execute um script desenvolvido pela UiPath para exportar logs do armazenamento de logs de auditoria de longo prazo da UiPath.

Exportando logs usando script

Se você estiver usando a nova experiência de auditoria, poderá usar um script dedicado para exportar logs de auditoria para qualquer período. Essa exportação de script está disponível em todos os planos de licenciamento, com uma retenção de até cinco anos para planos Enterprise e dois anos para todos os outros planos.

Este script é útil quando:

  • Acessando o conjunto completo de logs de auditoria para conformidade e investigação, além do limite de 100.000 logs da exportação de interface gráfica.
  • Automação do arquivamento de log periódico.

Pré-requisitos

  • Um ambiente Linux ou WSL (Windows Subsystem for Linux) com as ferramentas dos2unix, unzip e jq instaladas. Para instalá-los, execute:
    sudo apt install dos2unix unzip jq
    sudo apt install dos2unix unzip jq
    
  • A confidential external application in your organization with the PM.Audit.Read (application) scope assigned. For the full registration procedure, see Adding an external application.
  • As credenciais do aplicativo externo:
    • ID do aplicativo (client_id)
    • Segredo do aplicativo (client_secret)

Etapas

  1. Salve o script a seguir em um arquivo .sh :
    appId=$1
    appSecret=$2
    organizationNameOrId=$3
    fromDate=$4
    toDate=$5
    mode=${6:-s}
    cloud=${7:-cloud}
    
    if [[ $# -lt 5 ]]; then
      echo "Error: Not all required input parameters provided."
      echo "Usage: $0 <appId> <appSecret> <organizationNameOrId> <fromDate> <toDate> <mode>(optional: v for verbose, s for silent)"
      exit 1
    fi
    
    # Validate "fromDate" date format (MM/DD/YYYY)
    if ! date -d "$fromDate" &>/dev/null; then
      echo "Error: Invalid date format for 'fromDate'. Please use MM/DD/YYYY format."
      exit 1
    fi
    
    # Validate "to" date format (MM/DD/YYYY)
    if ! date -d "$toDate" &>/dev/null; then
      echo "Error: Invalid date format for 'toDate'. Please use MM/DD/YYYY format."
      exit 1
    fi
    
    echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Start Getting UiPath Token."
    response=$(curl --data-urlencode -X POST "https://${cloud}.uipath.com/${organizationNameOrId}/identity_/connect/token" -$mode \
                -d "grant_type=client_credentials" \
                -d "scope=PM.Audit.Read" \
                -d "client_id=$appId" \
                -d "client_secret=$appSecret" \
                -H "Content-Type: application/x-www-form-urlencoded")
    
    access_token=$(echo "$response" | jq -r '.access_token')
    
    if [[ "$access_token" == null ]]; then
      echo "Error: Access token is null or empty in the response. Please verify the appId and appSecret."
      exit 1
    fi
    
    base_dir=$(date +"%Y-%m-%d%H:%M:%S.%3N")
    echo $base_dir "Start Downloading UiPath Platform Audit logs."
    # Define the base URL
    base_url="https://${cloud}.uipath.com/${organizationNameOrId}/orgaudit_/api/query/downloadeventsfromlongtermstore"
    
    mkdir -p $base_dir
    # Iterate through time intervals
    current_date=$(date -u -d "$fromDate" +"%Y-%m-%dT%H:%M:%SZ")
    seconds_in_a_day=$((24*60*60))
    while [ "$(date -d "$current_date" +%s)" -le "$(date -d "$toDate" +%s)" ]; do
      next_date=$(date -u -d "$current_date + $(($seconds_in_a_day-1)) seconds" +"%Y-%m-%dT%H:%M:%SZ")
    
      # Construct the full URL with the current time interval
      formatted_current_date=$(date -u -d "$current_date" +"%Y-%m-%dT%H:%M:%SZ" | sed 's/\//%2F/g')
      formatted_current_date="${current_date}"
      formatted_next_date=$next_date | sed 's/\//%2F/g'
      formatted_next_date="${next_date}"
      full_url="$base_url?from=$formatted_current_date&to=$formatted_next_date"
    
      echo $full_url
    
      echo "Downloading UiPath Audit Log from $current_date to $next_date"
      curl -X GET "$full_url" -$mode \
           -H "Authorization: Bearer $access_token" \
           -o "${base_dir}/${current_date////-}_to_${next_date////-}.zip"  # Save the response to a file
    
      # Move to the next time interval
      current_date=$next_date
      one=1
      current_date=$(date -u -d "$current_date + $one seconds" +"%Y-%m-%dT%H:%M:%SZ")
    done
    
    for zip_file in "$base_dir"/*.zip; do
      zip_file_name="$(basename "$zip_file")"
      unzip -q "$zip_file" -d "$base_dir/auditlogs/"
      echo "Extracted ${zip_file_name%.*}"
      rm "$zip_file"
    done
    
    shopt -s nullglob
    for zip_file in "$base_dir/auditlogs"/*.zip; do
      zip_file_name="$(basename "$zip_file")"
      unzip -q "$zip_file" -d "$base_dir/auditlogs/${zip_file_name%.*}"
      for data_file in "$base_dir/auditlogs"/${zip_file_name%.*}/*.txt; do
        data_file_name="$(basename "$data_file")"
        mv "$data_file" "$base_dir/auditlogs/${data_file_name%.*}_${zip_file_name%.*}.txt"
        rm -r "$base_dir/auditlogs/${zip_file_name%.*}"
      done
      rm "$zip_file"
    done
    shopt -u nullglob
    
    echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Downloaded UiPath Platform Audit logs and saved them according to UTC date"
    appId=$1
    appSecret=$2
    organizationNameOrId=$3
    fromDate=$4
    toDate=$5
    mode=${6:-s}
    cloud=${7:-cloud}
    
    if [[ $# -lt 5 ]]; then
      echo "Error: Not all required input parameters provided."
      echo "Usage: $0 <appId> <appSecret> <organizationNameOrId> <fromDate> <toDate> <mode>(optional: v for verbose, s for silent)"
      exit 1
    fi
    
    # Validate "fromDate" date format (MM/DD/YYYY)
    if ! date -d "$fromDate" &>/dev/null; then
      echo "Error: Invalid date format for 'fromDate'. Please use MM/DD/YYYY format."
      exit 1
    fi
    
    # Validate "to" date format (MM/DD/YYYY)
    if ! date -d "$toDate" &>/dev/null; then
      echo "Error: Invalid date format for 'toDate'. Please use MM/DD/YYYY format."
      exit 1
    fi
    
    echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Start Getting UiPath Token."
    response=$(curl --data-urlencode -X POST "https://${cloud}.uipath.com/${organizationNameOrId}/identity_/connect/token" -$mode \
                -d "grant_type=client_credentials" \
                -d "scope=PM.Audit.Read" \
                -d "client_id=$appId" \
                -d "client_secret=$appSecret" \
                -H "Content-Type: application/x-www-form-urlencoded")
    
    access_token=$(echo "$response" | jq -r '.access_token')
    
    if [[ "$access_token" == null ]]; then
      echo "Error: Access token is null or empty in the response. Please verify the appId and appSecret."
      exit 1
    fi
    
    base_dir=$(date +"%Y-%m-%d%H:%M:%S.%3N")
    echo $base_dir "Start Downloading UiPath Platform Audit logs."
    # Define the base URL
    base_url="https://${cloud}.uipath.com/${organizationNameOrId}/orgaudit_/api/query/downloadeventsfromlongtermstore"
    
    mkdir -p $base_dir
    # Iterate through time intervals
    current_date=$(date -u -d "$fromDate" +"%Y-%m-%dT%H:%M:%SZ")
    seconds_in_a_day=$((24*60*60))
    while [ "$(date -d "$current_date" +%s)" -le "$(date -d "$toDate" +%s)" ]; do
      next_date=$(date -u -d "$current_date + $(($seconds_in_a_day-1)) seconds" +"%Y-%m-%dT%H:%M:%SZ")
    
      # Construct the full URL with the current time interval
      formatted_current_date=$(date -u -d "$current_date" +"%Y-%m-%dT%H:%M:%SZ" | sed 's/\//%2F/g')
      formatted_current_date="${current_date}"
      formatted_next_date=$next_date | sed 's/\//%2F/g'
      formatted_next_date="${next_date}"
      full_url="$base_url?from=$formatted_current_date&to=$formatted_next_date"
    
      echo $full_url
    
      echo "Downloading UiPath Audit Log from $current_date to $next_date"
      curl -X GET "$full_url" -$mode \
           -H "Authorization: Bearer $access_token" \
           -o "${base_dir}/${current_date////-}_to_${next_date////-}.zip"  # Save the response to a file
    
      # Move to the next time interval
      current_date=$next_date
      one=1
      current_date=$(date -u -d "$current_date + $one seconds" +"%Y-%m-%dT%H:%M:%SZ")
    done
    
    for zip_file in "$base_dir"/*.zip; do
      zip_file_name="$(basename "$zip_file")"
      unzip -q "$zip_file" -d "$base_dir/auditlogs/"
      echo "Extracted ${zip_file_name%.*}"
      rm "$zip_file"
    done
    
    shopt -s nullglob
    for zip_file in "$base_dir/auditlogs"/*.zip; do
      zip_file_name="$(basename "$zip_file")"
      unzip -q "$zip_file" -d "$base_dir/auditlogs/${zip_file_name%.*}"
      for data_file in "$base_dir/auditlogs"/${zip_file_name%.*}/*.txt; do
        data_file_name="$(basename "$data_file")"
        mv "$data_file" "$base_dir/auditlogs/${data_file_name%.*}_${zip_file_name%.*}.txt"
        rm -r "$base_dir/auditlogs/${zip_file_name%.*}"
      done
      rm "$zip_file"
    done
    shopt -u nullglob
    
    echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Downloaded UiPath Platform Audit logs and saved them according to UTC date"
    
  2. Converta os fins da linha:
    dos2unix <script-name>.sh
    dos2unix <script-name>.sh
    
  3. Torne o script executável:
    chmod +x <script-name>.sh
    chmod +x <script-name>.sh
    
  4. Defina as variáveis necessárias no seu terminal:
    client_id='<your-client-id>'
    client_secret='<your-client-secret>'
    org_name='<your-org-name>'
    start_date='MM/DD/YYYY'
    end_date='MM/DD/YYYY'
    client_id='<your-client-id>'
    client_secret='<your-client-secret>'
    org_name='<your-org-name>'
    start_date='MM/DD/YYYY'
    end_date='MM/DD/YYYY'
    
  5. Execute o script usando o seguinte comando: ./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date. Por exemplo:
    client_id='<clientId>'
    client_secret='<clientsecret>'
    org_name='test_org'
    start_date='09/01/2025'
    end_date='10/01/2025'
    ./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date v
    client_id='<clientId>'
    client_secret='<clientsecret>'
    org_name='test_org'
    start_date='09/01/2025'
    end_date='10/01/2025'
    ./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date v
    

Resultado

O script cria um diretório com registro de data/hora em seu local atual e baixa os logs de auditoria para cada dia no intervalo solicitado como arquivos .zip . Em seguida, ele extrai o conteúdo para a subpasta <timestamp>/auditlogs/ como arquivos .txt , cada um nomeado após o intervalo de datas UTC que abrange.

Configuração da Exportação de Logs de Robôs

Observação:

A disponibilidade de funcionalidades depende da plataforma de nuvem que você usa. Para obter detalhes, consulte a página Disponibilidade de recursos.

Para exportar logs de Robôs gerados em seus serviços do Orchestrator para o Azure, AWS S3 e o Armazenamento do Google Cloud, siga os procedimentos específicos descritos mais abaixo. Os logs são salvos em um arquivo .csv no contêiner uipathrobotlogs . A exportação é feita por tenant o que facilita o seguinte:

  • Armazenamento de logs que devem ser mantidos para fins de conformidade e auditoria.
  • Analisando e visualizando a saída de logs em sua própria ferramenta de relatórios ou BI.
    Observação:

    Ao configurar a página de exportação de logs, não suportamos o preenchimento de 30 dias de logs.

  1. Faça login na sua conta da UiPath.

  2. Acesse Admin e selecione o tenant no painel à esquerda.

  3. Select Services.

  4. No cartão do Orchestrator, selecione o ícone Mais e selecione Configuração de exportação de logs.

    O painel Configuração será aberto à direita da janela

  5. Habilite a alternância Enviar logs de robôs para o armazenamento personalizado.

  6. Dependendo da sua plataforma de nuvem, continue com as seguintes etapas:

    • Test Cloud:
      1. No menu suspenso Tipo de armazenamento, selecione o provedor de armazenamento para o qual deseja exportar os logs. As seguintes opções estão disponíveis:
        • Azure
        • AWS S3
        • Google Cloud Storage
        Observação:

        A funcionalidade de exportação de log não suporta AWS KMS.

      2. Após executar as etapas específicas do provedor, o .csv será gerado. Baixe o arquivo .csv de exemplo
      3. Os logs serão entregues de hora em hora. Esse intervalo de tempo não é configurável.
    • Test Cloud Public Sector e Test Cloud Dedicated:
      • Continue usando o procedimento descrito na seção Azure .

Azure

Dica:

Você pode configurar IPs estáticos para a lista de permissões e não abrir sua rede para todos os IPs externos. Vá para Configurações > Rede > Acesso público > Firewall > Intervalo de endereços no Azure Blob Storage para adicionar os IPs estáticos. Verifique a página Configurando o firewall para a lista completa de IPs.

As seguintes opções de armazenamento são suportadas:

  • Armazenamento padrão localmente redundante (LRS)
  • Armazenamento com redundância geográfica padrão (GRS)
  • Armazenamento padrão com redundância geográfica com acesso de leitura (RA-GRS)
  • Armazenamento padrão com redundância de zona (ZRS)
  • LRS Premium

Para obter mais informações sobre tipos de armazenamento, consulte a página Visão geral da conta de armazenamento na documentação oficial do Azure.

  1. No menu suspenso Tipo de Armazenamento, selecione Conta de Armazenamento do Azure.

  2. No campo Azure Blob Connection String, digite a string de conexão do blob conforme recuperado do Azure Portal.

  3. No campo Nome do contêiner, digite o nome do contêiner usado para armazenar o .csv no Azure. Por padrão, é uipathrobotlogs. Se um nome de contêiner personalizado for fornecido e ainda não existir, o contêiner será criado para você.

  4. Selecione Salvar. Uma notificação é exibida avisando que você que configurou a exportação dos logs de robô com sucesso.

  5. Na sua Conta de Armazenamento de Blobs no Azure Portal:

    • Selecione Rede sob Configurações no painel esquerdo.
    • Selecione Permitir acesso de > Todas as redes.
    • Selecione Salvar para guardar as alterações.
  6. Dentro de uma hora, um arquivo de log .csv é gerado no armazenamento de blobs. O .csv é gerado no contêiner uipathrobotlogs, sob a seguinte hierarquia de pastas [tenant_key]/[year]/[month]/[day]/[hour]/output. É recomendável mapear um tenant para um contêiner, pois a chave do tenant é a única maneira de distinguir entre os tenants se vários forem encaminhados para um contêiner.

AWS S3

Dica:

Você pode configurar IPs estáticos para a lista de permissões e não abrir sua rede para todos os IPs externos. Use políticas de acesso no AWS S3 para adicionar negar todas as solicitações, a menos que seja da lista aws:SourceIp conforme descrito na página Políticas de bucket para o Amazon S3 do guia do usuário do AWS S3. Verifique a página Configurando o firewall do guia do administrador do Automation Cloud para a lista completa de IPs.

  1. No menu suspenso Tipo de armazenamento, selecione o AWS S3.

  2. No campo Bucket Name, digite o nome do bucket conforme configurado na AWS.

    Observação:

    O mesmo nome do bucket não pode ser compartilhado por várias organizações.

  3. No campo Nome da Região, digite o nome das regiões para onde os logs serão exportados. Por exemplo: us-west-1

  4. Certifique-se de conceder ao usuário do IAM fornecido por meio do comando s3:PutObjecet e s3:DeleteObject acesso ao seu bucket.

Google Cloud Storage

  1. No menu suspenso Tipo de armazenamento, selecione Armazenamento do Google Cloud.

  2. No campo Bucket Name, digite o nome do bucket conforme configurado na Plataforma do Google Cloud.

    Observação:

    O mesmo nome do bucket não pode ser compartilhado por várias organizações.

  3. Conceda o acesso adequado à conta de serviço da UiPath®, conforme especificado no seguinte comando:

    1. Na plataforma do Google Cloud, navegue para Armazenamento > Navegador.
    2. Encontre o bucket para o qual você deseja editar permissões.
    3. Selecione a elipse vertical e selecione Editar permissões do bucket.
    4. Selecione Adicionar membros e insira a conta de serviço que você usa para acessar o bucket.
    5. No menu suspenso Selecionar uma função , selecione Administrador de Objetos de Armazenamento. Para obter mais informações, consulte Gerenciamento de Identidades e Acessos na documentação do GCP.

Exclusão de configurações de exportação de logs

  1. Expanda o tenant para o qual deseja excluir as configurações de exportação de logs.
  2. Para o serviço do Orchestrator nesse tenant, selecione Configuração de Exportação de Logs. O painel direito da Configuração é exibido.
  3. Desabilite a alternância Enviar logs de robôs para o armazenamento personalizado.
  4. Na janela Excluir configuração , selecione Excluir para confirmar. A configuração é excluída com sucesso.

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades