Loggvidarebefordran log-forwarding
Kunder som har en licens för en loggningsleverantör eller värd för en loggningsprodukt kan ha AEM loggar (inklusive Apache/Dispatcher) och CDN-loggar vidarebefordrade till associerade loggningsmål. 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 Configuration Pipeline till dev-, stage- och produktionsmiljötyper i produktionsprogram (ej sandlådeprogram).
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
Inställningar setup
-
Skapa följande mapp- och filstruktur i den översta mappen i ditt projekt i Git:
code language-none config/ logForwarding.yaml
-
logForwarding.yaml
ska innehålla metadata och en konfiguration som liknar följande format (Splunk används 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"
Parametern kind ska anges till
LogForwarding
. Versionen ska anges till schemaversionen, som är 1.Tokens i konfigurationen (till exempel
${{SPLUNK_TOKEN}}
) representerar hemligheter som inte ska lagras i Git. Deklarera dem i stället som Cloud Manager miljövariabler av typen secrets. 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.
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" 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:
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" aem: enabled: false
-
För andra miljötyper än RDE (som för närvarande inte stöds) skapar du en riktad distributionskonfigurationspipeline i Cloud Manager. Observera att fullständiga stackpipelines och webbskiktspipelines inte distribuerar konfigurationsfilen.
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:
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 i loggningsartikeln och varje loggpost innehåller även de ytterligare egenskaper som nämns 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
- aemdispatcher
- httpdaccess
- httpderror
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 i loggningsartikeln. 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
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å:
- 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:
- 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:8443/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. Om ingen port ingår i URL-strängen antas port 443 (standard-HTTPS-port).
- Om du vill använda en annan port än 443 anger du den som en del av URL:en.
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 i loggningsartikeln. 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 i loggningsartikeln. Ytterligare egenskaper anges i avsnittet Loggpostformat nedan.
Det finns också en egenskap med namnet sourcetype
som är inställd på något av följande värden:
- aemaccess
- aemerror
- aemdispatcher
- httpdaccess
- httpderror
Splunk splunk
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "AEMaaCS"
Loggpostformat log-formats
I den allmänna loggningsartikeln finns information om 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 den här artikeln. Om listan med delade IP-adresser är för stor kan du skicka trafik till ett (ej Adobe) Azure Blob Store där logik kan skrivas för att skicka ut loggarna från en dedikerad IP-adress till deras slutliga mål.
För AEM loggar (inklusive Apache/Dispatcher) kan du konfigurera vidarebefordran av loggar så att de går igenom avancerat nätverk. Se mönstren för de tre avancerade nätverkstyperna nedan, som använder en valfri port
-parameter, tillsammans med parametern host
.
Flexibla portägg flex-port
Om loggtrafiken går till en annan port än 443 (t.ex. 8443 nedan) ska du konfigurera avancerade nätverk så här:
{
"portForwards": [
{
"name": "splunk-host.example.com",
"portDest": 8443, # something other than 443
"portOrig": 30443
}
]
}
och konfigurera bildspelsfilen så här:
kind: "LogForwarding"
version: "1"
data:
splunk:
default:
host: "${{AEM_PROXY_HOST}}"
token: "${{SomeToken}}"
port: 30443
index: "index_name"
Dedikerad egress-IP dedicated-egress
Om loggtrafiken behöver komma ut från en dedikerad IP-adress kan du konfigurera avancerade nätverk så här:
{
"portForwards": [
{
"name": "splunk-host.example.com",
"portDest": 443,
"portOrig": 30443
}
]
}
och konfigurera bildspelsfilen så här:
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
index: "index_name"
token: "${{SPLUNK_TOKEN}}"
aem:
enabled: true
host: "${{AEM_PROXY_HOST}}"
port: 30443
cdn:
enabled: true
host: "splunk-host.example.com"
port: 443
VPN vpn
Om loggtrafiken behöver gå via ett VPN-nätverk kan du konfigurera avancerade nätverk så här:
{
"portForwards": [
{
"name": "splunk-host.example.com",
"portDest": 443,
"portOrig": 30443
}
]
}
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
index: "index_name"
token: "${{SPLUNK_TOKEN}}"
aem:
enabled: true
host: "${{AEM_PROXY_HOST}}"
port: 30443
cdn:
enabled: true
host: "splunk-host.example.com"
port: 443