Allgemeine Protokolle

Beschreibung description

Umgebung
Experience Manager

Problem/Symptome
In diesem Dokument werden gängige Protokolleinträge beschrieben, was sie bedeuten und wie sie behandelt werden.


Inhaltsverzeichnis

Auflösung resolution

GLOB-Warnung

Beispiel-Protokolleintrag:

`[` Fri Jul 20 03:35:09 2018`]`  `[` W`]`  `[` pid 8300 (tid 139937910880384)`]`  /etc/httpd/conf/publish-filters.any:5: Allowing requests with globs is considered unsafe. Please consult the documentation at 'https://www.adobe.com/go/docs_dispatcher_config_de' on how to use attributes method/url/query/protocol/path/selectors/extension/suffix instead.

Seit dem Dispatcher-Modell 4.2.x haben sie begonnen, Personen davon abzuhalten, den folgenden Übereinstimmungstyp in ihrer Filterdatei zu verwenden:

/0041 { /type "allow" /glob "* *.css *"   }  ## enable css

Stattdessen sollte die neue Syntax wie folgt verwendet werden:

/0041 { /type "allow" /url "*.css" } ## enable css

Oder noch besser, um überhaupt keine Übereinstimmung mit einem Platzhalter-Matcher zu finden:

/0041 { /type "allow" /extension "css" } ## enable css

Wenn Sie eine der vorgeschlagenen Methoden durchführen, wird die Fehlermeldung in den Protokollen nicht mehr angezeigt.

Zurückweisungen filtern

Hinweis:

Diese Einträge werden nicht immer angezeigt, selbst wenn Zurückweisungen auftreten, wenn die Protokollebene zu niedrig eingestellt ist. Setzen Sie sie auf Info oder debug , um sicherzustellen, dass Sie sehen, ob die Filter die Anforderungen ablehnen.

Beispiel-Protokolleintrag:

`[` Fri Jul 20 17:25:48 2018`]`  `[` D`]`  `[` pid 25939 (tid 139937517123328)`]`  Filter rejects: GET /libs/granite/core/content/login.html HTTP/1.1

oder:

`[` Fri Jul 20 22:16:55 2018`]`  `[` I`]`  `[` pid 128803`]`  "GET /system/console/" ! - 8ms `[` publishfarm/-`]`

Vorsicht:

Beachten Sie, dass die Dispatcher-Regeln so eingerichtet wurden, dass sie diese Anforderung herausfiltern. In diesem Fall wurde die Seite, die besucht werden wollte, absichtlich abgelehnt, und wir würden nichts daran ändern wollen.

Wenn Ihr Protokoll wie dieser Eintrag aussieht:

`[` Fri Jul 20 17:26:47 2018`]`  `[` D`]`  `[` pid 20051 (tid 139937517123328)`]`  Filter rejects: GET /etc/designs/exampleco/fonts/montserrat-regular/montserrat-regular-webfont.eot HTTP/1.1

Das lässt uns wissen, dass unsere Design-Datei .eot blockiert wird, und wir werden das reparieren wollen.

Daher sollten wir uns unsere Filterdatei ansehen und die folgende Zeile hinzufügen, um .eot-Dateien durch zuzulassen.

/0011 { /type "allow" /method "GET" /extension 'eot' /path "/etc/designs/*" }

Dadurch kann die Datei durchlaufen und die Protokollierung verhindert werden.

Wenn Sie sehen möchten, was herausgefiltert wird, können Sie diesen Befehl in Ihrer Protokolldatei ausführen:

$ grep "Filter rejects\|\!" /var/log/httpd/dispatcher.log | awk 'match($0, /\/.*\//, m){ print m`[` 0`]`  }' | awk '{ print $1 }'| sort | uniq -c | sort -rn

Timeouts von Rendering

Beispiel-Protokolleintrag für eine Socket-Zeitüberschreitung:

`[` Fri Jul 20 22:31:15 2018`]`  `[` W`]`  `[` pid 3648`]`  Unable to connect socket to 10.43.3.40:4502: Connection timed out
`[` Fri Jul 20 22:31:15 2018`]`  `[` W`]`  `[` pid 3648`]`  Unable to connect to any backend in farm authorfarm

Dies tritt auf, wenn Sie im Render-Abschnitt Ihrer Farm die falsche IP-Adresse konfiguriert haben. Diese oder die AEM-Instanz reagierte nicht mehr oder hörte zu und der Dispatcher kann sie nicht erreichen.

Überprüfen Sie Ihre Firewall-Regeln und stellen Sie sicher, dass die AEM-Instanz fehlerfrei ausgeführt wird.

Beispiel-Protokolleinträge für Gateway-Zeitüberschreitungen:

`[` Fri Jul 20 22:32:42 2018`]`  `[` I`]`  `[` pid 3648`]`  "GET /favicon.ico" 502 - 54034ms `[` authorfarm/-`]`
`[` Fri Jul 20 22:35:45 2018`]`  `[` I`]`  `[` pid 3648`]`  "GET /favicon.ico" 503 - 54234ms `[` authorfarm/-`]`

Das bedeutet, dass die AEM-Instanz über einen offenen Socket verfügte, den sie erreichen konnte, es bei der Antwort aber zu einer Zeitüberschreitung kam. Das bedeutet, dass Ihre AEM Instanz zu langsam oder ungesund war und der Dispatcher die konfigurierten Timeout-Einstellungen im Renderer-Abschnitt der Farm erreicht hat. Erhöhen Sie die Zeitüberschreitungseinstellung bzw. stellen Sie sicher, dass Ihre AEM-Instanz ordnungsgemäß ausgeführt wird.

Caching-Ebene

Beispiel-Protokolleintrag:

`[` Fri Jul 20 23:00:19 2018`]`  `[` I`]`  `[` pid 16004 (tid 140134145820416)`]`  Current cache hit ratio: 87.94 %

Das bedeutet, dass Ihr Abruf von der Renderebene im Vergleich zum Cache gemessen wird. Sie möchten 80+ Prozent aus dem Cache erreichen und sollten die Hilfe befolgen here:

Diese Zahl sollte so hoch wie möglich sein.

Hinweis:

Selbst wenn Sie Ihre Cache-Einstellungen in der Farm-Datei haben, um alles zwischenzuspeichern, werden Sie möglicherweise zu häufig oder zu aggressiv geleert, was zu einem geringeren Prozentsatz des Cache-Trefferverhältnisses führen kann

Fehlendes Verzeichnis

Beispiel-Protokolleintrag:

`[` Fri Jul 20 14:02:43 2018`]`  `[` E`]`  `[` pid 4728 (tid 140662586435328)`]`  Unable to create parent directory /mnt/var/www/author/libs/dam/content/asseteditors/formitems.overlay.infinity.json/application: Not a directory

Dies wird meist angezeigt, wenn ein Element abgerufen wird, während gleichzeitig eine Cache-Leerung erfolgt.

Es liegt entweder dies vor, oder das Basisverzeichnis hat ungünstige Berechtigungen dafür, oder für den Ordner, durch den Apache die neuen erforderlichen Unterverzeichnisse nicht erstellen kann, liegt der falsche SELinux-Dateikontext vor.

Bei Berechtigungsproblemen überprüfen Sie die Berechtigungen des Dokumentenstamms und stellen Sie sicher, dass sie wie folgt aussehen:

dispatcher$ ls -la

Vanity-URL nicht gefunden

Beispiel-Protokolleintrag:

`[` Thu Sep 27 17:35:11 2018`]`  `[` D`]`  `[` pid 18936`]`  Checking vanity URLs
`[` Thu Sep 27 17:35:11 2018`]`  `[` D`]`  `[` pid 18936`]`  Vanity URL file (/tmp/vanity_urls) not found, fetching...
`[` Thu Sep 27 17:35:11 2018`]`  `[` W`]`  `[` pid 18936`]`  Unable to fetch vanity URLs from 10.43.0.42:4503/libs/granite/dispatcher/content/vanityUrls.html: remote server returned: HTTP/1.1 404 Not Found

Dieser Fehler tritt auf, wenn Sie Ihren Dispatcher so konfiguriert haben, dass er den dynamischen automatischen Filter verwendet, um Vanity-URLs zuzulassen, die Einrichtung jedoch noch nicht abgeschlossen haben, indem das Paket auf dem AEM Renderer installiert wurde.

Um dies zu beheben, installieren Sie bitte das Feature Pack für die Vanity-URL auf der AEM-Instanz und lassen Sie zu, dass es vom anonymen Benutzer bereit ist. Weitere Informationen dazu finden Sie hier.

Eine funktionierende Vanity-URL-Einrichtung sieht wie folgt aus:

`[` Thu Sep 27 17:40:29 2018`]`  `[` D`]`  `[` pid 21844`]`  Checking vanity URLs
`[` Thu Sep 27 17:40:29 2018`]`  `[` D`]`  `[` pid 21844`]`  Vanity URL file (/tmp/vanity_urls) not found, fetching...
`[` Thu Sep 27 17:40:29 2018`]`  `[` D`]`  `[` pid 21844`]`  Loaded 18 vanity URLs from file /tmp/vanity_urls

Fehlende Farm

Beispiel-Protokolleintrag:

`[` Wed Nov 13 17:17:26 2019`]`  `[` W`]`  `[` pid 19173:tid 140542738364160`]`  No farm matches host 'we-retail.com', selected last farm 'publishfarm'

Dieser Fehler weist darauf hin, dass aus allen Farm-Dateien, die in /etc/httpd/conf.dispatcher.d/enabled_farms/ verfügbar sind, kein entsprechender Eintrag im Abschnitt /virtualhost gefunden werden konnte.

Die Farm-Dateien gleichen den Traffic basierend auf dem Domänennamen oder Pfad, mit dem die Anfrage einging. Es wird glob-Übereinstimmung verwendet, und wenn es nicht übereinstimmt, haben Sie Ihre Farm entweder nicht richtig konfiguriert, den Eintrag in die Farm eingegeben oder den Eintrag fehlt vollständig. Wenn die Farm keinen Einträgen entspricht, wird standardmäßig die letzte Farm verwendet, die im Stapel der Farm-Dateien enthalten ist. In diesem Beispiel war es 999_ams_publish_farm.any, der den allgemeinen Namen von publishfarm hat.

Im Folgenden finden Sie eine Beispiel-Farm-Datei /etc/httpd/conf.dispatcher.d/enabled_farms/300_weretail_publish_farm.any , die reduziert wurde, um die relevanten Teile hervorzuheben.

Element bereitgestellt von

Beispiel-Protokolleintrag:

`[` Tue Nov 26 16:41:34 2019`]`  `[` I`]`  `[` pid 9208 (tid 140112092391168)`]`  "GET /content/we-retail/us/en.html" - + 24034ms `[` publishfarm/0`]`

Die Seite wurde über die GET HTTP-Methode für den Inhalt /content/we-retail/us/en.html abgerufen und dauerte 24034 Millisekunden. Der Teil, auf den wir achten wollten, ist am Ende [ publishfarm/0] . Sie werden feststellen, dass es zielgerichtet war und mit der publishfarm übereinstimmte. Die Anfrage wurde vom Renderer 0 abgerufen. Das bedeutet, dass diese Seite von AEM angefordert und dann zwischengespeichert werden musste. Jetzt fordern wir diese Seite erneut an und sehen, was mit dem Protokoll geschieht

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f