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/segmentstorecresce 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
- Abra o CRXDE Lite na instância afetada do AEM Forms.
- Navegue até o nó que armazena trabalhos do Groovy Console existentes, por exemplo, em
/var/groovyconsole. - 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 AttachmentscronExpression = 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
- Planeje uma janela de manutenção fora do horário comercial.
- Exiba uma página de manutenção ou use os procedimentos operacionais existentes para bloquear o acesso do usuário, se necessário.
- 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.
- 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
- Inicie a instância do AEM Forms após a conclusão da compactação.
- Remova todas as páginas de manutenção ou regras de balanceador de carga usadas durante o tempo de inatividade.
- Verifique se toda a funcionalidade do Forms funciona conforme o esperado (criação, envio, processamento, integrações).
- Verifique o tamanho de
crx-quickstart/repository/segmentstoree 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
segmentstoree 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
checkem um clone do ambiente e só depois aplique as mesmas etapas à produção.