日志转发 log-forwarding
如果客户拥有带日志记录供应商的许可证或托管日志记录产品,则可以将AEM日志(包括Apache/Dispatcher)和CDN日志转发到关联的日志记录目标。 AEM as a Cloud Service支持以下日志记录目标:
[1] CDN日志转发到Amazon S3、Dynatrace和New Relic的功能处于测试阶段。 若要请求访问,请使用您的项目ID向aemcs-logforwarding-beta@adobe.com发送电子邮件。 启用访问后,您还可以为具有cdn.enabled: true的每个目标打开CDN日志。 查看Amazon S3、Dynatrace和New Relic (测试版)的CDN日志。
日志转发以自助方式配置,方法是在Git中声明配置,并且可以通过Cloud Manager配置管道部署到开发、暂存和生产环境类型。 可以使用调用命令行工具将配置文件部署到快速开发环境(RDE)。
AEM和Apache/Dispatcher日志可以选择通过AEM的高级网络基础架构(如专用出口IP)进行路由。 CDN日志始终直接从CDN发送,不使用高级联网。 请参阅传输和高级网络。
本文的结构 how-organized
本文按以下方式组织:
- 设置 — 适用于所有日志记录目标
- 传输和高级网络 — 在创建日志记录配置之前,应考虑网络设置
- 双方TLS (mTLS)身份验证(测试版) — 使用客户端证书向Splunk、Elasticsearch/OpenSearch和HTTPS目标进行身份验证
- 记录目标配置 — 每个目标的格式略有不同
- Amazon S3、Dynatrace和New Relic的CDN日志(测试版) — 如何请求访问这些目标的CDN日志并启用它们
- 日志条目格式 — 有关日志条目格式的信息
- 从旧版日志转发迁移 — 如何从Adobe之前设置的日志转发迁移到自助方法
设置 setup
-
创建名为
logForwarding.yaml的文件。 它应包含元数据,如配置管道文章中所述(kind应设置为LogForwarding,版本应设置为“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 块中定义的属性;只需要启用的属性。 一个可能的用例可能是对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日志。另一种方法是禁用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),如果您已配置高级网络,则可以使用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日志直接从CDN (Fastly)发送,而不是从AEM as a Cloud Service发送。 这适用于每个日志记录目标:
- CDN日志从Fastly的共享IP地址范围发送,发布在https://api.fastly.com/public-ip-list。 绝不会从您的专用出口IP地址发送它们。
advancedNetworking属性仅适用于AEM日志(包括Apache/Dispatcher)。 它对CDN日志没有影响。 如果设置了advancedNetworking并为同一目标启用了CDN日志转发,则将部署配置并警告作为提醒。- 如果您的日志记录目标仅接受来自特定IP地址的流量,则除了AEM日志的专用出口IP地址之外,还向其允许列表添加 所有 的Fastly已发布的IPv4和IPv6范围。 仅允许专用出口IP地址的目标不会接收CDN日志。
- Fastly的IP地址范围会随着时间的推移而改变,有时会在几周内改变。 定期查看已发布的列表并使允许列表保持最新。
- Amazon S3对CDN日志还有其他注意事项。 查看Amazon S3 CDN日志。
如果共享IP地址列表太大而无法列入允许列表,请考虑将CDN日志发送到https服务器或(非Adobe)Azure Blob存储区,其中可以写入逻辑以将已知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— 可选。 CA证书(PEM格式),用于验证目标的服务器证书。 它可以包含多个证书,如证书链。 当服务器证书由专用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}},不能是其他内容。 直接放在文件中的证书或密钥文本被拒绝。 - 将每个密钥声明为Cloud Manager 密钥环境变量,如设置中所述。 粘贴完整的PEM文本,包括
-----BEGIN和-----END行。 如果将值粘贴到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)-----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日志,请将mtls块放在aem或cdn块中,而不是default。
在部署可启用CDN日志转发到目标的配置后,可能需要几分钟才能到达第一个CDN日志。 对于HTTPS目标,只有在服务器完成HTTPS中描述的一次性质询后,CDN日志投放才会启动。 质询请求随同一客户端证书一起发送,因此您的服务器也必须接受质询路径上的该证书。
证书轮换和到期 mtls-rotation
要轮换证书,请更新包含证书的Cloud Manager机密环境变量(如果密钥已更改,则更新密钥),然后重新运行配置管道。 如果日志转发配置文件本身未更改,则也需对其进行更改,以便再次应用配置。 例如,将新值存储在新的机密环境变量中,并在mtls块中引用这些名称。
您还可能在客户端证书过期前21天收到主动操作中心通知。 自行跟踪证书到期日期,而不是依赖此通知。
记录目标配置 logging-destinations
下面列出了受支持的日志记录目标的配置以及任何特定注意事项。
Amazon S3 amazons3
Amazon S3的CDN日志处于测试阶段。 若要请求访问,请使用您的项目ID向aemcs-logforwarding-beta@adobe.com发送电子邮件。 请参阅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日志转发器,您需要为AWS IAM用户预配置用于访问S3存储段的适当策略。 有关如何创建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压缩。 每个文件包含多个日志条目,每行一个JSON对象。 这些条目的属性与写入Azure Blob存储的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中国地区。
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存储 azureblob
kind: "LogForwarding"
version: "1"
data:
azureBlob:
default:
enabled: true
storageAccountName: "example_acc"
container: "aem_logs"
sasToken: "${{AZURE_BLOB_SAS_TOKEN}}
SAS令牌应该用于身份验证。 它应该从共享访问签名页面而不是共享访问令牌页面创建,并且应该使用以下设置进行配置:
- 允许的服务:必须选择Blob。
- 允许的资源:必须选择对象和容器。
- 允许的权限:必须选择“读取”、“写入”、“添加”、“列表”、“创建”。
- 有效的开始和到期日期/时间。
以下是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密钥,而不与特定的云提供商进行任何集成。
- 标记属性是可选的
- 对于AEM日志,Datadog源标记设置为
aemaccess、aemerror、aemrequest、aemdispatcher、aemhttpdaccess或aemhttpderror之一 - 对于CDN日志,Datadog源标记设置为
aemcdn - Datadog服务标记设置为
adobeaemcloud,但您可以在标记部分中覆盖它 - 如果您的摄取管道使用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之一 - 可选的pipeline属性应设置为Elasticsearch或OpenSearch摄取管道的名称,可以将其配置为将日志条目路由到相应的索引。 管道的处理器类型必须设置为script,脚本语言应设置为无痛苦。 以下是将日志条目路由到索引(如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日志API newrelic-https
日志转发到New Relic可利用New Relic HTTPS日志API进行摄取。 New Relic的CDN日志处于测试阶段。 若要请求访问,请使用您的项目ID向aemcs-logforwarding-beta@adobe.com发送电子邮件。 请参阅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帐户配置位置提供特定于区域的端点。 将
uri设置为您帐户所在地区的日志API终结点,例如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纪元以来的请求开始时间(以毫秒为单位)。 其他日志记录目标以ISO 8601字符串形式接收timestamp。 - CDN日志(测试版)可能会为您的New Relic引入添加大量流量。 查看Amazon S3、Dynatrace和New Relic (测试版)的CDN日志。
Dynatrace日志API dynatrace-https
将日志转发到Dynatrace会利用Dynatrace HTTPS API进行摄取。 Dynatrace的CDN日志处于测试阶段。 若要请求访问,请使用您的项目ID向aemcs-logforwarding-beta@adobe.com发送电子邮件。 请参阅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。 仅使用ID,而不使用URL或主机名:对于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用作记录时间。 CDN日志属性(如source、url和status)不是单独的日志属性。 这同样适用于转发到Dynatrace的AEM日志。 因此:
- 传统日志查看器简单模式下的筛选器不适用于这些属性。 将忽略不存在的属性上的过滤器,因此将返回所有日志。
- 这些记录的日志
status显示NONE,因为CDNstatus属性是HTTP状态代码,而不是日志级别。
请改用高级模式(DQL)。 要查找过去一小时的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逻辑 sumologic
在配置Sumo Logic进行数据摄取时,您会看到“HTTP Source地址”,该地址在单个字符串中提供主机、接收者URI和私钥。 例如:
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):路由到
index指定的分区,前提是您具有Sumo Logic Enterprise订阅。 非企业订阅路由到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日志转发到以下目标之一,请完成以下两个步骤:
- 请求访问您的程序。 向aemcs-logforwarding-beta@adobe.com发送电子邮件,其中包含您的项目ID以及要使用的目标。 为您的项目启用了访问权限时,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: truedefault.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)对CDN日志的计费方式与AEM日志相同。
若要提供测试版的反馈,请发送电子邮件至aemcs-logforwarding-beta@adobe.com。
日志条目格式 log-formats
有关每种日志类型(CDN日志和包括Apache/Dispatcher的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
在通过自助模型实现日志转发配置之前,已请求客户打开支持工单,Adobe将在其中启动集成。
欢迎已由Adobe以这种方式设置的客户在方便时改用自助模式。 进行此过渡有几个原因:
- 已配置新环境(例如,新的开发环境或RDE)。
- 更改您现有的Splunk端点或凭据。
- Adobe已在CDN日志可用之前设置日志转发,您想要接收CDN日志。
- 有意识地决定主动适应自助服务模式,使您的组织甚至在对时间敏感的更改之前就拥有了知识。
准备迁移时,只需按照前几节所述配置YAML文件即可。 使用Cloud Manager配置管道部署到应应用配置的每个环境。
建议将配置部署到所有环境,以便所有环境都处于自助控制状态,但不是必需的。 如果没有,您可能会忘记哪些环境已由Adobe配置,哪些是自助式配置的。
sourcetype字段的值可能已更改,因此请进行相应调整。