Das Vorgangs-Dashboard in AEM 6 hilft Systembetreibern, den Systemzustand AEM Systems auf einen Blick zu überwachen. Darüber hinaus stellt es automatisch generierte Diagnoseinformationen zu relevanten Aspekten der AEM bereit und ermöglicht Ihnen, eigenständige Wartungsautomatisierung zu konfigurieren und durchzuführen, um Projektvorgänge und Supportfälle erheblich zu reduzieren. Das Vorgangs-Dashboard kann mit benutzerdefinierten Konsistenzprüfungen und Wartungsaufgaben erweitert werden. Darüber hinaus ist der Zugriff auf die Daten des Vorgangs-Dashboards über externe Überwachungstools über JMX möglich.
Das Vorgangs-Dashboard:
Sie können auf dem AEM-Begrüßungsbildschirm über Tools > Vorgänge auf das Dashboard zugreifen.
Um auf das Vorgangs-Dashboard zugreifen zu können, muss der angemeldete Benutzer Teil der Benutzergruppe "Benutzer"sein. Weitere Informationen finden Sie in der Dokumentation zu Verwaltung von Benutzern, Gruppen und Zugriffsrechten.
Das Health Report System stellt über Sling-Konsistenzprüfungen Informationen zum Zustand einer AEM Instanz bereit. Sie erreichen diesen Vorgang entweder über OSGi-, JMX-, HTTP-Anfragen (über JSON) oder über die Touch-Benutzeroberfläche. Es bietet Messungen und Schwellenwerte für bestimmte konfigurierbare Zähler und bietet manchmal Informationen zur Lösung des Problems.
Es umfasst mehrere Funktionen, die unten beschrieben werden.
Die Konsistenzberichte sind ein System von Karten, die einen guten oder schlechten Gesundheitszustand in einem bestimmten Produktbereich anzeigen. Diese Karten sind Visualisierungen der Sling-Konsistenzprüfungen, die Daten aus JMX und anderen Quellen aggregieren und verarbeitete Informationen erneut als MBeans verfügbar machen. Diese MBeans können auch im JMX-Webkonsoleunter org.apache.sling.healthcheck Domäne.
Sie können auf dem AEM-Willkommensbildschirm über das Menü Tools > Vorgänge > Konsistenzberichte oder über die folgende URL auf die Konsistenzberichte zugreifen:
https://<serveraddress>:port/libs/granite/operations/content/healthreports/healthreportlist.html
Das Kartensystem umfasst drei mögliche Status: OK, WARNUNG und KRITISCH. Diese Statusanzeigen sind das Ergebnis von Regeln und Schwellenwerten. Um diese zu konfigurieren, bewegen Sie den Mauszeiger über die Karte und klicken Sie auf das Zahnradsymbol in der Aktionsleiste:
Es gibt zwei Arten von Konsistenzprüfungen in AEM 6:
Ein Individuelle Konsistenzprüfung ist eine einzelne Konsistenzprüfung, die einer Statuskarte entspricht. Individuelle Konsistenzprüfungen können mit Regeln oder Schwellenwerten konfiguriert werden und können einen oder mehrere Hinweise und Links zur Lösung identifizierter Gesundheitsprobleme bereitstellen. Nehmen wir als Beispiel die Prüfung "Fehler protokollieren": Wenn die Instanzprotokolle FEHLER enthalten, finden Sie diese auf der Detailseite der Konsistenzprüfung. Oben auf der Seite sehen Sie einen Link zum Analyzer "Log Message" im Abschnitt Diagnose-Tools , mit dem Sie diese Fehler detaillierter analysieren und die Logger neu konfigurieren können.
A Composite Health Check ist eine Prüfung, die Informationen aus mehreren individuellen Prüfungen aggregiert.
Verbund-Konsistenzprüfungen werden mithilfe von Filter-Tags. Im Wesentlichen werden alle einzelnen Prüfungen mit demselben Filter-Tag als Verbund-Konsistenzprüfung gruppiert. Eine Verbund-Konsistenzprüfung hat nur dann den Status "OK", wenn alle einzelnen Prüfungen, die sie aggregiert, auch OK-Status aufweisen.
Im Vorgangs-Dashboard können Sie das Ergebnis von individuellen und zusammengesetzten Konsistenzprüfungen visualisieren.
Die Erstellung einer individuellen Konsistenzprüfung umfasst zwei Schritte: Implementierung einer Sling-Konsistenzprüfung und Hinzufügen eines Eintrags für die Konsistenzprüfung in den Konfigurationsknoten des Dashboards.
Um eine Sling-Konsistenzprüfung zu erstellen, erstellen Sie eine OSGi-Komponente, die die Sling HealthCheck-Schnittstelle implementiert. Fügen Sie diese Komponente in einem Bundle hinzu. Die Eigenschaften der Komponente identifizieren die Konsistenzprüfung vollständig. Nachdem die Komponente installiert wurde, wird automatisch ein JMX MBean für die Konsistenzprüfung erstellt. Siehe Dokumentation zur Sling-Konsistenzprüfung für weitere Informationen.
Beispiels einer Sling-Konsistenzprüfungs-Komponente, mit OSGi-Dienstkomponenten-Anmerkungen geschrieben:
@Component(service = HealthCheck.class,
property = {
HealthCheck.NAME + "=Example Check",
HealthCheck.TAGS + "=example",
HealthCheck.TAGS + "=test",
HealthCheck.MBEAN_NAME + "=exampleHealthCheckMBean"
})
public class ExampleHealthCheck implements HealthCheck {
@Override
public Result execute() {
// health check code
}
}
Die MBEAN_NAME
-Eigenschaft definiert den Namen des MBean, das für diese Konsistenzprüfung generiert wird.
Nach der Erstellung einer Konsistenzprüfung muss ein neuer Konfigurationsknoten erstellt werden, damit er über die Oberfläche des Vorgangs-Dashboards zugänglich ist. Für diesen Schritt müssen Sie den JMX-MBean-Namen der Konsistenzprüfung kennen (die Eigenschaft MBEAN_NAME
). Um eine Konfiguration für die Konsistenzprüfung zu erstellen, öffnen Sie CRXDE und fügen Sie einen Knoten (vom Typ nt:unstructured) unter dem folgenden Pfad: /apps/settings/granite/operations/hc
Legen Sie die folgenden Eigenschaften für den neuen Knoten fest:
Name: sling:resourceType
String
granite/operations/components/mbean
Name: resource
String
/system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/exampleHealthCheck
Der o. g. Ressourcenpfad wird wie folgt erstellt: Wenn der MBean-Name der Konsistenzprüfung „test“ ist, fügen Sie am Ende des Pfads /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck
„test“ hinzu.
Der endgültige Pfad lautet also:
/system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/test
Stellen Sie sicher, dass beim Pfad /apps/settings/granite/operations/hc
für die folgenden Eigenschaften „true“ festgelegt ist:
sling:configCollectionInherit
sling:configPropertyInherit
Dieser Prozess weist den Konfigurationsmanager an, die neuen Konfigurationen mit den vorhandenen aus zusammenzuführen /libs
.
Die Rolle einer Verbund-Konsistenzprüfung besteht darin, mehrere individuelle Konsistenzprüfungen mit einer Reihe gemeinsamer Funktionen zu aggregieren. Beispielsweise gruppiert die Security Composite Health Check alle individuellen Konsistenzprüfungen, die sicherheitsbezogene Überprüfungen durchführen. Der erste Schritt zum Erstellen einer zusammengesetzten Prüfung besteht darin, eine OSGi-Konfiguration hinzuzufügen. Damit er im Vorgangs-Dashboard angezeigt wird, muss ein neuer Konfigurationsknoten auf die gleiche Weise hinzugefügt werden wie eine einfache Prüfung.
Wechseln Sie zum Web-Konfigurations-Manager in der OSGi-Konsole. Zugriff https://serveraddress:port/system/console/configMgr
Suchen Sie nach dem Eintrag namens Apache Sling Composite Health Check. Beachten Sie nach der Suche, dass bereits zwei Konfigurationen verfügbar sind: eine für die Systemprüfungen und eine andere für die Sicherheitsprüfungen.
Erstellen Sie eine Konfiguration, indem Sie auf die Schaltfläche "+" rechts in der Konfiguration klicken. Ein neues Fenster wird wie unten gezeigt angezeigt:
Erstellen Sie eine Konfiguration und speichern Sie sie. Ein MBean wird mit der neuen Konfiguration erstellt.
Der Zweck jeder Konfigurationseigenschaft lautet wie folgt:
hc.tags
).Ein neues JMX-MBean wird für jede neue Konfiguration des Apache Sling Composite Health Checks erstellt.**
Schließlich muss der Eintrag der erstellten Verbund-Konsistenzprüfung in den Konfigurationsknoten des Vorgangs-Dashboards hinzugefügt werden. Das Verfahren entspricht dem der individuellen Konsistenzprüfungen: Knoten des Typs nt:unstructured muss unter /apps/settings/granite/operations/hc
. Die Ressourceneigenschaft des Knotens wird durch den Wert von hc.mean.name in der OSGi-Konfiguration.
Wenn Sie beispielsweise eine Konfiguration erstellt haben und die Variable hc.mbean.name Wert zu diskusage, sehen die Konfigurationsknoten wie folgt aus:
Name: Composite Health Check
nt:unstructured
Mit den folgenden Eigenschaften:
Name: sling:resourceType
String
granite/operations/components/mbean
Name: resource
String
/system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/diskusage
Wenn Sie individuelle Konsistenzprüfungen erstellen, die logisch zu einer Composite-Prüfung gehören, die standardmäßig bereits im Dashboard vorhanden ist, werden diese automatisch erfasst und unter der entsprechenden Composite-Prüfung gruppiert. Daher ist es nicht erforderlich, einen Konfigurationsknoten für diese Prüfungen zu erstellen.
Wenn Sie beispielsweise eine individuelle Sicherheits-Konsistenzprüfung erstellen, weisen Sie ihr den security", und es wird installiert. Sie wird automatisch unter der zusammengesetzten Sicherheitsprüfungen im Vorgangs-Dashboard angezeigt.
Name der Konsistenzprüfung | Beschreibung |
Abfrageleistung | Diese Konsistenzprüfung wurde vereinfacht. AEM 6.4, und überprüft nun die kürzlich überarbeitete Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=queriesStatus,type=HealthCheck. |
Länge der Überwachungswarteschlange | Diese Prüfung wird für alle Event-Listener und Hintergrundbeobachter schrittweise durchgeführt. Sie vergleicht die
Die maximale Länge jeder Warteschlange stammt aus separaten Konfigurationen (Oak und AEM) und kann von dieser Konsistenzprüfung nicht konfiguriert werden. Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=ObservationQueueLengthHealthCheck,type=HealthCheck. |
Abfrage-Ausnahmelimits | Diese Prüfung überprüft das MBean
Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=queryTraversalLimitsBundle,type=HealthCheck. |
Synchronisierte Uhren | Diese Prüfung ist nur für Dokumenten-NodeStore-Cluster relevant. Es wird der folgende Status zurückgegeben:
Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=slingDiscoveryOakSynchronizedClocks,type=HealthCheck. |
Asynchrone Indexe | Die Prüfung der asynchronen Indizes:
Die Statusschwellen "Kritisch"und "Warn"sind konfigurierbar. Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=asyncIndexHealthCheck,type=HealthCheck. Hinweis: Diese Konsistenzprüfung ist in AEM 6.4 und als Backport in AEM 6.3.0.1 verfügbar. |
Große Lucene-Indizes | Diese Prüfung nutzt die Daten des MBean
Die Schwellenwerte sind konfigurierbar und das MBean für die Konsistenzprüfung ist org.apache.sling.healthcheck:name=largeIndexHealthCheck,type=HealthCheck. Hinweis: Diese Prüfung ist in AEM 6.4 verfügbar und wurde auf AEM 6.3.2.0 rückportiert. |
Systemwartung | Die Systemwartung ist eine zusammengesetzte Prüfung, die OK zurückgibt, wenn alle Wartungsaufgaben wie konfiguriert ausgeführt werden. Beachten Sie Folgendes:
Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=systemchecks,type=HealthCheck. |
Replikations-Warteschlange | Diese Prüfung durchläuft Replikationsagenten und untersucht deren Warteschlangen. Für das Element am Anfang der Warteschlange prüft die Prüfung, wie oft der Agent die Replikation wiederholt hat. Wenn diese Anzahl größer ist als der Wert des Parameters Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=replicationQueue,type=HealthCheck. |
Sling Jobs |
Diese Prüfung überprüft die Anzahl an Aufträgen, die sich in der Warteschlange des Auftrags-Managers befinden, vergleicht sie mit dem Schwellenwert
maxNumQueueJobs und:
Nur der Parameter Maximale Anzahl an Aufträgen in der Warteschlange kann konfiguriert werden und hat den Standardwert 1000. Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=slingJobs,type=HealthCheck. |
Anfrageleistung | Diese Prüfung untersucht die
Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=requestsStatus,type=HealthCheck. |
Fehlerprotokoll | Diese Prüfung gibt den Warnungsstatus zurück, wenn im Protokoll Fehler auftreten. Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=logErrorHealthCheck,type=HealthCheck. |
Festplattenspeicher | Diese Prüfung untersucht das MBean
Beide Werte sind konfigurierbar. Die Prüfung funktioniert nur auf Instanzen mit einem Segmentspeicher. Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=DiskSpaceHealthCheck,type=HealthCheck. |
Scheduler-Statusprüfung | Diese Prüfung gibt eine Warnung zurück, wenn die Instanz über mehr als 60 Sekunden Quartz-Aufträge verfügt. Der Schwellenwert für die zulässige Dauer ist konfigurierbar. Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=slingCommonsSchedulerHealthCheck,type=HealthCheck. |
Sicherheitsprüfungen | Bei der Sicherheitsprüfung handelt es sich um einen Verbund, der die Ergebnisse mehrerer sicherheitsbezogener Prüfungen zusammenfasst. Diese individuellen Konsistenzprüfungen decken unterschiedliche Aspekte der Sicherheits-Checkliste ab, die auf der Dokumentationsseite zur Sicherheits-Checkliste zu finden ist. Die Prüfung ist als Feuerprobe beim Start der Instanz nützlich. Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=securitychecks,type=HealthCheck |
Aktive Bundles | Aktive Bundles überprüfen den Status aller Bundles und:
Der Parameter "Ignorieren"-Liste kann konfiguriert werden. Das MBean für diese Konsistenzprüfung ist org.apache.sling.healthcheck:name=inactiveBundles,type=HealthCheck. |
Code-Cache-Prüfung | Eine Konsistenzprüfung, die mehrere JVM-Bedingungen überprüft, die auf einen in Java™ 7 vorhandenen CodeCache-Fehler Trigger werden können:
Der Schwellenwert Das MBean für diese Konsistenzprüfung lautet org.apache.sling.healthcheck:name=codeCacheHealthCheck,type=HealthCheck. |
Ressourcen-Suchpfad-Fehler | Prüft, ob unter dem Pfad
Das MBean für diese Konsistenzprüfung lautet org.apache.sling.healthcheck:name=resourceSearchPathErrorHealthCheck,type=HealthCheck. |
Standardmäßig werden bei einer vordefinierten AEM-Instanz alle 60 Sekunden Konsistenzprüfungen ausgeführt.
Sie können den Zeitraum in der OSGi-Konfiguration mit der Konfiguration der Konsistenzprüfung von Anfragen (com.adobe.granite.queries.impl.hc.QueryHealthCheckMetrics) festlegen.
Das Konsistenzprüfungs-Dashboard kann über die Granite JMX MB in Nagios integriert werden. Das nachfolgende Beispiel zeigt, wie Sie eine Prüfung hinzufügen, die verwendeten Speicher auf dem Server anzeigt, auf dem AEM ausgeführt wird.
Richten Sie Nagios auf dem Überwachungsserver ein und installieren Sie es.
Installieren Sie anschließend den Nagios Remote Plugin Executor (NRPE).
Weitere Informationen zur Installation von Nagios und NRPE auf Ihrem System finden Sie im Nagios-Dokumentation.
Fügen Sie eine Hostdefinition für den AEM-Server hinzu. Sie können diese Aufgabe über die Nagios XI-Webschnittstelle mithilfe von Configuration Manager durchführen:
Nachfolgend finden Sie ein Beispiel einer Host-Konfigurationsdatei unter Verwendung von Nagios Core:
define host {
address 192.168.0.5
max_check_attempts 3
check_period 24x7
check-command check-host-alive
contacts admin
notification_interval 60
notification_period 24x7
}
Installieren Sie Nagios und NRPE auf dem AEM-Server.
Installieren Sie die check_http_json -Plug-in auf beiden Servern.
Definieren Sie einen generischen JSON-Prüfbefehl auf beiden Servern:
define command{
command_name check_http_json-int
command_line /usr/lib/nagios/plugins/check_http_json --user "$ARG1$" --pass "$ARG2$" -u 'https://$HOSTNAME$:$ARG3$/$ARG4$' -e '$ARG5$' -w '$ARG6$' -c '$ARG7$'
}
Fügen Sie einen Dienst für verwendeten Speicher auf dem AEM-Server hinzu:
define service {
use generic-service
host_name my.remote.host
service_description AEM Author Used Memory
check_command check_http_json-int!<cq-user>!<cq-password>!<cq-port>!system/sling/monitoring/mbeans/java/lang/Memory.infinity.json!{noname}.mbean:attributes.HeapMemoryUsage.mbean:attributes.used.mbean:value!<warn-threshold-in-bytes>!<critical-threshold-in-bytes>
}
Überprüfen Sie, ob das Nagios-Dashboard den neu erstellten Dienst anzeigt:
Das Vorgangs-Dashboard bietet außerdem Zugriff auf Diagnose-Tools, die Ihnen helfen, die Grundursachen der Warnungen aus dem Konsistenzprüfungs-Dashboard zu finden und zu beheben, und wichtige Debugging-Informationen für Systembetreiber bereitstellen.
Zu den wichtigsten Funktionen gehören:
Auf den Bildschirm „Diagnose-Tools“ können Sie über den AEM-Begrüßungsbildschirm über Tools > Vorgänge > Diagnose zugreifen. Über die folgende URL können Sie auch direkt auf die Diagnose-Tools zugreifen: https://serveraddress:port/libs/granite/operations/content/diagnosis.html
Die Protokollmeldungen Die Benutzeroberfläche zeigt standardmäßig alle FEHLER-Meldungen an. Wenn Sie mehr Protokollmeldungen anzeigen möchten, konfigurieren Sie eine Protokollfunktion mit der entsprechenden Protokollebene.
Die Protokollmeldungen nutzen einen In-Memory-Protokoll-Appender und hängen daher nicht mit den Protokolldateien zusammen. Eine weitere Folge ist, dass sich durch die Änderung der Protokollebenen in dieser Benutzeroberfläche die Informationen, die in den herkömmlichen Protokolldateien protokolliert werden, nicht ändern. Das Hinzufügen und Entfernen von Loggern in dieser Benutzeroberfläche wirkt sich nur auf die Speicherprotokollierung aus. Außerdem spiegelt sich das Ändern der Logger-Konfigurationen in der Zukunft des in-Memory-Loggers wider. Die Einträge, die bereits protokolliert sind und nicht mehr relevant sind, werden nicht gelöscht, aber ähnliche Einträge werden in Zukunft nicht protokolliert.
Sie können konfigurieren, was protokolliert wird, indem Sie Logger-Konfigurationen über die Zahnradschaltfläche oben links in der Benutzeroberfläche bereitstellen. Dort können Sie Logger-Konfigurationen hinzufügen, entfernen oder aktualisieren. Eine Logger-Konfiguration besteht aus einer Protokollebene (WARN/INFO/DEBUG) und a Filtername. Die Filtername hat die Rolle, die Quelle der protokollierten Protokollmeldungen zu filtern. Wenn eine Protokollfunktion alle Protokollmeldungen für die angegebene Ebene erfassen soll, sollte der Filtername alternativ "root". Durch Festlegen der Protokollierungsstufe wird die Erfassung aller Nachrichten Trigger, deren Stufe mindestens der angegebenen entspricht.
Beispiele:
Wenn Sie alle FEHLER messages - keine Konfiguration erforderlich. Alle FEHLER-Meldungen werden standardmäßig erfasst.
Wenn Sie alle FEHLER, WARN und INFO messages - der Logger-Name sollte auf Folgendes festgelegt werden: "root" und der Protokollierungsstufe auf: INFO.
Wenn Sie alle Nachrichten aus einem bestimmten Paket erfassen möchten (z. B. com.adobe.granite), sollte der Logger-Name auf Folgendes festgelegt werden: "com.adobe.granite". Und die Protokollierungsebene auf: DEBUG (Dadurch werden alle FEHLER, WARN, INFO und DEBUG Meldungen), wie in der Abbildung unten dargestellt.
Sie können keinen Logger-Namen festlegen, um nur FEHLER-Nachrichten über einen bestimmten Filter zu erfassen. Standardmäßig werden alle FEHLER-Nachrichten erfasst.
Die Benutzeroberfläche für Protokollmeldungen gibt nicht das tatsächliche Fehlerprotokoll wieder. Wenn Sie keine anderen Protokollnachrichten in der Benutzeroberfläche konfigurieren, werden nur FEHLER-Meldungen angezeigt. Informationen zum Anzeigen bestimmter Protokollmeldungen finden Sie in den Anweisungen oben.
Die Einstellungen auf der Diagnoseseite beeinflussen nicht, was in den Protokolldateien protokolliert wird, und umgekehrt. Während das Fehlerprotokoll also möglicherweise INFO-Meldungen erfasst, werden diese möglicherweise nicht in der Benutzeroberfläche für Protokollmeldungen angezeigt. Über die Benutzeroberfläche ist es auch möglich, DEBUG-Meldungen aus bestimmten Paketen zu erfassen, ohne dass dies das Fehlerprotokoll beeinflusst. Weitere Informationen zum Konfigurieren der Protokolldateien finden Sie unter Protokollierung.
In AEM 6.4 werden Wartungsaufgaben vorkonfiguriert in einem informationsreicheren Format auf INFO-Ebene protokolliert. Dieser Workflow ermöglicht eine bessere Übersicht über den Zustand der Wartungsaufgaben.
Wenn Sie Tools von Drittanbietern (wie Splunk) zur Überwachung und Reaktion auf Wartungsaufgaben verwenden, können Sie die folgenden Protokollanweisungen verwenden:
Log level: INFO
DATE+TIME [MaintanceLogger] Name=<MT_NAME>, Status=<MT_STATUS>, Time=<MT_TIME>, Error=<MT_ERROR>, Details=<MT_DETAILS>
Die Anfrageleistungsseite ermöglicht die Analyse der langsamsten verarbeiteten Seitenanfragen. Auf dieser Seite werden nur Inhaltsanforderungen registriert. Im Einzelnen werden die folgenden Anfragen erfasst:
/content
zugreifen/etc/design
zugreifen".html"
Die Seite wird angezeigt:
Standardmäßig werden die langsamsten 20 Seitenanfragen erfasst. Diesen Wert können Sie aber im Konfigurations-Manager ändern.
Auf der Seite "Abfrageleistung"können die langsamsten vom System durchgeführten Abfragen analysiert werden. Diese Informationen werden vom Repository in einem JMX-MBean bereitgestellt. In Jackrabbit stellt das JMX-MBean com.adobe.granite.QueryStat
diese Daten bereit, im Oak-Repository werden sie von org.apache.jackrabbit.oak.QueryStats.
geliefert.
Die Seite wird angezeigt:
Bei jeder Abfrage versucht Oak, die beste Ausführungsmethode zu ermitteln, basierend auf den Oak-Indizes, die im Repository unter dem oak:index Knoten. Je nach Abfrage können Oak verschiedene Indizes auswählen. Die Ausführung einer Abfrage durch Oak zu verstehen ist der erste Schritt zur Optimierung der Abfrage.
Die Abfrage erläutern ist ein Tool, das erklärt, wie Oak eine Abfrage ausführt. Sie können darauf zugreifen, indem Sie Tools - Vorgänge - Diagnose über den AEM Begrüßungsbildschirm. Klicken Sie anschließend auf Abfrageleistung und wechseln Sie zur Abfrage erläutern Registerkarte.
Funktionen
Wenn Sie sich in der Benutzeroberfläche "Abfrage erläutern"befinden, geben Sie die Abfrage ein und drücken Sie die Erklären Schaltfläche:
Der erste Eintrag im Abschnitt Abfrage-Erläuterung ist die eigentliche Erklärung. Die Erklärung zeigt den Indextyp an, der für die Ausführung der Abfrage verwendet wurde.
Der zweite Eintrag ist der Ausführungsplan.
Tippen Sie auf Ausführungszeit einschließen vor der Ausführung der Abfrage zeigt auch die Dauer der Ausführung der Abfrage an. Die Anzahl der Include-Knoten -Option gibt die Anzahl der Knoten an. Der Bericht enthält weitere Informationen, die zur Optimierung der Indizes für Ihre Anwendung oder Bereitstellung verwendet werden können.
Der Index-Manager soll die Indexverwaltung erleichtern, z. B. die Pflege von Indizes oder die Anzeige ihres Status.
Um auf ihn zuzugreifen, klicken Sie auf dem Begrüßungsbildschirm unter Tools > Vorgänge > Diagnose auf die Schaltfläche Index-Manager.
Darüber hinaus kann auf ihn direkt über diese URL zugegriffen werden: https://serveraddress:port/libs/granite/operations/content/diagnosistools/indexManager.html
Die Benutzeroberfläche kann verwendet werden, um Indizes in der Tabelle zu filtern, indem die Filterkriterien in das Suchfeld in der oberen linken Ecke des Bildschirms eingegeben werden.
Diese Aktion Trigger den Download einer ZIP-Datei mit nützlichen Informationen zum Systemstatus und zur Systemkonfiguration. Das Archiv enthält Instanzkonfigurationen, eine Liste von Bundles, OSGI, Sling-Metriken und Statistiken, was zu einer großen Datei führen kann. Um die Auswirkung großer Statusdateien zu minimieren, können Sie das Fenster Status-ZIP herunterladen nutzen. Das Fenster finden Sie unter AEM > Tools > Vorgänge > Diagnose > Status-ZIP herunterladen.
In diesem Fenster können Sie auswählen, was exportiert werden soll (Protokolldateien und/oder Thread-Sicherheitskopien) und wie viele Tage Protokolle im Download im Verhältnis zum aktuellen Datum enthalten sind.
Diese Aktion Trigger den Download einer ZIP-Datei mit Informationen zu den im System vorhandenen Threads. Es werden Informationen zu jedem Thread bereitgestellt, wie z. B. sein Status, der Classloader und der Stacktrace.
Sie können einen Schnappschuss des Heap herunterladen, um ihn später zu analysieren. Diese Aktion Trigger den Download einer großen (Hunderte von Megabyte) Datei.
Auf der Seite "Automatisierte Wartungsaufgaben"können Sie empfohlene Wartungsaufgaben, die für die regelmäßige Ausführung geplant sind, anzeigen und verfolgen. Die Aufgaben sind in das Konsistenzprüfungssystem integriert. Die Aufgaben können auch manuell über die Benutzeroberfläche ausgeführt werden.
Rufen Sie die Seite "Wartung"im Vorgangs-Dashboard im Begrüßungsbildschirm des AEM auf: Tools - Vorgänge - Dashboard - Wartung oder direkt diesem Link folgen:
https://serveraddress:port/libs/granite/operations/content/maintenance.html
Die folgenden Aufgaben sind im Vorgangs-Dashboard verfügbar:
Der Standardzeitrahmen für das tägliche Wartungsfenster beträgt 2:00 Uhr bis 5:00 Uhr. Die für die Ausführung im wöchentlichen Wartungsfenster konfigurierten Aufgaben laufen samstags zwischen 1:00 Uhr und 2:00 Uhr.
Sie können die Timings auch konfigurieren, indem Sie auf einer der beiden Wartungskarten auf das Zahnradsymbol klicken:
Seit AEM 6.1 können die vorhandenen Wartungsfenster auch so konfiguriert werden, dass sie monatlich ausgeführt werden.
Weitere Informationen zur Durchführung der Revisionsbereinigung finden Sie unter finden Sie in diesem speziellen Artikel.
Mithilfe der Aufgabe Lucene-Binärdateien-Bereinigung können Sie Lucene-Binärdateien bereinigen und die Anforderungen an die Größe des laufenden Datenspeichers reduzieren. Die binäre Abwanderung von Lucene wird täglich anstelle der früheren Abhängigkeit von einer erfolgreichen Speicherbereinigung ausführen.
Obwohl die Wartungsaufgabe entwickelt wurde, um Lucene-bezogenen Überarbeitungsfehler zu reduzieren, gibt es allgemeine Effizienzsteigerungen bei der Ausführung der Aufgabe:
Die Aufgabe „Lucene-Binärdateien-Bereinigung“ finden Sie unter AEM > Tools > Vorgänge > Wartung > Tägliches Wartungsfenster > Lucene-Binärdateien-Bereinigung.
Weitere Informationen zur automatischen Datenspeicherbereinigung finden Sie in der entsprechenden Dokumentationsseite.
Workflows können auch über das Wartungs-Dashboard bereinigt werden. Gehen Sie wie folgt vor, um die Aufgabe "Workflow-Bereinigung"auszuführen:
Weitere Informationen zur Workflow-Wartung finden Sie unter diese Seite.
Informationen zur Auditprotokoll-Wartung finden Sie auf der entsprechenden Dokumentationsseite.
Sie können die Wartungsaufgabe zur Versionsbereinigung planen, um alte Versionen automatisch zu löschen. Diese Aktion minimiert die Notwendigkeit, die Tools zur Versionsbereinigung. Um die Versionsbereinigung zu planen und zu konfigurieren, führen Sie unter Tools > Vorgänge > Wartung > Wöchentliches Wartungsfenster die folgenden Schritte durch:
Klicken Sie auf Hinzufügen.
Wählen Sie aus dem Dropdown-Menü Versionsbereinigung aus.
Um die Versionsbereinigung zu konfigurieren, klicken Sie auf das Zahnräder auf der neu erstellten Versionsbereinigungs-Wartungskarte.
Mit AEM 6.4 können Sie die Wartungsaufgabe Versionsbereinigung wie folgt beenden:
Das Anhalten der Wartungsaufgabe bedeutet, die Ausführung auszusetzen, ohne den bereits ausgeführten Auftrag zu verlieren.
Um die Repository-Größe zu optimieren, sollten Sie die Versionsbereinigungsaufgabe häufig ausführen. Die Aufgabe sollte außerhalb der Geschäftszeiten geplant werden, wenn nur ein begrenzter Traffic verfügbar ist.
Sie können benutzerdefinierte Wartungsaufgaben als OSGi-Dienste implementieren. Da die Infrastruktur der Wartungsaufgaben auf der Auftragsverarbeitung von Apache Sling basiert, muss eine Wartungsaufgabe die Java™-Schnittstelle implementieren [org.apache.sling.event.jobs.consumer.JobExecutor](https://sling.apache.org/apidocs/sling7/org/apache/sling/event/jobs/consumer/JobExecutor.html)
. Um als Wartungsaufgabe erkannt zu werden, muss sie zusätzlich mehrere Dienstregistrierungseigenschaften festlegen, wie nachfolgend aufgeführt:
Diensteigenschaftsname |
Beschreibung | Beispiel |
Typ |
granite.maintenance.isStoppable | Boolesches Attribut, das definiert, ob die Aufgabe vom Benutzer angehalten werden kann. Wenn eine Aufgabe feststellt, dass sie beendet werden kann, muss sie während ihrer Ausführung überprüfen, ob sie beendet wurde, und entsprechend handeln. Der Standardwert ist "false". | true | Optional |
granite.maintenance.mandatory | Boolesches Attribut, das definiert, ob eine Aufgabe obligatorisch ist und regelmäßig ausgeführt werden muss. Wenn eine Aufgabe obligatorisch, aber derzeit nicht in einem aktiven Zeitplanfenster vorhanden ist, meldet eine Konsistenzprüfung diesen Fehler. Der Standardwert ist "false". | true | Optional |
granite.maintenance.name | Ein eindeutiger Name für die Aufgabe - der Name wird verwendet, um auf die Aufgabe zu verweisen, und ist nur ein einfacher Name. | MyMaintenanceTask | Erforderlich |
granite.maintenance.title | Ein Titel für diese Aufgabe wird angezeigt | Meine besondere Wartungsaufgabe | Erforderlich |
job.topics | Ein eindeutiges Thema der Wartungsaufgabe. Die Verarbeitung von Apache Sling-Aufträgen startet einen Auftrag mit genau diesem Thema, um die Wartungsaufgabe auszuführen. Sobald die Aufgabe für dieses Thema registriert ist, wird sie ausgeführt. Das Thema muss mit com/adobe/granite/maintenance/job/ beginnen. |
com/adobe/granite/maintenance/job/MyMaintenanceTask | Erforderlich |
Neben den oben genannten Diensteigenschaften wird die process()
-Methode JobConsumer
-Schnittstelle implementiert werden, indem der Code hinzugefügt wird, der für die Wartungsaufgabe ausgeführt werden soll. Mit dem bereitgestellten JobExecutionContext
können Sie Statusinformationen ausgeben, prüfen, ob der Auftrag vom Benutzer angehalten wurde, und ein Ergebnis erstellen (Erfolg oder Fehler).
In Situationen, in denen eine Wartungsaufgabe nicht auf allen Installationen ausgeführt werden sollte (z. B. nur auf der Veröffentlichungsinstanz), können Sie den Dienst so einrichten, dass eine Konfiguration aktiv sein muss, indem Sie @Component(policy=ConfigurationPolicy.REQUIRE)
. Anschließend können Sie die entsprechende Konfiguration im Repository als abhängig vom Ausführungsmodus markieren. Weitere Informationen finden Sie unter Konfigurieren von OSGi.
Nachfolgend finden Sie ein Beispiel für eine benutzerdefinierte Wartungsaufgabe, die Dateien aus einem konfigurierbaren temporären Ordner löscht, die in den letzten 24 Stunden geändert wurden:
src/main/java/com/adobe/granite/samples/maintenance/impl/DeleteTempFilesTask.java
|
experiencemanager-java-maintenancetask-sample - src/main/java/com/adobe/granite/samples/maintenance/impl/DeleteTempFilesTask.java
Nachdem der Dienst bereitgestellt wurde, wird er der Benutzeroberfläche des Vorgangs-Dashboards angezeigt. Sie können ihn zu einem der verfügbaren Wartungszeitpläne hinzufügen:
Durch diese Aktion wird die entsprechende Ressource unter /apps/granite/operations/config/maintenance/ hinzugefügt.schedule
/taskname
. Wenn die Aufgabe vom Ausführungsmodus abhängig ist, muss die Eigenschaft granite.operations.conditions.runmode auf diesem Knoten mit den Werten der Ausführungsmodi festgelegt werden, die für diese Wartungsaufgabe aktiv sein müssen.
Die Dashboard "Systemübersicht" zeigt einen allgemeinen Überblick über die Konfiguration, Hardware und den Zustand der AEM Instanz. Der Systemzustand ist transparent und alle Informationen werden in einem Dashboard zusammengefasst.
Eine Einführung in das Systemübersicht-Dashboard erhalten Sie auch in diesem Video.
Um auf das Systemübersicht-Dashboard zuzugreifen, gehen Sie zu Tools > Vorgänge > Systemübersicht.
In der folgenden Tabelle werden alle im Dashboard "Systemübersicht"angezeigten Informationen beschrieben. Wenn keine relevanten Informationen angezeigt werden (z. B. wird keine Sicherung durchgeführt, es gibt keine kritischen Konsistenzprüfungen), zeigt der entsprechende Abschnitt die Meldung "Keine Einträge"an.
Sie können auch eine JSON
Datei, in der die Dashboard-Informationen durch Klicken auf die Download in der oberen rechten Ecke des Dashboards. Die JSON
Endpunkt ist /libs/granite/operations/content/systemoverview/export.json
und kann in einer curl
Skript für die externe Überwachung.
Abschnitt | Angezeigte Informationen | Wann liegt ein kritischer Status vor | Ist verknüpft mit |
Konsistenzprüfungen |
|
Visuell angezeigt:
|
|
Wartungsaufgaben |
|
Visuell angezeigt:
|
|
System |
|
Nicht zutreffend | Nicht zutreffend |
Instanz |
|
Nicht zutreffend | Nicht zutreffend |
Repository |
|
Nicht zutreffend | Nicht zutreffend |
Verteilungsagenten |
|
Visuell angezeigt:
|
Verteilungsseite |
Replikations-Agenten |
|
Visuell angezeigt:
|
Replikationsseite |
Workflows |
Für jeden der oben aufgeführten Status wird eine Abfrage mit einer Beschränkung von 400 Millisekunden durchgeführt. Bei 400 Millisekunden wird die Anzahl der bis zu diesem Zeitpunkt erhaltenen Einträge angezeigt. |
Nicht interpretiert:
|
Seite "Workflow-Fehler" |
Sling Jobs | Anzahl der Sling-Aufträge - Anzahl der Aufträge in einem bestimmten Status (falls vorhanden):
|
Nicht interpretiert:
|
Nicht zutreffend |
Voraussichtliche Knotenanzahl | Geschätzte Anzahl:
Die Gesamtzahl an Knoten wird vom nodeCounterMBean abgerufen, die übrigen Statistiken dagegen von IndexInfoService. |
Nicht zutreffend | Nicht zutreffend |
Sicherung | Zeigt "Online-Sicherung läuft"an, falls dies der Fall ist. | Nicht zutreffend | Nicht zutreffend |
Indizierung | Displays:
Wenn ein Indizierungs- oder Abfragethread im Thread-Dump vorhanden ist. |
Nicht zutreffend | Nicht zutreffend |