Åtgärda segmentets lagertillväxt som orsakats av granskningsspår i Groovy Console i AEM 6.5 (Forms och andra lösningar)

Om AEM 6.5 på plats eller i AMS-miljö uppvisar plötsliga disktoppar och en snabbt växande TargetMK-segmentbutik kan ett högfrekvent Groovy Console-jobb skapa stora granskningsspår under /var/groovyconsole/audit. Detta scenario har observerats i en AEM Forms-miljö, men kan inträffa i alla AEM 6.5 TjäraMK-inställningar som använder Groovy Console.
I den här artikeln beskrivs hur du identifierar det felaktiga jobbet, tar bort granskningsnoderna på ett säkert sätt och frigör diskutrymme genom att köra offlinekomprimering på segmentlagret.

Obs! Det här scenariot omfattar anpassade Groovy Console-skript och granskningsspår. Groovy Console är en tredjeparts-/community-verktygslåda och ingår inte i AEM standardprodukt.

Beskrivning description

Miljö

  • Produkt: Adobe Experience Manager (AEM) 6.5 (inklusive AEM Forms)
  • Version: 6.5 Distribution: On-lokalt eller Adobe Managed Services (AMS) Persistence: tarMK med segmentstore
  • Operativsystem: Linux eller Windows

Anteckningar:

  • Det beskrivna problemet har observerats i en AEM Forms-miljö men kan inträffa i alla AEM 6.5-tjärminstallationer som använder Groovy Console.
  • Den här proceduren gäller inte AEM as a Cloud Service eftersom användare inte har åtkomst till segmentlagret på filsystemnivå.

Problem/symtom

I en Adobe Experience Manager (AEM) 6.5 Forms-produktionsmiljö på plats eller Adobe Managed Services (AMS) ökar diskanvändningen plötsligt. Katalogen crx-quickstart/repository/segmentstore växer snabbt över flera dagar och når hundratals gigabyte. Rensning av onlineändringar körs men tar inte bort utrymme. Inga tidigare distributioner eller konfigurationsändringar förklarar tillväxten.

Under analysen observeras följande symtom:

  • crx-quickstart/repository/segmentstore växer snabbt till tiotals eller hundratals gigabyte.
  • Diskanvändningen ökar under korta perioder, ofta under helger eller utanför kontorstid.
  • Rensning av onlineversioner körs men minskar inte segmentlagerstorleken nämnvärt.
  • Det finns inga programdistributioner eller konfigurationsändringar under tillväxtperioden.
  • Under /var/groovyconsole/audit/user/<year> finns många granskningsnoder som skapats av ett schemalagt jobb i Groovy Console som körs varannan minut.

Undersökningen visar att ett anpassat Groovy Console-jobb, som schemalagts att köras var fåtal minut, skriver stora poster för granskningsspår under en användar- och årsanpassad sökväg som /var/groovyconsole/audit/user/<year>. Dessa granskningsnoder orsakar databasbloatt och ökar segmentlagertillväxten.

Upplösning resolution

Steg 1: Identifiera det Groovy-konsoljobb som genererar granskningsspår

  1. Öppna CRXDE Lite på den drabbade AEM Forms-instansen.
  2. Bläddra till den nod som lagrar befintliga Groovy Console-jobb, till exempel under /var/groovyconsole.
  3. Hitta befintliga jobb med ett kortintervallcron-uttryck som 0 0/2 * * * ?, som körs varannan minut.

Anvisningar finns i Använda CRXDE Lite i AEM as a Cloud Service användarhandbok. En vanlig jobbnod innehåller egenskaper som liknar följande:

  • jobTitle = Remove Old File Attachments
  • cronExpression = 0 0/2 * * * ? (körs varannan minut)
  • scheduledJobId = <job-id>
  • script = <groovy-script-body>
  • output = <summary-of-job-output>

Om dessa jobb bara genererar granskningsloggar och inte affärskritiskt innehåll, kan du rensa upp deras granskningsnoder och justera eller ta bort schemat för att förhindra ytterligare snabb tillväxt. Anvisningar om hur du gör detta finns i Underhåll av granskningslogg i AEM 6.

Steg 2: Rensa granskningsnoder för Groovy-konsolen

Om du vill minska databasstorleken tar du bort de ackumulerade granskningsnoderna under /var/groovyconsole/audit/user/<year>. Använd ett Groovy Console-skript på begäran i stället för ett nytt schemalagt jobb för att undvika ytterligare tillväxt.

Viktigt! Använd Groovy Console med försiktighet i produktionssystem. Testa alltid skript i en lägre miljö först, verifiera målsökvägen och kör dem under lämpliga procedurer för ändringshantering. Anvisningar om hur du gör detta finns i Granskningsloggsunderhåll i AEM 6 i användarhandboken för AEM 6.5.

I det här scenariot kommer tillväxten från noder i Groovy Console-granskningsspår på en användar- och årsanpassad väg, till exempel:

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

Den här sökvägen innehåller endast granskningsdata för Groovy Console-jobb och kan tas bort utan problem. Justera årssegmentet i sökvägen så att det passar din miljö.

Exempel: Groovy Console-skript:

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
}

Kör skriptet en gång i produktionen under ett användarkonto som har behörighet att ta bort noder under /var/groovyconsole/audit/user/<year>. I många miljöer är detta en administrativ användare eller en tjänstanvändare, men de exakta behörigheterna beror på den interna säkerhetsmodellen.

När skriptet har slutförts kontrollerar du i CRXDE Lite att granskningsnoderna har tagits bort och att Groovy Console-jobbet inte längre körs eller körs med ett mindre aggressivt schema och minimalt med loggning.

Steg 3: Schemalägg driftstopp och säkerhetskopiering för offlinekomprimering

  1. Planera en underhållsperiod utanför kontorstid.
  2. Visa en underhållssida eller använd befintliga rutiner för att blockera användaråtkomst vid behov.
  3. Skapa en fullständig säkerhetskopia av instansen (inklusive AEM installationskatalog och datalager) innan du fortsätter. Offline-komprimering ändrar databasen på disken och kan inte enkelt ångras. Anvisningar finns i Säkerhetskopior i Övervaka och underhålla din Adobe Experience Manager-instans.
  4. Stoppa AEM Forms-instansen rent.

Steg 4: Kör offlinerevisionskomprimering på segmentbutiken

Anvisningar om hur du gör detta finns i Revision Cleanup i användarhandboken för AEM 6.5. Använd en oak-run-version som är kompatibel med din servicepaketnivå i AEM 6.5. Se till att det finns minst två gånger så mycket segmentlagringsutrymme tillgängligt som ledigt diskutrymme. Kör följande kommando från AEM installationskatalog på den server där instansen finns:

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

Övervaka processen tills den har slutförts. Avbryt inte komprimeringen. Om du gör det kan databasen skadas.

Steg 5: Starta om AEM och validera

  1. Starta AEM Forms-instansen när komprimeringen är klar.
  2. Ta bort eventuella underhållssidor eller belastningsutjämningsregler som används under driftstoppet.
  3. Kontrollera att alla Forms-funktioner fungerar som förväntat (redigering, inlämning, bearbetning, integrering).
  4. Kontrollera storleken på crx-quickstart/repository/segmentstore och diskanvändningen för att bekräfta att storleken har minskat till förväntade nivåer.

Förebyggande och bästa metoder

  • Undvik högfrekventa Groovy Console-jobb i produktionen. Använd schemalagda jobb sparsamt och endast när det behövs.
  • Håll granskningsloggningen för Groovy Console och andra verktyg på lämplig nivå och rensa granskningsdata regelbundet.
  • Övervaka storleken på segmentstore och diskanvändningen. Konfigurera aviseringar när användningsmetoder definierar tröskelvärden.
  • Kör rensning av onlineversioner enligt Adobe rekommendationer och utför periodisk offlinekomprimering efter behov, särskilt efter stora rensningar.
  • Använd inbyggda underhållsuppgifter och API:er som stöds där det är möjligt i stället för anpassade skript som genererar stora volymer granskningsdata.

Anteckningar

  • Ta inte bort filer från crx-quickstart/repository/segmentstore manuellt. Borttagning av direkt fil kan skada databasen och leda till dataförlust.
  • Om rensning av onlineversioner inte minskar segmentlagrets storlek och segmentbutikens fortsatta tillväxt kan du granska nyligen gjorda anpassade jobb, skript och gruppåtgärder för att identifiera källan till skrivaktiviteten.
  • Om du är osäker på databasens hälsa ska du först använda Oak-verktygen för konsekvens och check i en klon av miljön och sedan endast använda samma steg i produktionen.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f