一般的なログ
説明 description
環境
Experience Manager
問題/症状
ドキュメントでは、表示される一般的なログエントリとその意味、およびそれらの処理方法について説明します。
目次
解決策 resolution
GLOB 警告
サンプルログエントリ:
`[` 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_jp' on how to use attributes method/url/query/protocol/path/selectors/extension/suffix instead.
Dispatcher モデル 4.2.x 以降では、フィルターファイルで次のタイプの一致を使用するのを阻止し始めました。
/0041 { /type "allow" /glob "* *.css *" } ## enable css
代わりに、次のような新しい構文を使用する方が良いでしょう。
/0041 { /type "allow" /url "*.css" } ## enable css
または、ワイルドカードのマッチャーで一致しなければさらに良いです。
/0041 { /type "allow" /extension "css" } ## enable css
推奨される方法のいずれかを実行すると、ログからそのエラーメッセージが削除されます。
却下をフィルター
メモ:
設定されたログレベルが低すぎる場合に却下が発生しても、これらのエントリは常に表示されるわけではありません。これを Info または debug に設定して、フィルターが要求を拒否しているかどうかを確認できるようにします。
サンプルログエントリ:
`[` Fri Jul 20 17:25:48 2018`]` `[` D`]` `[` pid 25939 (tid 139937517123328)`]` Filter rejects: GET /libs/granite/core/content/login.html HTTP/1.1
または
`[` Fri Jul 20 22:16:55 2018`]` `[` I`]` `[` pid 128803`]` "GET /system/console/" ! - 8ms `[` publishfarm/-`]`
注意:
Dispatcher のルールが、その要求をフィルターして除外するように設定されていることを理解します。 この場合、訪問しようとしたページは目的に基づいて拒否されたので、この操作は何も実行しません。
ログが次のエントリのような場合:
`[` 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
これにより、デザインファイル.eot がブロックされていることがわかります。この問題を修正したいと思います。
そのため、フィルターファイルを見て、次の行を追加し、.eot ファイルを許可します。
/0011 { /type "allow" /method "GET" /extension 'eot' /path "/etc/designs/*" }
これにより、ファイルの通過と、ログの記録が停止します。
何がフィルターで除外されているかを確認するには、ログファイルに対して次のコマンドを実行します。
$ grep "Filter rejects\|\!" /var/log/httpd/dispatcher.log | awk 'match($0, /\/.*\//, m){ print m`[` 0`]` }' | awk '{ print $1 }'| sort | uniq -c | sort -rn
レンダリングからのタイムアウト
ソケットタイムアウトのサンプルログエントリ:
`[` 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
これは、ファームの renders セクションに間違った IP アドレスが設定されている場合に発生します。 AEMインスタンスが応答またはリッスンを停止し、Dispatcher が到達できなかった。
ファイアウォールルールを調べ、AEM インスタンスが正常に動作していることを確認します。
ゲートウェイタイムアウトのサンプルログエントリ:
`[` 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/-`]`
これは、AEM インスタンスのソケットが開いており到達可能であったが、応答でタイムアウトしたことを意味します。 これは、AEMインスタンスが低速すぎるか異常で、Dispatcher がファームのレンダーセクションで設定されたタイムアウト設定に達したことを意味します。 タイムアウト設定を増やすか、AEM インスタンスを正常にします。
キャッシュレベル
サンプルログエントリ:
`[` Fri Jul 20 23:00:19 2018`]` `[` I`]` `[` pid 16004 (tid 140134145820416)`]` Current cache hit ratio: 87.94 %
つまり、レンダーレベルからの取得とキャッシュからの取得が測定されます。 キャッシュから 80%以上ヒットしたい場合は、のヘルプに従う必要があります ここ:
この数をできるだけ大きくします。
メモ:
ファームファイルにキャッシュ設定がある場合でも、フラッシュの頻度が多すぎる、または積極的に行き過ぎる可能性があり、キャッシュヒット率が低下する可能性があります。
ディレクトリがありません
サンプルログエントリ:
`[` 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
これは、通常、キャッシュの消去が同時に発生している間にアイテムが取得される場合に表示されます。
または、このディレクトリまたはドキュメントルートディレクトリに対する権限が正しくないか、フォルダー上の SELinux ファイルコンテキストが誤っているので、必要な新しいサブディレクトリを Apache が作成するのを拒否しています。
権限の問題については、ドキュメントルートの権限を調べ、次のようになっていることを確認します。
dispatcher$ ls -la
バニティ URL が見つかりません
サンプルログエントリ:
`[` 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
このエラーは、AEMレンダラーにパッケージをインストールしてバニティー URL を許可するように Dispatcher がダイナミック自動フィルターを設定し、設定が完了していない場合に発生します。
この問題を修正するには、AEMインスタンスにバニティー URL 機能パックをインストールし、匿名ユーザーがその機能パックを準備できるようにしてください。 詳細はこちら
動作中のバニティー URL の設定は、次のようになります。
`[` 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
ファームが見つかりません
サンプルログエントリ:
`[` Wed Nov 13 17:17:26 2019`]` `[` W`]` `[` pid 19173:tid 140542738364160`]` No farm matches host 'we-retail.com', selected last farm 'publishfarm'
このエラーは、/etc/httpd/conf.dispatcher.d/enabled_farms/にあるすべてのファームファイルから、/virtualhost セクションから一致するエントリを見つけられなかったことを示します。
ファームファイルは、リクエストが含まれるドメイン名またはパスに基づいて、トラフィックを一致させます。 glob の一致を使用し、一致しない場合は、ファームを正しく設定していないか、ファームにエントリを入力しているか、エントリが完全に見つからないかのどちらかです。 ファームがどのエントリとも一致しない場合、デフォルトでは、ファームファイルのスタックに含まれる最後のファームが使用されます。 この例では、999_ams_publish_farm.any で、publishfarm の汎用名が付けられています。
次に、関連する部品をハイライト表示するために縮小されたファームファイル/etc/httpd/conf.dispatcher.d/enabled_farms/300_weretail_publish_farm.anyの例を示します。
提供元の項目
サンプルログエントリ:
`[` Tue Nov 26 16:41:34 2019`]` `[` I`]` `[` pid 9208 (tid 140112092391168)`]` "GET /content/we-retail/us/en.html" - + 24034ms `[` publishfarm/0`]`
コンテンツ/content/we-retail/us/en.htmlのGEThttp メソッドを使用してページを取得し、24034ミリ秒かかりました。 我々が注目したかった部分は、最後にある。 [
publishfarm/0]
. パブリッシュファームをターゲットにし、一致していることがわかります。 要求は Render 0 から取得されました。つまり、このページをAEMから要求してからキャッシュする必要がありました。 次に、このページを再度リクエストして、ログに何が起こるかを確認しましょう