Loggvidarebefordran log-forwarding
Kunder som har en licens hos en loggningsleverantör eller som är värd för en loggningsprodukt kan få AEM loggar (inklusive Apache/Dispatcher) och CDN-loggar vidarebefordrade till den associerade loggningsdestinationen. AEM as a Cloud Service stöder följande loggningsmål:
- Azure Blob Storage
- Datadog
- Elasticsearch eller OpenSearch
- HTTPS
- Splunk
Loggvidarebefordran konfigureras på ett självbetjäningssätt genom att en konfiguration deklareras i Git och distribueras via Cloud Manager Config Pipeline till typerna RDE, dev, stage och production i produktionsprogram (ej sandbox).
Det finns ett alternativ för att dirigera loggarna AEM och Apache/Dispatcher via AEM avancerad nätverksinfrastruktur, som dedikerad IP-adress för utgångar.
Observera att den nätverksbandbredd som är associerad med loggar som skickas till loggningsmålet räknas som en del av organisationens I/O-användning i nätverket.
Hur den här artikeln ordnas how-organized
Den här artikeln är organiserad på följande sätt:
- Inställningar - gemensamma för alla loggningsmål
- Målkonfigurationer för loggning - varje mål har ett något annorlunda format
- Loggpostformat - information om loggpostformat
- Avancerade nätverk - skicka AEM- och Apache/Dispatcher-loggar via en dedikerad utgång eller via ett VPN
- Migrera från äldre vidarebefordran av loggar - gå från vidarebefordran av loggfiler som tidigare konfigurerats av Adobe till självbetjäningsmetoden
Inställningar setup
-
Skapa en fil med namnet
logForwarding.yaml
. Den ska innehålla metadata, enligt beskrivningen i config pipeline-artikeln (kind ska anges tillLogForwarding
och versionen ska anges till "1"), med en konfiguration som liknar den nedan (vi använder Splunk som exempel).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"
-
Placera filen någonstans under en mapp på den översta nivån med namnet config eller liknande, enligt beskrivningen i Använda konfigurationsförlopp.
-
För andra miljötyper än RDE (som använder kommandoradsverktyg) kan du skapa en riktad distributionskonfigurationspipeline i Cloud Manager, vilket det här avsnittet refererar till. Observera att fullständiga stackpipelines och webbskiktspipelines inte distribuerar konfigurationsfilen.
-
Distribuera konfigurationen.
Tokens i konfigurationen (till exempel ${{SPLUNK_TOKEN}}
) representerar hemligheter som inte ska lagras i Git. Deklarera dem i stället som Cloud Manager Hemliga miljövariabler. Välj Alla som listvärde för fältet Tjänst används, så att loggarna kan vidarebefordras till författare, publicering och förhandsgranskningsnivåer.
Det går att ange olika värden mellan CDN-loggar och AEM (inklusive Apache/Dispatcher) genom att inkludera ytterligare ett cdn- och/eller aem -block efter default -blocket, där egenskaper kan åsidosätta de som definieras i default -blocket. Det krävs bara den aktiverade egenskapen. Ett möjligt användningsexempel kan vara att använda ett annat Splunk-index för CDN-loggar, vilket visas i exemplet nedan.
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"
Ett annat scenario är att inaktivera vidarebefordran av CDN-loggar eller AEM (inklusive Apache/Dispatcher). Om du till exempel bara vill vidarebefordra CDN-loggarna kan du konfigurera följande:
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
Konfiguration för loggningsmål logging-destinations
Konfigurationer för loggningsmål som stöds listas nedan tillsammans med eventuella särskilda överväganden.
Azure Blob Storage azureblob
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
azureBlob:
default:
enabled: true
storageAccountName: "example_acc"
container: "aem_logs"
sasToken: "${{AZURE_BLOB_SAS_TOKEN}}
En SAS-token bör användas för autentisering. Den ska skapas från signatursidan för delad åtkomst, i stället för på tokensidan för delad åtkomst, och ska konfigureras med följande inställningar:
- Tillåtna tjänster: Blobb måste väljas.
- Tillåtna resurser: Objektet måste markeras.
- Tillåtna behörigheter: Skriv, Lägg till, Skapa måste vara markerat.
- Ett giltigt start- och förfallodatum/-tid.
Här följer en skärmbild av en exempelkonfiguration för SAS-token:
Om loggarna inte har levererats efter att de tidigare fungerat korrekt kontrollerar du om den SAS-token som du konfigurerade fortfarande är giltig eftersom den kan ha gått ut.
Azure Blob Storage CDN-loggar azureblob-cdn
Var och en av de globalt distribuerade loggningsservrarna skapar en ny fil var sjätte sekund, under mappen aemcdn
. När filen har skapats läggs den inte längre till. Filnamnsformatet är YYY-MM-DDThhss.sss-uniqueid.log. Exempel: 2024-03-04T10:00:00.000-WnFWYN9BpOUs2aOVn4ee.log.
Exempel:
aemcdn/
2024-03-04T10:00:00.000-abc.log
2024-03-04T10:00:00.000-def.log
Och sedan 30 sekunder:
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
Varje fil innehåller flera json-loggposter, var och en på en separat rad. Loggpostformaten beskrivs under Loggning för AEM as a Cloud Service och varje loggpost innehåller även de ytterligare egenskaper som anges i avsnittet Loggpostformat nedan.
Loggar för Azure Blob Storage-AEM azureblob-aem
AEM (inklusive Apache/Dispatcher) visas under en mapp med följande namnkonvention:
- aemaccess
- aemerror
- aemrequest
- aemdispatcher
- aemhttpdaccess
- aemhttpderror
Under varje mapp skapas en enda fil och läggs till i den. Kunderna ansvarar för att bearbeta och hantera den här filen så att den inte växer för stor.
Se loggpostformaten under Loggning för AEM as a Cloud Service. Loggposterna innehåller även de ytterligare egenskaper som nämns i avsnittet Loggpostformat nedan.
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
Att tänka på:
- Skapa en API-nyckel, utan någon integrering med en viss molnleverantör.
- Taggegenskapen är valfri
- För AEM loggar är datakälltaggen för DataDig inställd på något av
aemaccess
,aemerror
,aemrequest
,aemdispatcher
,aemhttpdaccess
elleraemhttpderror
- För CDN-loggar är datakällkoden
aemcdn
angiven för Datadog - Datadoggens servicemärke är inställd på
adobeaemcloud
, men du kan skriva över den i taggavsnittet - Om din pipeline för dataöverföring använder datadaggar för att fastställa lämpligt index för vidarebefordringsloggar kontrollerar du att dessa taggar är korrekt konfigurerade i YAML-filen för loggvidarebefordran. Taggar som saknas kan förhindra att loggen kan tas in om pipeline är beroende av dem.
Elasticsearch och 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"
Att tänka på:
- Som standard är porten 443. Den kan åsidosättas med en egenskap med namnet
port
- För autentiseringsuppgifter måste du använda distributionsuppgifter i stället för kontoautentiseringsuppgifter. Detta är de autentiseringsuppgifter som genereras på en skärm som kan likna den här bilden:
- För AEM loggar är
index
inställt på något avaemaccess
,aemerror
,aemrequest
,aemdispatcher
,aemhttpdaccess
elleraemhttpderror
- Den valfria pipeline-egenskapen ska anges till namnet på importflödet för Elasticsearch eller OpenSearch, som kan konfigureras för att dirigera loggposten till rätt index. Pipelinens processortyp måste anges till script och skriptspråket ska anges till smärtfritt. Här följer ett exempel på ett skriptfragment som dirigerar loggposter till ett index som 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}}"
Att tänka på:
- URL-strängen måste innehålla https://, annars misslyckas valideringen.
- URL:en kan innehålla en port. Exempel:
https://example.com:8443/aem_logs/aem
. Om ingen port ingår i URL-strängen antas port 443 (standard-HTTPS-port).
HTTPS CDN-loggar https-cdn
Webbförfrågningar (POST) skickas kontinuerligt, med en JSON-nyttolast som är en matris med loggposter, med loggpostformatet som beskrivs under Loggning för AEM as a Cloud Service. Ytterligare egenskaper anges i avsnittet Loggpostformat nedan.
Det finns också en egenskap med namnet sourcetype
som är inställd på värdet aemcdn
.
/.well-known/fastly/logging/challenge
måste svara med en asterisk *
i brödtexten och 200-statuskoden.HTTPS-AEM https-aem
För AEM (inklusive apache/disacher) skickas webbförfrågningar (POST) kontinuerligt, med en JSON-nyttolast som är en matris med loggposter, med de olika loggpostformaten som beskrivs under Loggning för AEM as a Cloud Service. Ytterligare egenskaper anges i avsnittet Loggpostformat nedan.
Det finns också en egenskap med namnet Source-Type
som är inställd på något av följande värden:
- 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"
Att tänka på:
- Som standard är porten 443. Den kan åsidosättas med en egenskap med namnet
port
. - Källtypsfältet kommer att ha ett av följande värden, beroende på den specifika loggen: aemaccess, aemerror,
aemrequest, aemdispatcher, aemhttpdaccess, aemhttpderror, aemcdn - Om de nödvändiga IP-adresserna har tillåtslista och loggarna fortfarande inte levereras kontrollerar du att det inte finns några brandväggsregler som tvingar verifiering av skräpposttoken. Utför snabbt ett inledande valideringssteg där en ogiltig Splunk-token skickas avsiktligt. Om brandväggen är inställd på att avsluta anslutningar med ogiltiga Splunk-tokens, kommer valideringsprocessen att misslyckas, vilket förhindrar att loggar levereras till Splunk-instansen.
sourcetype
som skickas till ditt Splunk-index ha ändrats, så justera därefter.Loggpostformat log-formats
Se Loggning för AEM as a Cloud Service för formatet för respektive loggtyp (CDN-loggar och AEM loggar inklusive Apache/Dispatcher).
Eftersom loggar från flera program och miljöer kan vidarebefordras till samma loggningsmål, förutom de utdata som beskrivs i loggningsartikeln, kommer följande egenskaper att finnas i varje loggpost:
- aem_env_id
- aem_env_type
- aem_program_id
- aem_tier
Egenskaperna kan till exempel ha följande värden:
aem_env_id: 1242
aem_env_type: dev
aem_program_id: 12314
aem_tier: author
Avancerat nätverksbyggande advanced-networking
Vissa organisationer väljer att begränsa vilken trafik som kan tas emot av loggningsdestinationerna.
För CDN-loggen kan du tillåta att IP-adresserna listas enligt beskrivningen i Snabbt dokumentation - offentlig IP-lista. Om listan med delade IP-adresser är för stor kan du skicka trafik till en https-server eller (ej Adobe) Azure Blob Store där logik kan skrivas för att skicka ut loggarna från en känd IP-server till den slutliga målplatsen.
Om du har konfigurerat avancerat nätverk för AEM (inklusive Apache/Dispatcher) kan du använda egenskapen advancedNetworking för att vidarebefordra dem från en dedikerad IP-adress eller via ett 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
Migrerar från äldre loggvidarebefordran legacy-migration
Innan konfigurationen av loggvidarebefordran gjordes via en självbetjäningsmodell ombads kunderna att öppna supportärenden, där Adobe initierade integreringen.
Kunder som har konfigurerats på det sättet av Adobe får gärna anpassa sig till självbetjäningsmodellen när det passar. Det finns flera skäl till att göra den här övergången:
- En ny miljö (t.ex. en ny dev-miljö eller RDE) har etablerats.
- Ändrar din befintliga Splunk-slutpunkt eller autentiseringsuppgifter.
- Adobe hade konfigurerat vidarebefordran av loggar innan CDN-loggarna var tillgängliga och du vill få CDN-loggar.
- Ett medvetet beslut att aktivt anpassa sig till den självbetjäningsmodellen så att organisationen har kunskapen redan innan en tidskänslig förändring är nödvändig.
När du är redo att migrera konfigurerar du bara YAML-filen enligt beskrivningen i de föregående avsnitten. Använd Cloud Manager konfigurationsflöde för att distribuera till var och en av de miljöer där konfigurationen ska användas.
Vi rekommenderar, men behöver inte göra det, att en konfiguration distribueras till alla miljöer så att de alla styrs av självbetjäning. Annars kanske du glömmer vilka miljöer som har konfigurerats av Adobe jämfört med de som konfigurerats på ett självbetjäningssätt.
sourcetype
som skickades till ditt Splunk-index kan ha ändrats, så justera därefter.