記錄轉送 log-forwarding
擁有記錄廠商授權或託管記錄產品的客戶可以將AEM記錄(包括Apache/Dispatcher)和CDN記錄轉送至相關聯的記錄目的地。 AEM as a Cloud Service支援下列記錄目的地:
- Azure Blob儲存體
- Datadog
- Elasticsearch或OpenSearch
- HTTPS
- Splunk
以自助方式設定記錄轉送,方法是在Git中宣告設定,並透過Cloud Manager設定管道將其部署到生產(非沙箱)程式中的RDE、開發、中繼和生產環境型別。
AEM和Apache/Dispatcher記錄檔可選擇透過AEM的進階網路基礎結構路由,例如專用輸出IP。
請注意,與傳送至記錄目的地的記錄檔相關聯的網路頻寬,會視為您組織網路I/O使用量的一部分。
本文的結構方式 how-organized
本文章的編排方式如下:
- 設定 — 適用於所有記錄目的地
- 記錄目的地設定 — 每個目的地的格式稍有不同
- 記錄專案格式 — 記錄專案格式的相關資訊
- 進階網路 — 透過專用出口或VPN傳送AEM和Apache/Dispatcher記錄
- 從舊版記錄轉送移轉 — 如何從先前由Adobe設定的記錄轉送移至自助方法
設定 setup
-
建立名為
logForwarding.yaml
的檔案。 它應該包含中繼資料,如設定管道文章中所述(kind 應該設定為LogForwarding
且版本設定為"1"),其設定類似於以下內容(我們使用Splunk作為範例)。code language-none kind: "LogForwarding" version: "1" metadata: envTypes: ["dev"] 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 秘密環境變數。 請務必選取「全部」作為「已套用服務」欄位的下拉式清單值,以便將記錄檔轉送至作者、發佈及預覽層級。
您可以在CDN記錄檔與AEM記錄檔(包括Apache/Dispatcher)之間設定不同的值,方法是在 預設 區塊之後加入額外的 cdn 和/或 aem 區塊,其中的屬性可以覆寫 預設 區塊中定義的屬性;只需要啟用的屬性。 一個可能的使用案例是對CDN記錄使用不同的Splunk索引,如以下範例所示。
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
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記錄或AEM記錄(包括Apache/Dispatcher)的轉送。 例如,若只要轉送CDN記錄檔,即可設定下列專案:
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "AEMaaCS"
aem:
enabled: false
記錄目的地組態 logging-destinations
以下列出支援的記錄目的地的設定以及任何特定考量。
Azure Blob儲存體 azureblob
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
azureBlob:
default:
enabled: true
storageAccountName: "example_acc"
container: "aem_logs"
sasToken: "${{AZURE_BLOB_SAS_TOKEN}}
SAS權杖應該用於驗證。 應從共用存取權杖頁面而非共用存取權杖頁面中建立,並應使用下列設定進行設定:
- 允許的服務:必須選取Blob。
- 允許的資源:必須選取物件。
- 允許的許可權:必須選取「寫入」、「新增」、「建立」。
- 有效的開始和到期日期/時間。
以下是範例SAS權杖設定的熒幕擷圖:
如果記錄檔在先前正常運作後停止傳遞,請檢查您所設定的SAS權杖是否仍然有效,因為它可能已過期。
Azure Blob儲存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儲存體AEM記錄檔 azureblob-aem
AEM記錄(包括Apache/Dispatcher)會顯示在具有以下命名慣例的資料夾下方:
- aemaccess
- aemerror
- aemrequest
- aemdispatcher
- aemhttpdaccess
- aemhttpderror
在每個資料夾下,將建立單一檔案並附加至其中。 客戶應負責處理和管理此檔案,以免檔案變得太大。
請參閱AEM as a Cloud Service的記錄下的記錄專案格式。 記錄專案也會包含以下記錄專案格式區段中提及的其他屬性。
Datadog datadog
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
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"
metadata:
envTypes: ["dev"]
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擷取管線的名稱,可將其設定為將記錄專案路由至適當的索引。 管道的處理器型別必須設定為 指令碼,而且指令碼語言應設定為 無痛苦的。 以下是指令碼片段範例,可將記錄專案路由至索引,例如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"
metadata:
envTypes: ["dev"]
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記錄。 以下Log Entry Formats區段中提及其他屬性。
還有名稱為sourcetype
的屬性,其設定為值aemcdn
。
/.well-known/fastly/logging/challenge
的要求必須在內文中以星號*
回應,且狀態碼為200。HTTPS AEM記錄 https-aem
對於AEM記錄檔(包括apache/dispacher),網路要求(POST)將持續傳送,其包含記錄專案陣列的json裝載,並具有各種記錄專案格式,如AEM as a Cloud Service的記錄中所述。 以下Log Entry Formats區段中提及其他屬性。
也有名為Source-Type
的屬性,其設定為下列其中一個值:
- aemaccess
- aemerror
- aemrequest
- aemdispatcher
- aemhttpdaccess
- aemhttpderror
Splunk splunk
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
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
欄位值可能已變更,因此請適當的調整。記錄專案格式 log-formats
請參閱AEM as a Cloud Service的記錄,以瞭解每個個別記錄型別(CDN記錄檔和包括Apache/Dispatcher在內的AEM記錄檔)的格式。
由於來自多個程式和環境的記錄可能會轉發到相同的記錄目標,除了記錄文章中所述的輸出之外,以下屬性將包含在每個記錄專案中:
- 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
進階網路 advanced-networking
有些組織會選擇限制記錄目的地可接收哪些流量。
對於CDN記錄檔,您可以將IP位址加入允許清單,如fastly檔案 — 公用IP清單中所述。 如果共用IP位址清單太大,請考慮傳送流量至https伺服器或(非Adobe) Azure Blob存放區,其中可寫入邏輯,以將已知IP的記錄傳送至其最終目的地。
對於AEM記錄檔(包括Apache/Dispatcher),如果您已設定進階網路,則可使用advancedNetworking屬性從專用輸出IP位址或透過VPN轉送記錄檔。
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
port: 443
token: "${{SPLUNK_TOKEN}}"
index: "aemaacs"
aem:
advancedNetworking: true
從舊版記錄檔轉送移轉 legacy-migration
在透過自助模型完成記錄轉送設定之前,已要求客戶開啟支援票證,Adobe將在其中啟動整合。
若客戶是透過Adobe以這種方式進行設定,歡迎在方便時調整為自助服務模式。 進行此轉換有幾個原因:
- 已布建新環境(例如,新的開發環境或RDE)。
- 變更您現有的Splunk端點或認證。
- Adobe已在CDN記錄可用之前設定記錄轉送,您想要接收CDN記錄。
- 主動因應自助服務模式的明智決策,讓貴組織在需要進行時效性變動之前便已掌握相關知識。
準備移轉時,只需依照前幾節所述設定YAML檔案即可。 使用Cloud Manager設定管道來部署至應套用設定的每個環境。
我們建議(但非必要)將設定部署到所有環境,以便它們都處於自助控制之下。 如果沒有,您可能會忘記哪些環境已由Adobe設定,哪些是以自助方式設定。
sourcetype
欄位值可能已變更,因此請適當的調整。