ログ転送 log-forwarding
ログベンダーのライセンスを所有しているお客様や、ログ製品をホストしているお客様は、AEM ログ(Apache/Dispatcher を含む)と CDN ログを関連するログの宛先に転送できます。 AEM as a Cloud Service は、次のログの宛先をサポートしています。
Amazon S3、DynatraceおよびNew Relicへの[1] CDN ログ転送はベータ版です。 アクセスをリクエストするには、aemcs-logforwarding-beta@adobe.comにプログラム IDをメールで送信してください。 アクセスを有効にした後で、cdn.enabled: trueを持つ各宛先のCDN ログも有効にします。 Amazon S3、Dynatrace、New Relic(ベータ版)のCDN ログを参照してください。
ログ転送は、Git で設定を宣言することでセルフサービス方式で設定され、Cloud Manager 設定パイプラインを通じて開発環境、ステージング環境、本番環境の各タイプにデプロイできます。 設定ファイルは、コマンドラインツールを使用して高速開発環境(RDE)にデプロイできます。
AEM および Apache/Dispatcher ログを、専用エグレス IP などの AEM の高度なネットワークインフラストラクチャ経由でルーティングするオプションがあります。 CDN ログは常にCDNから直接送信され、高度なネットワークを使用しません。 トランスポートと高度なネットワーク を参照してください。
この記事の編成方法 how-organized
この記事は、次のように構成されています。
- 設定 - すべてのログの宛先に共通
- トランスポートと高度なネットワーク - ログ設定を作成する前に、ネットワーク設定を考慮する必要があります。
- 相互TLS (mTLS)認証(ベータ版) – クライアント証明書を使用してSplunk、Elasticsearch/OpenSearch、およびHTTPS宛先に認証する
- ログの宛先設定 - 各宛先の形式はわずかに異なります
- Amazon S3、Dynatrace、およびNew Relic(ベータ版)のCDN ログ – これらの宛先のCDN ログへのアクセスをリクエストして有効にする方法
- ログエントリ形式 - ログエントリ形式に関する情報
- 従来のログ転送からの移行 - アドビで以前設定したログ転送からセルフサービスアプローチに移行する方法
設定 setup
-
logForwarding.yamlという名前のファイルを作成します。 これには、設定パイプラインの記事で説明されているように、メタデータを含める必要があります(kind はLogForwardingに設定し、version は「1」に設定する必要があります)。設定は次のようになります(例として Splunk を使用します)。code language-yaml kind: "LogForwarding" version: "1" data: splunk: default: enabled: true host: "splunk-host.example.com" token: "${{SPLUNK_TOKEN}}" index: "AEMaaCS" -
設定パイプラインの使用で説明されているように、config または類似の名前の最上位フォルダーの下のどこかにファイルを配置します。
-
RDE(コマンドラインツールを使用する環境)以外の環境タイプでは、設定パイプラインの記事のこのセクションで参照されているように、Cloud Manager で対象のデプロイメント設定パイプラインを作成します。フルスタックパイプラインと web 階層設定パイプラインでは、設定ファイルがデプロイされないことに注意してください。
-
設定をデプロイします。
設定内のトークン(${{SPLUNK_TOKEN}} など)は秘密鍵を表すので、Git に保存しないでください。 代わりに、Cloud Manager 秘密鍵環境変数として宣言します。 ログをオーサー層、パブリッシュ層およびプレビュー層に転送できるように、「適用されるサービス」フィールドのドロップダウン値として「すべて」を選択していることを確認します。
default ブロックの後に追加の cdn ブロックや aem ブロックを含めることで、CDN ログと AEM ログ(Apache/Dispatcher を含む)間で異なる値を設定できます。この場合、プロパティは default ブロックで定義されたプロパティを上書きできます。必要なのは enabled プロパティのみです。 次の例に示すように、CDN ログに別の Splunk インデックスを使用するユースケースが考えられます。
kind: "LogForwarding"
version: "1"
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "AEMaaCS"
cdn:
enabled: true
token: "${{SPLUNK_TOKEN_CDN}}"
index: "AEMaaCS_CDN"
cdn ブロックセット enabled: trueにアクセスできる場合にのみ転送されます。 Amazon S3、Dynatrace、New Relic(ベータ版)のCDN ログを参照してください。もう 1 つのシナリオは、CDN ログまたは AEM ログ(Apache/Dispatcher を含む)のいずれかの転送を無効にすることです。 例えば、CDN ログのみを転送するには、次を設定します。
kind: "LogForwarding"
version: "1"
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "AEMaaCS"
aem:
enabled: false
トランスポートと高度なネットワーク transport-advancednetworking
一部の組織では、ログの宛先で受信できるトラフィックを制限することを選択する場合もあれば、HTTPS(443)以外のポートの使用を要求する場合もあります。 その場合は、ログ転送設定をデプロイする前に、高度なネットワークを設定する必要があります。
次の表を使用して、ポート 443 を使用しているかどうか、固定 IP アドレスからログを表示する必要があるかどうかに基づいて、高度なネットワークとログの設定の要件を確認します。 この表は、AEM ログ(Apache/Dispatcherを含む)に適用されます。 CDN ログについては、CDN ログとIP 許可リストを参照してください。
AEM ログ(Apache/Dispatcherを含む)の場合、Advanced Networkingを設定している場合、aem.advancedNetworking プロパティを使用して、専用エグレス IP アドレスから転送できます。
次の例は、高度なネットワークを使用して標準の HTTPS ポートに対してログを設定する方法を示しています。
kind: "LogForwarding"
version: "1"
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
port: 443
token: "${{SPLUNK_TOKEN}}"
index: "aemaacs"
aem:
advancedNetworking: true
CDN ログとIP 許可リスト cdn-ip-allowlist
CDN ログは、AEM as a Cloud Serviceからではなく、CDN (Fastly)から直接送信されます。 これは、すべてのログ宛先に適用されます。
- CDN ログは、https://api.fastly.com/public-ip-listに公開されたFastlyの共有IP アドレス範囲から送信されます。 専用エグレス IP アドレスから送信されることはありません。
advancedNetworkingプロパティは、AEM ログ(Apache/Dispatcherを含む)にのみ適用されます。 CDN ログには影響しません。advancedNetworkingが設定されていて、同じ宛先に対してCDN ログ転送が有効になっている場合、設定は警告をリマインダーとしてデプロイされます。- ロギング先が特定のIP アドレスからのトラフィックのみを受け入れる場合は、AEM ログの専用エグレス IP アドレスに加えて、Fastlyの公開IPv4およびIPv6範囲の all を許可リストに追加します。 専用エグレス IP アドレスのみを許可する宛先は、CDN ログを受信しません。
- FastlyのIP アドレス範囲は、時間の経過とともに、時には数週間以内に変化します。 公開したリストを定期的に確認し、許可リストを最新の状態に保ちます。
- Amazon S3には、CDN ログに関するその他の考慮事項があります。 Amazon S3 CDN ログ を参照してください。
共有IP アドレスのリストが許可リストに入りきれないほど大きい場合は、CDN ログをhttps サーバーまたは(Adobe以外の)Azure Blob Storeに送信することを検討してください。ここで、既知のIPから最終的な宛先にログを送信するためのロジックを記述できます。
相互TLS (mTLS)認証(ベータ版) mtls
Splunk、Elasticsearch/OpenSearch、およびHTTPSの宛先は、相互TLS (mTLS)をサポートしています。 mTLSでは、AEM as a Cloud Serviceがログの宛先に接続する際にクライアント証明書を表示するので、宛先はログが自分の環境から来ていることを確認できます。 mTLSは、AEM ログ(Apache/Dispatcherを含む)とCDN ログに適用されます。
mTLSは、宛先の既存の認証と並行して動作します。 宛先の既存の認証プロパティ(token (Splunk)またはuser、password (Elasticsearch/OpenSearch)など)を保持します。 CDN ログを転送するHTTPS宛先の場合、authHeaderNameとauthHeaderValueが必要です。
設定 mtls-configuration
宛先の他のプロパティと一緒にmtls ブロックを追加します。
cert– 必須。 PEM形式のクライアント証明書。 その後に、クライアント証明書を最初に含む中間CA証明書を使用できます。key– 必須。 クライアント証明書の秘密鍵(PEM形式)。 RSAおよびEC キーは、暗号化されていない、または暗号化されています。 サポートされているキー形式を参照してください。ca- オプション。 PEM形式のCA証明書は、宛先のサーバー証明書の検証に使用されます。 証明書チェーンなど、複数の証明書を含めることができます。 サーバー証明書がプライベート CAによって発行されたときに設定します。keyPasswd- オプション。 秘密鍵のパスワード。 キーが暗号化されている場合にのみ設定します。
次の例では、mTLSを使用してAEMとCDN ログをSplunkに転送します。
kind: "LogForwarding"
version: "1"
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "aemaacs"
mtls:
cert: "${{SPLUNK_MTLS_CERT}}"
key: "${{SPLUNK_MTLS_KEY}}"
ca: "${{SPLUNK_MTLS_CA}}"
次のルールが適用されます。
certとkeyは一緒に指定する必要があります。caまたはkeyPasswdのみを含むmtlsブロックは拒否されます。- 各
mtlsプロパティは、${{SPLUNK_MTLS_CERT}}などの秘密参照である必要があり、それ以外は何も使用できません。 ファイル内に直接配置された証明書またはキーテキストは拒否されます。 - Setupで説明されているように、各シークレットをCloud Manager Secret Environment Variableとして宣言します。
-----BEGIN行と-----END行を含むPEM テキスト全体を貼り付けます。 値をCloud Managerにペーストするときに改行が削除された場合、改行は自動的に復元されます。 複数の証明書を提供するには、同じ秘密鍵に次々と貼り付けます。 - デプロイ時にクライアント証明書が確認されます。 有効なPEMとその有効期間内である必要があります。
certに複数の証明書が含まれている場合、クライアント証明書が最初に来て、証明書が有効なチェーンを形成する必要があります。 チェックが失敗した場合、デプロイメントは失敗します。
サポートされるキー形式 mtls-key-formats
キーのPEM テキストの最初の行は、その形式を示しています。
-----BEGIN RSA PRIVATE KEY----------BEGIN EC PRIVATE KEY----------BEGIN PRIVATE KEY----------BEGIN ENCRYPTED PRIVATE KEY-----DES-EDE3-CBC)を使用した、暗号化された古い形式(RSAまたはEC)-----BEGIN RSA PRIVATE KEY-----または-----BEGIN EC PRIVATE KEY-----、続いてProc-Type: 4,ENCRYPTED行およびDEK-Info行暗号化されたキーの場合は、keyPasswdをそのパスワードに設定します。
暗号化されたPKCS#8は、暗号化されたキーに使用することをお勧めします。 古い形式のキーを変換するには、次のコマンドを使用します。このコマンドでは、現在のパスワードを求め、次に新しいキーのパスワードを求めます。
openssl pkcs8 -topk8 -v2 aes-256-cbc -in client.key -out client-pkcs8.key
client-pkcs8.keyのコンテンツをkeyが参照する秘密鍵に、そのパスワードをkeyPasswdが参照する秘密鍵に保存します。
CDN ログ mtls-cdn
他のプロパティと同様に、defaultの下のmtls ブロックは、AEM ログとCDN ログの両方に適用されます。 CDN ログに別の証明書を使用するには、cdn ブロックでmtls プロパティを設定します。 mTLSをAEM ログのみに使用するか、CDN ログのみに使用するには、defaultではなくaemまたはcdn ブロックにmtls ブロックを配置します。
宛先へのCDN ログ転送を有効にする設定をデプロイした後、最初のCDN ログが到着するまでに数分かかる場合があります。 HTTPS宛先の場合、CDN ログ配信も、サーバーがHTTPSで説明されている1回限りのチャレンジを完了した後にのみ開始されます。 チャレンジリクエストは同じクライアント証明書で送信されるため、サーバーはチャレンジパスでその証明書を受け入れる必要があります。
証明書のローテーションと有効期限 mtls-rotation
証明書をローテーションするには、証明書(および変更された場合はキー)を保持するCloud Manager シークレット環境変数を更新し、設定パイプラインを再実行します。 ログ転送設定ファイル自体が変更されていない場合は、設定が再度適用されるように、ログ転送設定ファイルにも変更を加えます。 例えば、新しいシークレット環境変数に新しい値を格納し、mtls ブロックでそれらの名前を参照します。
また、クライアント証明書の有効期限が切れるおよそ21日前に、プロアクティブな アクション センター通知が届く場合もあります。 この通知に頼ることなく、証明書の有効期限を自分で追跡できます。
ログの宛先設定 logging-destinations
サポートされているログの宛先の設定と、特定の考慮事項を以下に示します。
Amazon S3 amazons3
Amazon S3へのCDN ログはベータ版です。 アクセスをリクエストするには、aemcs-logforwarding-beta@adobe.comにプログラム IDをメールで送信してください。 有効にする方法については、Amazon S3、Dynatrace、およびNew Relic (ベータ版) のCDN ログを参照し、ファイルレイアウトと考慮事項についてはAmazon S3 CDN ログ を参照してください。
kind: "LogForwarding"
version: "1"
data:
awsS3:
default:
enabled: true
region: "your-bucket-region"
bucket: "your-bucket-name"
accessKey: "${{AWS_S3_ACCESS_KEY}}"
secretAccessKey: "${{AWS_S3_SECRET_ACCESS_KEY}}"
AEM ログとCDN ログ(CDN ログはベータ版)の両方を転送するには:
kind: "LogForwarding"
version: "1"
data:
awsS3:
default:
enabled: true
region: "us-east-1"
bucket: "your-bucket-name"
accessKey: "${{AWS_S3_ACCESS_KEY}}"
secretAccessKey: "${{AWS_S3_SECRET_ACCESS_KEY}}"
cdn:
enabled: true
CDN ログのみを転送するには(ベータ版):
kind: "LogForwarding"
version: "1"
data:
awsS3:
default:
enabled: true
region: "us-east-1"
bucket: "your-bucket-name"
accessKey: "${{AWS_S3_ACCESS_KEY}}"
secretAccessKey: "${{AWS_S3_SECRET_ACCESS_KEY}}"
aem:
enabled: false
cdn:
enabled: true
S3 ログ転送ツールを使用するには、S3 バケットへのアクセスに関する適切なポリシーを AWS IAM ユーザーに事前設定する必要があります。 IAM ユーザー資格情報の作成方法について詳しくは、AWS IAM ユーザードキュメントを参照してください。
IAM ポリシーでは、ユーザーに s3:PutObject の使用を許可する必要があります。 (ベータ版) CDN ログを転送するには、s3:AbortMultipartUploadも許可します。 他の権限は必要ありません。ユーザーはバケットを読んだりリストしたりする必要はありません。 次に例を示します。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::your-bucket-name/*"
}]
}
バケットがCDN ログのみを受信する場合は、Resourceをarn:aws:s3:::your-bucket-name/aemcdn/*に制限できます。
実装方法について詳しくは、AWS バケットポリシードキュメントを参照してください。
Amazon S3 CDN ログ(ベータ版) amazons3-cdn
Amazon S3へのCDN ログはベータ版です。 プログラムとcdn.enabled: trueへのアクセスが必要です。 Amazon S3、Dynatrace、New Relic(ベータ版)のCDN ログを参照してください。
CDN ログは、バケットのaemcdn/ フォルダーの下に書き込まれます。 ファイル名形式はYYYY-MM-DDThh:mm:ss.000-<uniqueid>.log.gzです。 次に例を示します。
aemcdn/
2026-03-04T10:00:00.000-WnFWYN9BpOUs2aOVn4ee.log.gz
2026-03-04T10:00:00.000-0pX8ub2yQcAmLs7rT1kd.log.gz
2026-03-04T10:05:00.000-h3JkVv9ZqN2wE5sXyR0a.log.gz
- ファイルはgzip圧縮されています。 各ファイルには、複数のログエントリ、1行に1つのJSON オブジェクトが含まれます。 これらのエントリのプロパティは、Azure Blob Storageに書き込まれたCDN ログと同じです。 ログ記録の書式については、AEM as a Cloud Serviceのログ記録で説明します。各ログ記録には、以下の ログ記録の書式節で説明されている追加の属性も含まれます。
- 新しいファイルのセットは5分ごとに書き込まれます。 CDNには多くのサーバーがあり、トラフィックを処理する各サーバーは独自のファイルを書き込むため、トラフィックがほとんどなくても、5分ごとに多くのファイルが必要になります。 例えば、低トラフィックのテスト環境では、5分ごとに約50個のファイルが生成されました。
- ログエントリは通常、リクエストの1~6分後にバケットに表示されます。
- ファイル名の時間は正確な時間ウィンドウではなく、ファイルが重なります。 例えば、
…T16:00:00.000-….log.gzという名前のファイルには、15:55から16:04までのエントリを格納できます。 各エントリのtimestampプロパティを使用して、リクエストがいつ発生したかを検索します。 - ファイルは書き込み後も変更されません。
お客様は、これらのファイルの処理と管理を担当します。例えば、aemcdn/接頭辞にS3 ライフサイクルルールを付けます。
CDN ログの考慮事項(ベータ版):
-
認証は、IAM ユーザーのアクセスキーを使用します。 IAMの役割はサポートされていません。
-
IAM ユーザーに必要なのは
s3:PutObjectとs3:AbortMultipartUploadのみです。 バケットの読み取りや一覧表示に権限は必要ありません。 -
Amazon S3 マネージドキー(SSE-S3)を使用したデフォルトのバケット暗号化がサポートされており、CDN ログファイルは保存時に暗号化されます。
-
標準のAWS商用リージョンのバケットのみがサポートされます。 AWS GovCloud (米国)およびAWS China リージョンはサポートされていません。
regionプロパティはバケットの領域である必要があります。 -
却下されたアップロードは再試行されません。 バケットポリシーまたはIAM ユーザーの権限がCDN ログのアップロードを拒否した場合、そのアップロードのログエントリは警告なしで失われます。 これは、失敗したアップロードが再試行されるAEM ログとは異なります。 バケットポリシーまたはIAM ユーザーに対する変更で、CDNからのアップロードがブロックされないようにしてください。
-
バケットでのみ許可される
s3:PutObjectおよびs3:AbortMultipartUploadのIAM ユーザー(バケットがCDN ログのみを受信する場合はaemcdn/プレフィックスでのみ許可される)と、IP アドレス条件を持たないバケットポリシーをお勧めします。 -
バケットポリシーでIP アドレスによるアクセスを制限する場合は、Fastlyの公開IPv4およびIPv6のすべての範囲を
aws:SourceIp条件に追加し、最新の状態に保ちます。 CDN ログとIP 許可リストを参照してください。 -
VPC エンドポイント経由のリクエストのみを受け付けるバケット(例えば、
aws:SourceVpce条件を持つバケットポリシー)は、CDN ログを受信できません。 -
失われたCDN ログを検出するには、次の点を考慮してください。
- AWS CloudTrail データイベントまたはS3 サーバーアクセスログ。 レコードは、FastlyのIP アドレスから
PutObject件のリクエスト(HTTP ステータス 403)を拒否しました。 - 新しいオブジェクトが予想以上に長く
aemcdn/の下に到着しなかったときに起動するアラーム。 ファイルは5分ごとに書き込まれます。
- AWS CloudTrail データイベントまたはS3 サーバーアクセスログ。 レコードは、FastlyのIP アドレスから
Azure Blob Storage azureblob
kind: "LogForwarding"
version: "1"
data:
azureBlob:
default:
enabled: true
storageAccountName: "example_acc"
container: "aem_logs"
sasToken: "${{AZURE_BLOB_SAS_TOKEN}}
認証には、SAS トークンを使用する必要があります。 これは、共有アクセストークンページではなく、共有アクセス署名ページから作成し、次の設定を行う必要があります。
- 許可するサービス:BLOBを選択する必要があります。
- 許可されているリソース:オブジェクトとコンテナを選択する必要があります。
- 許可されている権限:読み取り、書き込み、追加、リスト、作成を選択する必要があります。
- 有効な開始日時と有効期限。 有効期限は、設定をデプロイする時点で、少なくとも3か月後である必要があります。
サンプル SAS トークン設定のスクリーンショットを次に示します。
以前は正常に機能していたログの配信が停止した場合は、設定した SAS トークンが期限切れになっていることがあるので、まだ有効かどうかを確認します。
Azure Blob Storage CDN ログ azureblob-cdn
グローバルに分散された各ログサーバーは、aemcdn フォルダーの下に数秒ごとに新しいファイルを生成します。 一度作成したファイルは、それ以降は追加されません。 ファイル名の形式は、YYYY-MM-DDThhss.sss-uniqueid.log です。 例:2024-03-04T10:00:00.000-WnFWYN9BpOUs2aOVn4ee.log.
例えば、ある時点で次のようになります。
aemcdn/
2024-03-04T10:00:00.000-abc.log
2024-03-04T10:00:00.000-def.log
30 秒後には、次のようになります。
aemcdn/
2024-03-04T10:00:00.000-abc.log
2024-03-04T10:00:00.000-def.log
2024-03-04T10:00:30.000-ghi.log
2024-03-04T10:00:30.000-jkl.log
2024-03-04T10:00:30.000-mno.log
各ファイルには、それぞれが別の行に記述された複数の JSON ログエントリが含まれます。 ログエントリの形式について詳しくは、AEM as a Cloud Service のログを参照してください。また、各ログエントリには、次のログエントリ形式の節で説明するその他のプロパティも含まれます。
Azure Blob Storage AEM ログ azureblob-aem
AEM ログ(Apache/Dispatcher を含む)は、次の命名規則に従ってフォルダーの下に表示されます。
- aemaccess
- aemerror
- aemrequest
- aemdispatcher
- aemhttpdaccess
- aemhttpderror
各フォルダーの下に単一のファイルが作成され、追記されます。 このファイルが大きくなりすぎないように、処理と管理はお客様の責任となります。
AEM as a Cloud Service のログのログエントリ形式を参照してください。 ログエントリには、次のログエントリ形式の節で説明するその他のプロパティも含まれます。
Datadog datadog
kind: "LogForwarding"
version: "1"
data:
datadog:
default:
enabled: true
host: "http-intake.logs.datadoghq.eu"
token: "${{DATADOG_API_KEY}}"
tags:
tag1: value1
tag2: value2
考慮事項
- 特定のクラウドプロバイダーとの統合を行わずに、API キーを作成します。
- tags プロパティはオプションです
- AEM ログの場合、Datadog ソースタグは、
aemaccess、aemerror、aemrequest、aemdispatcher、aemhttpdaccessまたはaemhttpderrorのいずれかに設定されます - CDN ログの場合、Datadog ソースタグは、
aemcdnに設定されます - Datadog サービスタグは、
adobeaemcloudに設定されていますが、tags セクションで上書きできます - ログ転送用の適切なインデックスを決定するために、取り込みパイプラインで Datadog タグを使用している場合は、ログ転送 YAML ファイルでこれらのタグが正しく設定されていることを確認します。 タグが欠落していると、パイプラインがタグに依存している場合に、ログの取り込みに成功しないことがあります。
Elasticsearch および OpenSearch elastic
kind: "LogForwarding"
version: "1"
data:
elasticsearch:
default:
enabled: true
host: "example.com"
user: "${{ELASTICSEARCH_USER}}"
password: "${{ELASTICSEARCH_PASSWORD}}"
pipeline: "ingest pipeline name"
考慮事項
- デフォルトでは、ポートは 443 です。 オプションで
portというプロパティで上書きできます - 資格情報には、アカウント資格情報ではなく、デプロイメント資格情報を使用します。 これらは、次の画像のような画面で生成される資格情報です。
- AEM ログの場合、
indexは、aemaccess、aemerror、aemrequest、aemdispatcher、aemhttpdaccessまたはaemhttpderrorのいずれかに設定されます - オプションのパイプラインプロパティは、Elasticsearch または OpenSearch 取り込みパイプラインの名前に設定する必要があります。このパイプラインは、ログエントリを適切なインデックスにルーティングするように設定できます。 パイプラインのプロセッサータイプは script に設定し、スクリプト言語は painless に設定する必要があります。 次に、ログエントリを aemaccess_dev_26_06_2024 などのインデックスにルーティングするサンプルスクリプトスニペットを示します。
def envType = ctx.aem_env_type != null ? ctx.aem_env_type : 'unknown';
def sourceType = ctx._index;
def date = new SimpleDateFormat('dd_MM_yyyy').format(new Date());
ctx._index = sourceType + "_" + envType + "_" + date;
HTTPS https
kind: "LogForwarding"
version: "1"
data:
https:
default:
enabled: true
url: "https://example.com/aem_logs/aem"
authHeaderName: "X-AEMaaCS-Log-Forwarding-Token"
authHeaderValue: "${{HTTPS_LOG_FORWARDING_TOKEN}}"
考慮事項
- URL 文字列には https:// を含める必要があります。そうしないと検証が失敗します。
- URL にはポートを含めることができます。 例えば、
https://example.com:8443/aem_logs/aemのようになります。 URL 文字列にポートが含まれていない場合、ポート 443(デフォルトの HTTPS ポート)が想定されます。
HTTPS CDN ログ https-cdn
Web リクエスト(POST)は、ログエントリの配列である JSON ペイロードを使用して継続的に送信されます。ログエントリ形式について詳しくは、AEM as a Cloud Service のログを参照してください。 その他のプロパティについて詳しくは、次のログエントリ形式の節を参照してください。
また、sourcetype という名前のプロパティもあり、その値は aemcdn に設定されています。
/.well-known/fastly/logging/challenge に送信されたリクエストは、本文にアスタリスク * が含まれ、ステータスコード 200 で応答する必要があります。HTTPS AEM ログ https-aem
AEM ログ(apache/dispacher を含む)の場合、web リクエスト(POST) は、ログエントリの配列である JSON ペイロードを使用して継続的に送信されます。様々なログエントリ形式について詳しくは、AEM as a Cloud Service のログを参照してください。 その他のプロパティについて詳しくは、次のログエントリ形式の節を参照してください。
また、Source-Type という名前のプロパティもあり、その値は次のいずれかに設定されています。
- aemaccess
- aemerror
- aemrequest
- aemdispatcher
- aemhttpdaccess
- aemhttpderror
New Relic Log API newrelic-https
New Relicへのログ転送では、取り込みにNew Relic HTTPS Log APIを利用します。 New RelicへのCDN ログはベータ版です。 アクセスをリクエストするには、aemcs-logforwarding-beta@adobe.comにプログラム IDをメールで送信してください。 有効にする方法については、Amazon S3、Dynatrace、およびNew Relic(ベータ版) 🔗のCDN ログを参照してください。
kind: "LogForwarding"
version: "1"
data:
newRelic:
default:
enabled: true
uri: "https://log-api.newrelic.com/log/v1"
apiKey: "${{NR_API_KEY}}"
AEM ログとCDN ログ(CDN ログはベータ版)の両方を転送するには:
kind: "LogForwarding"
version: "1"
data:
newRelic:
default:
enabled: true
uri: "https://log-api.newrelic.com/log/v1"
apiKey: "${{NR_API_KEY}}"
cdn:
enabled: true
CDN ログのみを転送するには(ベータ版):
kind: "LogForwarding"
version: "1"
data:
newRelic:
default:
enabled: true
uri: "https://log-api.newrelic.com/log/v1"
apiKey: "${{NR_API_KEY}}"
aem:
enabled: false
cdn:
enabled: true
考慮事項
- New Relic では、New Relic アカウントがプロビジョニングされている場所に基づいて、地域固有のエンドポイントを提供します。 アカウントのリージョンのLog API エンドポイントに
uriを設定します(例:米国リージョンのアカウントの場合はhttps://log-api.newrelic.com/log/v1)。 詳しくは、New Relic ドキュメントを参照してください。 apiKeyの場合、ログを受け取るアカウントからNew Relicのライセンスキー(キータイプ INGEST - LICENSE)を使用します。 同じキーがAEM ログとCDN ログに使用されます。- AEM ログの場合、
source属性はaemaccess、aemerror、aemrequest、aemdispatcher、aemhttpdaccess、またはaemhttpderrorのいずれかに設定されます。 CDN ログ (ベータ版)の場合、sourceはaemcdnに設定され、各レコードはすべてのCDN ログプロパティを保持します。 例えば、CDN ログをクエリするには:FROM Log SELECT * WHERE source = 'aemcdn' SINCE 1 hour ago。 - New Relicに送信されたCDN ログエントリ(ベータ版)では、
timestampは数値です。Unix エポックからのリクエスト開始時間(ミリ秒単位)です。 他のログの宛先は、timestampをISO 8601文字列として受け取ります。 - CDN ログ(ベータ版)は、New Relicの取り込みに大幅な量を追加する可能性があります。 Amazon S3、Dynatrace、New Relic(ベータ版)のCDN ログを参照してください。
Dynatrace Log API dynatrace-https
Dynatrace へのログ転送では、ログの取り込みに Dynatrace HTTPS API を使用します。 DynatraceへのCDN ログはベータ版です。 アクセスをリクエストするには、aemcs-logforwarding-beta@adobe.comにプログラム IDをメールで送信してください。 有効にする方法については、Amazon S3、Dynatrace、およびNew Relic(ベータ版) 🔗のCDN ログを参照してください。
トークンには、インジェスト ログ (logs.ingest)のスコープが必要です。 同じトークンがAEM ログとCDN ログに使用されます。
kind: "LogForwarding"
version: "1"
data:
dynatrace:
default:
enabled: true
environmentId: "${{DYNATRACE_ENVID}}"
token: "${{DYNATRACE_TOKEN}}"
AEM ログとCDN ログ(CDN ログはベータ版)の両方を転送するには:
kind: "LogForwarding"
version: "1"
data:
dynatrace:
default:
enabled: true
environmentId: "${{DYNATRACE_ENVID}}"
token: "${{DYNATRACE_TOKEN}}"
cdn:
enabled: true
CDN ログのみを転送するには(ベータ版):
kind: "LogForwarding"
version: "1"
data:
dynatrace:
default:
enabled: true
environmentId: "${{DYNATRACE_ENVID}}"
token: "${{DYNATRACE_TOKEN}}"
aem:
enabled: false
cdn:
enabled: true
考慮事項
- サポートされているのは、Dynatrace SaaS環境のみです。
environmentIdは、環境URLhttps://<environmentId>.live.dynatrace.comのIDです。 URLやホスト名ではなく、IDのみを使用してください。CDN ログの場合は、ドットを含めることはできません。 Dynatrace Managed エンドポイントとActiveGate エンドポイントはサポートされていません。 - 各ログエントリには、
sourceプロパティが含まれます。 AEM ログの場合は、aemaccess、aemerror、aemrequest、aemdispatcher、aemhttpdaccessまたはaemhttpderrorのいずれかです。 CDN ログ (ベータ版)の場合はaemcdnです。 - CDN ログ(ベータ版)は、Dynatraceの取り込みに大幅な量を追加する可能性があります。 Amazon S3、Dynatrace、New Relic(ベータ版)のCDN ログを参照してください。
DynatraceでのCDN ログの検索(ベータ版) dynatrace-cdn
Dynatraceは、各CDN ログエントリをJSON テキストとしてログレコードのcontentに保存し、エントリのtimestampをレコード時間として使用します。 source、url、statusなどのCDN ログプロパティは、個別のログ属性ではありません。 Dynatraceに転送されるAEM ログにも同じことが適用されます。 これにより、以下を実現できます。
- クラシックログビューアのシンプルモードのフィルターは、これらのプロパティでは機能しません。 存在しない属性のフィルターは無視されるので、すべてのログが返されます。
- これらのレコードのログ
statusにはNONEが表示されます。これは、CDNstatusプロパティがログレベルではなくHTTP ステータスコードであるためです。
代わりに、アドバンスドモード(DQL)を使用してください。 過去1時間のCDN ログを検索するには:
fetch logs, from: now() - 1h
| filter matchesPhrase(content, "aemcdn")
CDN ログプロパティを解析し、一部を表示するには:
fetch logs, from: now() - 1h
| parse content, "JSON:cdn"
| filter cdn[source] == "aemcdn"
| fields timestamp, cdn[url], cdn[status], cdn[pop], cdn[cache], cdn[aem_tier]
Splunk splunk
kind: "LogForwarding"
version: "1"
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "aemaacs"
考慮事項
- デフォルトでは、ポートは 443 です。 オプションで
portというプロパティで上書きできます - sourcetype フィールドには、特定のログに応じて、次のいずれかの値が設定されます。aemaccess、aemerror、
aemrequest、aemdispatcher、aemhttpdaccess、aemhttpderror、aemcdn - 必要な IP が許可リストに登録されていてもログが配信されない場合は、Splunk トークンの検証を適用するファイアウォールルールがないことを確認します。 Fastly は、無効な Splunk トークンが意図的に送信される最初の検証ステップを実行します。 ファイアウォールが無効な Splunk トークンとの接続を終了するように設定されている場合、検証プロセスは失敗し、Fastly が Splunk インスタンスにログを配信できなくなります。
sourcetype フィールドの値が変更されていることがあるので、それに応じて調整します。Sumo Logic sumologic
Sumo Logic をデータ取り込み用に設定すると、ホスト、receiverURI、秘密鍵を単一の文字列で提供する「HTTP ソースアドレス」が表示されます。 例:
https://collectors.de.sumologic.com/receiver/v1/http/ZaVnC...
URL の最後のセクション(先頭の / を除く)をコピーし、上記の設定の節で説明したように、CloudManager 秘密鍵環境変数として追加し、設定でその変数を参照する必要があります。 次に例を示します。
kind: "LogForwarding"
version: "1"
data:
sumoLogic:
default:
enabled: true
collectorURL: "https://collectors.de.sumologic.com/receiver/v1/http"
privateKey: "${{SUMOLOGIC_PRIVATE_KEY}}"
index: "aem-logs"
index フィールドの動作は、ログの種類によって異なります。- AEM ログ (Apache/Dispatcherを含む): Sumo Logic Enterprise サブスクリプションがある場合は、
indexで指定されたパーティションにルーティングされます。 エンタープライズ以外のサブスクリプションは、代わりにsumologic_defaultパーティションにルーティングされます。 - CDN ログ:
indexフィールドは無視されます。これは、Sumo Logicに転送されるCDN ログでは、インデックス作成が技術的にサポートされていないためです。 CDN ログは常にsumologic_defaultパーティションにルーティングされます。
Amazon S3、Dynatrace、New RelicのCDN ログ(ベータ版) cdn-opt-in
Amazon S3、Dynatrace、New RelicへのCDN ログ転送はベータ版です。 これらの宛先へのAEM ログ(Apache/Dispatcherを含む)の転送は影響を受けず、リクエストは必要ありません。
CDN ログをいずれかの宛先に転送するには、両方の手順を実行します。
- プログラムへのアクセスをリクエストします。 プログラム IDと使用する宛先をaemcs-logforwarding-beta@adobe.comに電子メールで送信します。 Adobeは、プログラムに対してアクセスが有効になっている場合に応答します。
- 各宛先のCDN ログを有効にします。 アクセスが有効になったら、ログ転送設定の宛先の
cdnブロックにenabled: trueを設定し、設定パイプラインを実行します。 下の例を参照してください。
両方の手順が必要です。
- アクセスだけでは、CDN ログは転送されません。 ほとんどのログ送信先では、有効な
defaultブロックがAEM ログとCDN ログの両方を転送します。 Amazon S3 (awsS3)、Dynatrace (dynatrace)、およびNew Relic (newRelic)の場合、cdnブロックがenabled: trueを明示的に設定すると、CDN ログは のみ に転送されます。 - プログラムに対してアクセスが有効になる前に
cdn.enabled: trueを設定すると、設定はエラーなしでデプロイされますが、CDN ログはこれらの宛先に転送されません。
cdn ブロックは、資格情報を含むdefault ブロックから他のすべてのプロパティを継承するため、enabled: trueは追加する必要がある唯一のプロパティです。
kind: "LogForwarding"
version: "1"
data:
newRelic:
default:
enabled: true
uri: "https://log-api.newrelic.com/log/v1"
apiKey: "${{NR_API_KEY}}"
cdn:
enabled: true
アクセス権を持つプログラムの場合、設定は次のように機能します。
default.enabled: trueのみdefault.enabled: true および cdn.enabled: truedefault.enabled: true および cdn.enabled: falsedefault.enabled: true、aem.enabled: false、cdn.enabled: true他の宛先と同様に、cdn ブロックで設定されたプロパティは、defaultの値を上書きします。 CDN ログのみを転送するには、最終行と同様にaem.enabled: falseを設定します。
CDN ログの転送を停止するには、cdn.enabled: falseを設定し、設定パイプラインを実行します。 その宛先へのCDN ログ転送は、設定がデプロイされたときに停止します。 AEMのログは影響を受けません。
cdn.enabled: trueを要求すると、既存の設定では、予期しない取り込みコストやトラフィックが発生することなく、AEM ログのみを転送し続け、決定する時間を確保できます。default ブロックは、CDN ログも転送します。 これらの宛先のいずれかにAEM ログのみを転送し続けるには、cdn.enabled: falseを設定します。 今すぐ設定できます。その日付の前後で同じ効果があります。CDN ログを有効にする前に、追加ボリュームを推定します。 DynatraceやNew Relicなど、取り込んだボリュームで請求されるベンダーのログは、AEM ログと同じようにCDN ログに課金されます。
ベータ版に関するフィードバックを提供するには、aemcs-logforwarding-beta@adobe.comにメールを送信してください。
ログエントリ形式 log-formats
各ログタイプ(CDN ログ、Apache/Dispatcher を含む AEM ログ)の形式について詳しくは、AEM as a Cloud Service のログを参照してください。 一部のログ宛先では、CDN ログエントリのプロパティを追加または変更します。例えば、New Relicの場合はtimestampの形式を指定します。 宛先🔗をログに記録して、CDN ログエントリを参照してください。
複数のプログラムや環境からのログが同じログの宛先に転送される場合があるので、ログの記事で説明されている出力に加えて、各ログエントリには次のプロパティが含まれます。
- aem_env_id
- aem_env_type
- aem_program_id
- aem_tier
例えば、プロパティには次の値を含めることができます。
aem_env_id: 1242
aem_env_type: dev
aem_program_id: 12314
aem_tier: author
従来のログ転送からの移行 legacy-migration
ログ転送の設定がセルフサービスモデルを通じて実現される前は、お客様がサポートチケットを開くようリクエストされ、アドビが統合を開始していました。
アドビによってそのように設定されたお客様は、ご都合のよいときにセルフサービスモデルに移行できます。 この移行を行う理由がいくつかあります。
- 新しい環境(例:新しい開発環境または RDE)のプロビジョニング。
- 既存の Splunk エンドポイントまたは資格情報に対する変更。
- CDN ログが使用可能になる前にアドビがログ転送を設定しており、CDN ログの受信を希望している。
- 時間的な制約のある変更が必要になる前に、組織が知識を得られるよう、セルフサービスモデルにプロアクティブに適応するという意識的な決定。
移行の準備が整ったら、前の節で説明したように YAML ファイルを設定するだけです。 Cloud Manager 設定パイプラインを使用して、設定を適用する必要がある各環境にデプロイします。
すべての環境に設定をデプロイし、セルフサービスで制御できるようにすることをお勧めしますが、必須ではありません。 そうしないと、アドビが設定した環境とセルフサービスで設定した環境を区別できなくなる場合があります。
sourcetype フィールドの値が変更されていることがあるので、それに応じて調整します。