Resolver o crescimento do armazenamento de segmentos causado pelas trilhas de auditoria do console Groovy no AEM 6.5 (Forms e outras soluções)

Se o ambiente do AEM 6.5 no local ou do AMS mostrar picos repentinos de disco e um armazenamento de segmentos TarMK em rápido crescimento, um trabalho do Groovy Console de alta frequência poderá criar grandes nós de trilha de auditoria em /var/groovyconsole/audit. Esse cenário foi observado em um ambiente AEM Forms, mas pode ocorrer em qualquer configuração TarMK do AEM 6.5 usando o Groovy Console.
Este artigo explica como identificar o trabalho incorreto, remover com segurança seus nós de auditoria e recuperar espaço em disco executando a compactação offline no armazenamento de segmentos.

Observação: este cenário envolve scripts de Console do Groovy personalizados e trilhas de auditoria. O Groovy Console é uma ferramenta de terceiros/da comunidade e não faz parte do produto AEM padrão.

Descrição description

Ambiente

  • Produto: Adobe Experience Manager (AEM) 6.5 (incluindo AEM Forms)
  • Versão: 6.5 Implantação: persistência no local ou Adobe Managed Services (AMS): TarMK com segmentstore
  • Sistema operacional: Linux ou Windows

Notas:

  • O problema descrito foi observado em um ambiente AEM Forms, mas pode ocorrer em qualquer configuração do TarMK do AEM 6.5 usando o Groovy Console.
  • Esse procedimento não se aplica ao AEM as a Cloud Service, pois os usuários não têm acesso em nível de sistema de arquivos à segmentstore.

Problema/Sintomas

Em um ambiente de produção Adobe Experience Manager (AEM) 6.5 Forms no local ou Adobe Managed Services (AMS), há um aumento súbito e rápido no uso do disco. O diretório crx-quickstart/repository/segmentstore cresce rapidamente ao longo de vários dias e atinge centenas de gigabytes. A limpeza de revisão online é executada, mas falha ao recuperar espaço. Nenhuma implantação ou alteração recente na configuração explica o crescimento.

Durante a análise, observam-se os seguintes sintomas:

  • crx-quickstart/repository/segmentstore cresce rapidamente para dezenas ou centenas de gigabytes.
  • Picos no uso de disco em períodos curtos, geralmente durante fins de semana ou fora do horário comercial.
  • A limpeza de revisão online é executada, mas não reduz significativamente o tamanho do armazenamento de segmentos.
  • Não há implantações de aplicativos ou alterações de configuração durante o período de crescimento.
  • Existem vários nós de auditoria abaixo de /var/groovyconsole/audit/user/<year>, criados por um trabalho agendado do Console do Groovy que é executado a cada dois minutos.

A investigação mostra que um trabalho personalizado do Groovy Console, agendado para execução a cada poucos minutos, grava grandes entradas de trilha de auditoria em um caminho específico de usuário e ano, como /var/groovyconsole/audit/user/<year>. Esses nós de auditoria causam sobrecarga do repositório e impulsionam o crescimento do armazenamento de segmentos.

Resolução resolution

Etapa 1: identificar o trabalho do Console do Groovy que gera trilhas de auditoria

  1. Abra o CRXDE Lite na instância afetada do AEM Forms.
  2. Navegue até o nó que armazena trabalhos do Groovy Console existentes, por exemplo, em /var/groovyconsole.
  3. Localize trabalhos existentes com uma expressão cron de intervalo curto, como 0 0/2 * * * ?, que é executada a cada dois minutos.

Para ver as etapas, consulte Uso do CRXDE Lite no Guia do Usuário do AEM as a Cloud Service. Um nó de trabalho típico contém propriedades semelhantes às seguintes:

  • jobTitle = Remove Old File Attachments
  • cronExpression = 0 0/2 * * * ? (executa a cada 2 minutos)
  • scheduledJobId = <job-id>
  • script = <groovy-script-body>
  • output = <summary-of-job-output>

Se essas tarefas gerarem apenas logs de auditoria e não conteúdo essencial aos negócios, você poderá limpar com segurança seus nós de auditoria e ajustar ou remover a programação para evitar um crescimento ainda mais rápido. Para obter etapas, consulte Manutenção do Log de Auditoria no AEM 6.

Etapa 2: Limpar nós de auditoria do Console Groovy

Para reduzir o tamanho do repositório, remova os nós de auditoria acumulados em /var/groovyconsole/audit/user/<year>. Use um script sob demanda do Groovy Console em vez de um novo trabalho agendado para evitar mais crescimento.

Importante: use o Console do Groovy com cuidado nos sistemas de produção. Sempre teste os scripts em um ambiente mais baixo primeiro, verifique o caminho de destino e execute-os nos procedimentos apropriados de gerenciamento de alterações. Para obter etapas, consulte Manutenção do Log de Auditoria no AEM 6 no Guia do Usuário do AEM 6.5.

Neste cenário, o crescimento vem dos nós de trilha de auditoria do console do Groovy em um caminho específico de usuário e ano, por exemplo:

/var/groovyconsole/audit/user/<year>

Este caminho contém apenas dados de auditoria para os trabalhos do Console Groovy e pode ser removido com segurança. Ajuste o segmento de ano no caminho para corresponder ao seu ambiente.

Exemplo de script do console Groovy:

import javax.jcr.Session

// Adjust this path to the correct audit root for your environment.
// Example: "/var/groovyconsole/audit/user/<year>"
def path = "/var/groovyconsole/audit/user/<year>"

Session s = session  // Groovy Console injects a live JCR session

if (s.nodeExists(path)) {
    s.getNode(path).remove()
    s.save()
    println "Removed audit nodes under " + path
} else {
    println "No audit nodes to remove at " + path
}

Execute o script uma vez em produção em uma conta de usuário que tenha permissões suficientes para remover nós em /var/groovyconsole/audit/user/<year>. Em muitos ambientes, esse é um usuário administrativo ou de serviço, mas as permissões exatas dependem do modelo de segurança interno.

Depois que o script for concluído, verifique no CRXDE Lite se os nós de auditoria foram removidos e confirme se o trabalho do Groovy Console não é mais executado ou executado com uma programação menos agressiva e registro mínimo.

Etapa 3: agendar tempo de inatividade e backup para compactação offline

  1. Planeje uma janela de manutenção fora do horário comercial.
  2. Exiba uma página de manutenção ou use os procedimentos operacionais existentes para bloquear o acesso do usuário, se necessário.
  3. Crie um backup completo da instância (incluindo o diretório de instalação e o armazenamento de dados do AEM) antes de continuar. A compactação offline altera o repositório no disco e não é facilmente reversível. Para ver as etapas, consulte Backups em Monitoramento e manutenção da instância do Adobe Experience Manager.
  4. Pare a instância do AEM Forms corretamente.

Etapa 4: executar a compactação de revisão offline no segmentstore

Para ver as etapas, consulte Limpeza de revisão no Guia do usuário do AEM 6.5. Use uma versão do oak-run compatível com seu nível de service pack do AEM 6.5. Verifique se pelo menos o dobro do tamanho atual do armazenamento de segmentos está disponível como espaço livre em disco. Execute o seguinte comando do diretório de instalação do AEM no servidor que hospeda a instância:

java -Xmx16g -jar oak-run-1.22.21.jar compact ./crx-quickstart/repository/segmentstore

Monitore o processo até que ele seja concluído com sucesso. Não interrompa a compactação. Isso pode corromper o repositório.

Etapa 5: reiniciar o AEM e validar

  1. Inicie a instância do AEM Forms após a conclusão da compactação.
  2. Remova todas as páginas de manutenção ou regras de balanceador de carga usadas durante o tempo de inatividade.
  3. Verifique se toda a funcionalidade do Forms funciona conforme o esperado (criação, envio, processamento, integrações).
  4. Verifique o tamanho de crx-quickstart/repository/segmentstore e o uso do disco para confirmar se o tamanho diminuiu para os níveis esperados.

Prevenção e práticas recomendadas

  • Evite trabalhos de alta frequência do Groovy Console na produção. Use tarefas agendadas com moderação e somente quando necessário.
  • Mantenha o registro de auditoria do console do Groovy e de outras ferramentas em um nível apropriado e limpe os dados de auditoria regularmente.
  • Monitore o tamanho de segmentstore e o uso do disco. Configurar alertas quando o uso se aproximar dos valores limite definidos.
  • Execute a limpeza de revisão online de acordo com as recomendações do Adobe e execute a compactação offline periódica conforme necessário, especialmente após grandes limpezas.
  • Sempre que possível, use tarefas de manutenção integradas e APIs compatíveis, em vez de scripts personalizados que geram grandes volumes de dados de auditoria.

Notas

  • Não excluir arquivos manualmente de crx-quickstart/repository/segmentstore. A exclusão direta de arquivos pode corromper o repositório e levar à perda de dados.
  • Se a limpeza de revisão online não reduzir o tamanho do armazenamento de segmentos e o armazenamento de segmentos continuar a crescer, revise trabalhos personalizados recentes, scripts e operações em massa para identificar a origem da atividade de gravação.
  • Em caso de dúvida sobre a integridade do repositório, use primeiro a consistência documentada do Oak e as ferramentas do check em um clone do ambiente e só depois aplique as mesmas etapas à produção.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f