#AEM

Apache Sling Health Checks Tools

Inhalt

Wenn wir ein automatisiertes System zur Live-Überprüfung und Überwachung des aktuellen Status, der Leistung und der Konfiguration der AEM-Anwendungsumgebung nutzen möchten, können wir auf die OOTB Apache Sling Health Checks Tools zurückgreifen.

Im Folgenden werde ich die Grundidee dieser Tools erläutern und einige einfache Konfigurations- und Anpassungsbeispiele demonstrieren. Sie werden sehen, wie einfach und verständlich die UI-Erstellung ist.

Probleme und Ziele

Bevor wir ein Problem mit der AEM-Anwendung beheben, sollten wir die folgenden Punkte überprüfen:

  • Erforderliche Bundles sind aktiv und funktionsfähig;
  • Zugehörige Webdienst-Endpunkte sind verfügbar;
  • Erforderliche Ressourcen und eine geeignete Inhaltsstruktur existieren.

Alle oben genannten Schritte können von Zeit zu Zeit manuell durchgeführt werden, aber wir müssen diese Validierungen automatisch ausführen. Dieser Ansatz wird uns helfen, die AEM-Anwendung auf einen Blick zu überwachen.

Wenn wir eine solche Automatisierung für die Live-Überprüfung und Überwachung von Umgebungen aufbauen müssen, können wir die OOTB Apache Sling Health Checks Tools (oder HC) verwenden.

Health Checks auf einen Blick

Eine HC-Instanz ist ein OSGi-Dienst, der das org.apache.sling.hc.api.HealthCheck Interface implementiert und ein Result gemäß der Validierungsbedingungen zurückgibt:

public interface HealthCheck {
public Result execute();
}

Result ist eine einfache, unveränderliche Klasse, die einen Status (OK, WARN, CRITICAL, etc.) und eine oder mehrere protokollähnliche Nachrichten für zusätzliche Informationen bereitstellt.

Hinweis: Wenn Sie eine Result-Log-Nachricht festlegen, wird diese innerhalb von AEM als WARN identifiziert. Folglich sollten wir es wie folgt definieren:

new Result(Result.Status.OK, "Some Message")

Ausführung von Health Checks

AEM ist ein modulares System, daher gibt es mehrere Konfigurationsstellen für jeden Teil des Systems. Der HC Executor-Dienst ist einer dieser Dienste, der unter „/system/console/configMgr/org.apache.sling.hc.core.impl.executor.HealthCheckExecutorImpl“:“ konfiguriert werden kann.

Hinweis: Der HC Executor führt jeden HC innerhalb des Sling Thread-Pools aus und stellt so sicher, dass jeweils nur eine Instanz läuft.

Benutzerdefinierte Health Checks

Für die individuelle HC-Implementierung sollten wir zuerst das Interface org.apache.sling.hc.api.HealthCheck implementieren und die Optionen für den Dienst wie folgt angeben:

@Component(metatype = true)
@Properties({
        @Property(name = HealthCheck.NAME,value = "HCName"),
        @Property(name = HealthCheck.TAGS,value = {"meetup"}),
        @Property(name = HealthCheck.MBEAN_NAME,value = "HCName")
})
@Service(value = {HealthCheck.class})
public class IncorrectLocalhostHC implements HealthCheck {

Wenn der HC durch den Scheduler ausgeführt werden soll (zum Beispiel einmal täglich), können wir die Planungsintervalle in den Eigenschaften angeben:

@Property(name = HealthCheck.ASYNC_CRON_EXPRESSION, value = "0 0 12 1/1 * ? *")

Die Sling HC Core-Version 1.2.6 wird eine neue Eigenschaft namens “hc.resultCacheTtlInMs” haben. Diese überschreibt die globale Standard-TTL, wie sie im HC-Executor für HC-Antworten konfiguriert ist.

HC kann auch mit der Annotation @SlingHealthCheck konfiguriert werden, funktioniert aber nicht OOTB in AEM 6.1:

@SlingHealthCheck(
    name="Health Check Name For Felix Console", 
    mbeanName="JMX Name",
    description="Health Check Description",
    tags={"meetup"}
)

Diese einfachen Schritte ermöglichen Ihnen die Implementierung von HC, ausgeführt von der Felix-Konsole über den Pfad “/system/console/healthcheck”:

Benutzeroberfläche für Health Checks

Wenn wir Tools -> Operations -> Dashboard -> Console -> Health Reports öffnen (oder über den Pfad “/libs/granite/operations/content/healthreports.html” ), sehen wir Karten mit HC.

Um einen benutzerdefinierten HC als Karte zu diesem Dashboard hinzuzufügen, müssen wir einen Knoten unter dem Pfad /apps/granite/operations/config/hc mit den folgenden Eigenschaften erstellen:

  • resource{String} – /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/[ hc.name ]
  • sling:resourceType{String} – granite/operations/components/mbean

Das Operations-Dashboard ermöglicht auch das Zusammenführen von HC-Karten in Gruppen (wie es bereits für “System Checks” und “Security Checks” geschehen ist). Alle zusammengesetzten HC-Konfigurationen werden in der org.apache.sling.hc.core.impl.CompositeHealthCheck -Factory gespeichert. Um unseren benutzerdefinierten HC hier hinzuzufügen, sollten wir eine neue Konfiguration für diese Factory über die Felix-Konsole oder über eine Konfigurationsdatei implementieren. Im Falle der Felix-Konsole müssen wir “Name” für die HC-Gruppe und “Filter Tags” angeben, damit alle HC mit diesen Tags unter dieser HC-Kartenkomposition im Operations-Dashboard verfügbar sind.

    Lassen Sie uns über Ihr Projekt sprechen!
    / 2
    Alle mit einem Sternchen gekennzeichneten Felder sind Pflichtfelder
    Alle mit einem Sternchen gekennzeichneten Felder sind Pflichtfelder
    Alle mit einem Sternchen gekennzeichneten Felder sind Pflichtfelder
    Alle mit einem Sternchen gekennzeichneten Felder sind Pflichtfelder
    Setzen Sie ein Häkchen in das Kästchen
    Erfolg!
    Wir werden uns per E-Mail mit Ihnen in Verbindung setzen