Inoltro del registro
- Argomenti:
- Sviluppo
Creato per:
- Amministratore
- Sviluppatore
I clienti con una licenza di un fornitore di registrazione o che ospitano un prodotto di registrazione possono inoltrare i registri di AEM (incluso Apache/Dispatcher) e i registri CDN alla destinazione di registrazione associata. AEM as a Cloud Service supporta le seguenti destinazioni di registrazione:
- Amazon S3 (versione beta privata, vedi la nota sotto)
- Archiviazione BLOB di Azure
- Datadog
- Elasticsearch o OpenSearch
- HTTPS
- Splunk
- Sumo Logic (versione beta privata, vedi nota sotto)
L’inoltro dei registri viene configurato in modo self-service dichiarando una configurazione in Git e può essere distribuito tramite pipeline di configurazione Cloud Manager ai tipi di ambiente di sviluppo, staging e produzione. Il file di configurazione può essere implementato negli ambienti di sviluppo rapido (RDE, Rapid Developement Environments) utilizzando gli strumenti della riga di comando.
È disponibile un’opzione per instradare i registri AEM e Apache/Dispatcher tramite l’infrastruttura di rete avanzata di AEM, ad esempio l’IP in uscita dedicato.
La larghezza di banda di rete associata ai registri inviati alla destinazione di registrazione è considerata parte dell'utilizzo di I/O di rete dell'organizzazione.
Struttura di questo articolo
Questo articolo è organizzato nel modo seguente:
- Configurazione: comune per tutte le destinazioni di registrazione
- Trasporto e reti avanzate: prima di creare la configurazione di registrazione, è necessario considerare la configurazione della rete
- Registrazione delle configurazioni di destinazione: ogni destinazione ha un formato leggermente diverso
- Formati delle voci di registro: informazioni sui formati delle voci di registro
- Migrazione dall’inoltro di registro legacy: come passare dall’inoltro di registro precedentemente configurato da Adobe all’approccio self-service
Configurazione
-
Creare un file denominato
logForwarding.yaml
. Deve contenere metadati, come descritto nell'articolo config pipeline (kind deve essere impostato suLogForwarding
e la versione impostata su "1"), con una configurazione simile alla seguente (ad esempio, si utilizza Splunk).kind: "LogForwarding" version: "1" metadata: envTypes: ["dev"] data: splunk: default: enabled: true host: "splunk-host.example.com" token: "${{SPLUNK_TOKEN}}" index: "AEMaaCS"
-
Posizionare il file in una cartella di primo livello denominata config o simile, come descritto in Utilizzo delle pipeline di configurazione.
-
Per tipi di ambiente diversi da RDE (che utilizza strumenti della riga di comando), creare una pipeline di configurazione della distribuzione di destinazione in Cloud Manager, come indicato da questa sezione. Si noti che le pipeline full stack e le pipeline a livello web non distribuiscono il file di configurazione.
-
Distribuisci la configurazione.
I token nella configurazione (ad esempio ${{SPLUNK_TOKEN}}
) rappresentano segreti, che non devono essere memorizzati in Git. Dichiarale invece come Variabili di ambiente segrete di Cloud Manager. Assicurarsi di selezionare Tutti come valore a discesa per il campo Servizio applicato, in modo che i registri possano essere inoltrati ai livelli di authoring, pubblicazione e anteprima.
È possibile impostare valori diversi tra i registri CDN e i registri AEM (incluso Apache/Dispatcher), includendo un blocco cdn e/o aem aggiuntivo dopo il blocco default, in cui le proprietà possono ignorare quelle definite nel blocco default. È richiesta solo la proprietà abilitata. Un possibile caso di utilizzo potrebbe essere l’utilizzo di un indice Splunk diverso per i registri CDN, come illustrato nell’esempio seguente.
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"
Un altro scenario consiste nel disabilitare l’inoltro dei registri CDN o dei registri di AEM (incluso Apache/Dispatcher). Ad esempio, per inoltrare solo i registri CDN, puoi configurare quanto segue:
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
Trasporto e reti avanzate
Alcune organizzazioni scelgono di limitare il traffico che può essere ricevuto dalle destinazioni di registrazione, altre potrebbero richiedere l’uso di porte diverse da HTTPS (443). In tal caso La rete avanzata dovrà essere configurata prima di distribuire la configurazione di inoltro del registro.
Utilizzare la tabella seguente per verificare quali sono i requisiti per la configurazione avanzata di rete e registrazione in base al fatto che si utilizzi o meno la porta 443 e che i registri debbano essere visualizzati da un indirizzo IP fisso.
<html>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
text-align: center;
}
</style>
Per i registri di AEM (incluso Apache/Dispatcher), se hai configurato Rete avanzata, puoi utilizzare la proprietà aem.advancedNetworking
per inoltrarli da un indirizzo IP in uscita dedicato o tramite una VPN.
L’esempio seguente mostra come configurare la registrazione su una porta HTTPS standard con rete avanzata.
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
Per i registri CDN, puoi inserire nell'elenco Consentiti gli indirizzi IP, come descritto in Documentazione Fastly - Elenco IP pubblici. Se l’elenco di indirizzi IP condivisi è troppo grande, puoi inviare traffico a un server https o a un archivio BLOB di Azure (non Adobe) in cui è possibile scrivere una logica per inviare i registri da un IP noto alla destinazione finale.
Registrazione della configurazione di destinazione
Di seguito sono elencate le configurazioni per le destinazioni di registrazione supportate, insieme a eventuali considerazioni specifiche.
Amazon S3
kind: "LogForwarding"
version: "1.0"
data:
awsS3:
default:
enabled: true
region: "your-bucket-region"
bucket: "your_bucket_name"
accessKey: "${{AWS_S3_ACCESS_KEY}}"
secretAccessKey: "${{AWS_S3_SECRET_ACCESS_KEY}}"
Per utilizzare il server di inoltro registro S3, è necessario preconfigurare un utente IAM di AWS con i criteri appropriati per l’accesso al bucket S3. Per informazioni su come creare le credenziali utente IAM, consulta qui.
I criteri IAM devono consentire all'utente di utilizzare s3:putObject
. Ad esempio:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::your_bucket_name/*"
}]
}
Consulta qui per ulteriori informazioni sull'implementazione dei criteri bucket di AWS.
Archiviazione BLOB di Azure
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
azureBlob:
default:
enabled: true
storageAccountName: "example_acc"
container: "aem_logs"
sasToken: "${{AZURE_BLOB_SAS_TOKEN}}
Utilizzare un token SAS per l'autenticazione. Deve essere creato dalla pagina della firma di accesso condiviso, anziché dalla pagina del token di accesso condiviso, e deve essere configurato con le seguenti impostazioni:
- Servizi consentiti: è necessario selezionare BLOB.
- Risorse consentite: è necessario selezionare l’oggetto.
- Autorizzazioni consentite: è necessario selezionare Scrivi, Aggiungi o Crea.
- Una data/ora di inizio e di scadenza valida.
Ecco una schermata di esempio della configurazione del token SAS:
Se i registri non vengono più consegnati dopo il corretto funzionamento precedente, verificare se il token SAS configurato è ancora valido, in quanto potrebbe essere scaduto.
Registri CDN archiviazione BLOB di Azure
Ogni server di registrazione distribuito a livello globale produrrà un nuovo file ogni pochi secondi, nella cartella aemcdn
. Una volta creato, il file non verrà più aggiunto a. Il formato del nome file è YYY-MM-DDThhss.sss-uniqueid.log. Ad esempio, 2024-03-04T10:00:00.000-WnFWYN9BpOUs2aOVn4ee.log.
Ad esempio, a un certo punto del tempo:
aemcdn/
2024-03-04T10:00:00.000-abc.log
2024-03-04T10:00:00.000-def.log
E poi 30 secondi dopo:
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
Ogni file contiene più voci di registro json, ciascuna su una riga separata. I formati delle voci di registro sono descritti in Registrazione per AEM as a Cloud Service e ogni voce di registro include anche le proprietà aggiuntive menzionate nella sezione Formati di voce di registro seguente.
Registri AEM archiviazione BLOB di Azure
I registri di AEM (incluso Apache/Dispatcher) vengono visualizzati sotto una cartella con la seguente convenzione di denominazione:
- aemaccess
- aemerror
- aemrequest
- aemdispatcher
- aemhttpdaccess
- aemhttpderror
In ogni cartella verrà creato un singolo file che verrà aggiunto a. I clienti sono responsabili dell’elaborazione e della gestione di questo file, in modo che non aumenti troppo.
Consulta i formati delle voci di registro in Registrazione per AEM as a Cloud Service. Le voci di registro includeranno anche le proprietà aggiuntive menzionate nella sezione Formati di voce di registro seguente.
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
Considerazioni:
- Crea una chiave API, senza alcuna integrazione con un provider cloud specifico.
- La proprietà tags è facoltativa
- Per i registri di AEM, il tag di origine Datadog è impostato su uno dei seguenti valori:
aemaccess
,aemerror
,aemrequest
,aemdispatcher
,aemhttpdaccess
oaemhttpderror
- Per i registri CDN, il tag di origine Datadog è impostato su
aemcdn
- Il tag del servizio Datadog è impostato su
adobeaemcloud
, ma è possibile sovrascriverlo nella sezione dei tag - Se la pipeline di acquisizione utilizza i tag Datadog per determinare l’indice appropriato per i registri di inoltro, verifica che tali tag siano configurati correttamente nel file YAML di inoltro del registro. I tag mancanti possono impedire l’acquisizione corretta del registro, se la pipeline dipende da essi.
Elasticsearch e OpenSearch
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"
Considerazioni:
- per impostazione predefinita, la porta è 443. Facoltativamente, può essere sostituito con una proprietà denominata
port
- Per le credenziali, assicurati di utilizzare le credenziali di distribuzione anziché le credenziali dell’account. Queste sono le credenziali generate in una schermata che potrebbe assomigliare a questa immagine:
- Per i registri di AEM,
index
è impostato su uno diaemaccess
,aemerror
,aemrequest
,aemdispatcher
,aemhttpdaccess
oaemhttpderror
- La proprietà della pipeline opzionale deve essere impostata sul nome della pipeline di acquisizione Elasticsearch o OpenSearch, che può essere configurata per instradare la voce di registro all’indice appropriato. Il tipo di processore della pipeline deve essere impostato su script e il linguaggio di script su indolore. Di seguito è riportato un frammento di script di esempio per instradare le voci di registro in un indice come 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
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}}"
Considerazioni:
- La stringa URL deve includere https://, altrimenti la convalida non riuscirà.
- L’URL può includere una porta. Ad esempio,
https://example.com:8443/aem_logs/aem
. Se nella stringa URL non è inclusa alcuna porta, viene utilizzata la porta 443 (la porta HTTPS predefinita).
API registro New Relic
Invia un'e-mail a aemcs-logforwarding-beta@adobe.com per richiedere l'accesso.
Registri CDN HTTPS
Le richieste Web (POST) verranno inviate in modo continuo, con un payload json che è un array di voci di registro, con il formato di voce di registro descritto in Registrazione per AEM as a Cloud Service. Proprietà aggiuntive sono menzionate nella sezione Formati di voce di registro di seguito.
Esiste anche una proprietà denominata sourcetype
, impostata sul valore aemcdn
.
/.well-known/fastly/logging/challenge
deve rispondere con un asterisco *
nel corpo e il codice di stato 200.Registri HTTPS AEM
Per i registri di AEM (incluso apache/dispacher), le richieste web (POST) verranno inviate in modo continuo, con un payload json che è un array di voci di registro, con i vari formati di voci di registro come descritto in Registrazione per AEM as a Cloud Service. Proprietà aggiuntive sono menzionate nella sezione Formati di voce di registro di seguito.
Esiste anche una proprietà denominata Source-Type
, impostata su uno dei seguenti valori:
- aemaccess
- aemerror
- aemrequest
- aemdispatcher
- aemhttpdaccess
- aemhttpderror
Splunk
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "aemaacs"
Considerazioni:
- Per impostazione predefinita, la porta è 443. Facoltativamente, può essere sostituito con una proprietà denominata
port
. - Il campo sourcetype avrà uno dei seguenti valori, a seconda del registro specifico: aemaccess, aemerror,
aemrequest, aemdispatcher, aemhttpdaccess, aemhttpderror, aemcdn - Se gli IP richiesti sono stati inseriti nell'elenco Consentiti e i registri non vengono ancora consegnati, verifica che non vi siano regole firewall che impongono la convalida del token Splunk. Fastly esegue un passaggio di convalida iniziale in cui viene inviato intenzionalmente un token Splunk non valido. Se il firewall è impostato in modo da interrompere le connessioni con token Splunk non validi, il processo di convalida non riuscirà e Fastly non sarà in grado di consegnare i registri all’istanza Splunk.
sourcetype
inviati all'indice Splunk potrebbero essere cambiati, quindi apportare le modifiche necessarie.Logica sumo
Durante la configurazione di Sumo Logic per l’acquisizione dei dati, viene visualizzato un "indirizzo HTTP Source" che fornisce l’host, l’URI del ricevitore e la chiave privata in una singola stringa. Ad esempio:
https://collectors.de.sumologic.com/receiver/v1/http/ZaVnC...
È necessario copiare l'ultima sezione dell'URL (senza /
precedente) e aggiungerla come Variabile di ambiente segreta di CloudManager come descritto nella sezione Configurazione precedente, quindi fare riferimento a tale variabile nella configurazione. Di seguito è riportato un esempio.
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
sumologic:
default:
enabled: true
collectorURL: "https://collectors.de.sumologic.com/receiver/v1/http"
privateKey: "${{SUMOLOGIC_PRIVATE_KEY}}"
index: "aem-logs"
sumologic_default
come standard. Per ulteriori informazioni, vedere la documentazione sul partizionamento logico Sumo.Formati voce registro
Consulta Registrazione per AEM as a Cloud Service per il formato di ciascun tipo di registro (registri CDN e registri AEM, incluso Apache/Dispatcher).
Poiché i registri provenienti da più programmi e ambienti possono essere inoltrati alla stessa destinazione di registrazione, oltre all’output descritto nell’articolo sulla registrazione, in ogni voce di registro verranno incluse le seguenti proprietà:
- aem_env_id
- aem_env_type
- aem_program_id
- aem_tier
Ad esempio, le proprietà potrebbero avere i seguenti valori:
aem_env_id: 1242
aem_env_type: dev
aem_program_id: 12314
aem_tier: author
Migrazione dall’inoltro registro legacy
Prima di raggiungere la configurazione di Log Forwarding tramite un modello self-service, ai clienti veniva richiesto di aprire i ticket di supporto, dove Adobe avviava l’integrazione.
I clienti che sono stati configurati in questo modo da Adobe sono invitati ad adattarsi al modello self-service quando lo desiderano. Ci sono diversi motivi per effettuare questa transizione:
- È stato eseguito il provisioning di un nuovo ambiente (ad esempio, un nuovo ambiente di sviluppo o RDE).
- Modifiche all’endpoint o alle credenziali Splunk esistenti.
- Adobe ha configurato l’inoltro dei registri prima che fossero disponibili i registri CDN e desideri ricevere i registri CDN.
- Una decisione consapevole di adattarsi in modo proattivo al modello self-service in modo che l’organizzazione disponga delle conoscenze necessarie anche prima che sia necessario un cambiamento sensibile al tempo.
Per eseguire la migrazione, è sufficiente configurare il file YAML come descritto nelle sezioni precedenti. Utilizza la pipeline di configurazione Cloud Manager per distribuire in ciascuno degli ambienti in cui deve essere applicata la configurazione.
È consigliabile, ma non obbligatorio, distribuire una configurazione in tutti gli ambienti in modo che siano tutti sotto il controllo self-service. In caso contrario, potresti dimenticare quali ambienti sono stati configurati da Adobe rispetto a quelli configurati in modo self-service.
sourcetype
inviati all'indice Splunk siano stati modificati, quindi apportare le modifiche necessarie.