Loggvidarebefordran log-forwarding

NOTE
Den här funktionen har inte släppts ännu och vissa loggningsmål är kanske inte tillgängliga vid tidpunkten för lanseringen. Under tiden kan du öppna en supportbiljett för att vidarebefordra loggar till Splunk, vilket beskrivs i loggningsartikeln.

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

  1. Skapa följande mapp- och filstruktur i den översta mappen i ditt projekt i Git:

    code language-none
    config/
         logForwarding.yaml
    
  2. 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
    
  3. 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 SAS-tokenkonfiguration

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:

Elastic deployment credentials

  • 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.

NOTE
Innan den första CDN-loggposten skickas måste HTTP-servern slutföra en engångskontroll: en begäran som skickas till sökvägen /.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

NOTE
Den här funktionen är ännu inte klar för tidiga användare.

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
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab