Reenvío de registro log-forwarding
AEM Los clientes que tengan una licencia para un proveedor de registro o alojen un producto de registro pueden tener registros de registro (incluidos los registros de Apache/Dispatcher) y registros de CDN reenviados a los destinos de registro asociados. AEM as a Cloud Service admite los siguientes destinos de registro:
- Almacenamiento de Azure Blob
- DataDog
- Elasticsearch o OpenSearch
- HTTPS
- Splunk
El reenvío de registros se configura en modo de autoservicio declarando una configuración en Git e implementándola a través de la canalización de configuración de Cloud Manager para los tipos de entorno de desarrollo, fase y producción en programas de producción (que no sean de zona protegida).
AEM Hay una opción para que los registros de la y de Apache/Dispatcher AEM se enruten a través de infraestructuras de red avanzadas de la interfaz de usuario, como la IP de salida dedicada.
Tenga en cuenta que el ancho de banda de red asociado con los registros enviados al destino de registro se consideran parte del uso de E/S de red de su organización.
Organización de este artículo how-organized
Este artículo está organizado de la siguiente manera:
- Configuración: común para todos los destinos de registro
- Registro de configuraciones de destino: cada destino tiene un formato ligeramente diferente
- Formatos de entrada de registro: información sobre los formatos de entrada de registro
- AEM Redes avanzadas: envío de registros de Apache/Dispatcher y de los recursos de red a través de una salida dedicada o a través de una VPN
Configuración setup
-
Cree la siguiente estructura de carpetas y archivos en la carpeta de nivel superior del proyecto en Git:
code language-none config/ logForwarding.yaml
-
logForwarding.yaml
debe contener metadatos y una configuración similar al siguiente formato (usamos Splunk como ejemplo).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"
El parámetro kind debe establecerse en
LogForwarding
; la versión debe establecerse en la versión de esquema, que es 1.Los tokens de la configuración (como
${{SPLUNK_TOKEN}}
) representan secretos que no deberían almacenarse en Git. En su lugar, declárelos como Cloud Manager Variables de entorno de tipo secret. Asegúrese de seleccionar Todos como valor desplegable para el campo Servicio aplicado, de modo que los registros se puedan reenviar a los niveles de creación, publicación y vista previa.AEM Es posible establecer diferentes valores entre los registros de CDN y los registros de (incluido Apache/Dispatcher), incluyendo un bloque cdn o aem adicional después del bloque default, donde las propiedades pueden anular las definidas en el bloque default; solo se requiere la propiedad enabled. Un posible caso de uso podría ser utilizar un índice de Splunk diferente para los registros de CDN, como se ilustra en el ejemplo siguiente.
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"
AEM Otro escenario es deshabilitar el reenvío de los registros de CDN o los registros de (incluido Apache/Dispatcher). Por ejemplo, para reenviar solo los registros de CDN, se puede configurar lo siguiente:
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
-
Para tipos de entorno distintos de RDE (que actualmente no es compatible), cree una canalización de configuración de implementación de destino en Cloud Manager; tenga en cuenta que las canalizaciones de pila completa y de nivel web no implementan el archivo de configuración.
Configuración de destino de registro logging-destinations
A continuación se enumeran las configuraciones para los destinos de registro admitidos, junto con cualquier consideración específica.
Almacenamiento de 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}}
Se debe utilizar un token SAS para la autenticación. Debe crearse desde la página de firma de acceso compartido, en lugar de desde la página de token de acceso compartido, y debe configurarse con esta configuración:
- Servicios permitidos: se debe seleccionar un blob.
- Recursos permitidos: el objeto debe estar seleccionado.
- Permisos permitidos: Write, Add, Create deben estar seleccionados.
- Una fecha/hora de inicio y de caducidad válidas.
Esta es una captura de pantalla de un ejemplo de configuración de token SAS:
Registros de CDN de almacenamiento de Azure Blob azureblob-cdn
Cada uno de los servidores de registro distribuidos globalmente producirá un nuevo archivo cada pocos segundos, en la carpeta aemcdn
. Una vez creado, el archivo ya no se anexará a. El formato del nombre de archivo es AAAA-MM-DDThhss.ss-uniqueid.log. Por ejemplo, 2024-03-04T10:00:00.000-WnFWYN9BpOUs2aOVn4ee.log.
Por ejemplo, en algún momento:
aemcdn/
2024-03-04T10:00:00.000-abc.log
2024-03-04T10:00:00.000-def.log
Y luego 30 segundos después:
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
Cada archivo contiene varias entradas de registro json, cada una en una línea independiente. Los formatos de entrada de registro se describen en el artículo de registro, y cada entrada de registro también incluye las propiedades adicionales mencionadas en la sección Formatos de entrada de registro a continuación.
AEM Registros de Azure Blob Storage azureblob-aem
AEM Los registros de datos (incluido Apache/Dispatcher) aparecen debajo de una carpeta con la siguiente convención de nombres:
- aemaccess
- aemerror
- aemdispatcher
- httpdaccess
- httpderror
En cada carpeta, se crea un solo archivo y se anexa a. Los clientes son responsables de procesar y administrar este archivo para que no crezca demasiado.
Consulte los formatos de entrada de registro en el artículo de registro. Las entradas de registro también incluirán las propiedades adicionales mencionadas en la sección Formatos de entrada de registro a continuación.
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
Consideraciones:
- Cree una clave de API sin ninguna integración con un proveedor de nube específico.
- la propiedad tags es opcional
Elasticsearch y 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"
Consideraciones:
- Para las credenciales, asegúrese de utilizar credenciales de implementación en lugar de credenciales de cuenta. Estas son las credenciales que se generan en una pantalla que puede parecerse a esta imagen:
- La propiedad de canalización opcional debe establecerse en el nombre de la canalización de ingesta de Elasticsearch o OpenSearch, que puede configurarse para enrutar la entrada de registro al índice adecuado. El tipo de procesador de la canalización debe establecerse en script y el idioma del script debe establecerse en sin dolor. Este es un ejemplo de fragmento de script para enrutar las entradas de registro a un índice como 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}}"
Consideraciones:
- La cadena de dirección URL debe incluir https://; de lo contrario, la validación fallará. Si no se incluye ningún puerto en la cadena URL, se asume el puerto 443 (el puerto HTTPS predeterminado).
- Si desea utilizar un puerto diferente al 443, proporciónelo como parte de la dirección URL.
Registros de CDN HTTPS https-cdn
Las solicitudes web (POST) se enviarán de manera continua, con una carga útil json que es una matriz de entradas de registro, con el formato de entrada de registro descrito en el artículo de registro. A continuación se mencionan propiedades adicionales en la sección Formatos de entrada de registro.
También debe haber una propiedad denominada sourcetype
, que se ha establecido en el valor aemcdn
.
/.well-known/fastly/logging/challenge
debe responder con un asterisco *
en el cuerpo y el código de estado 200.AEM Registros de HTTPS https-aem
AEM Para los registros de datos (incluido apache/dispatcher), las solicitudes web (POST) se enviarán continuamente, con una carga útil json que es una matriz de entradas de registro, con los distintos formatos de entrada de registro como se describe en el artículo de registro. A continuación se mencionan propiedades adicionales en la sección Formatos de entrada de registro.
También debe existir una propiedad denominada sourcetype
, que se establezca en uno de estos valores:
- 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"
Formatos de entrada de registro log-formats
AEM Consulte el artículo de registro general para saber el formato de cada tipo de registro respectivo (registros de CDN y registros de, incluidos Apache/Dispatcher).
Dado que los registros de varios programas y entornos se pueden reenviar al mismo destino de registro, además de la salida descrita en el artículo de registro, se incluirán las siguientes propiedades en cada entrada de registro:
- aem_env_id
- aem_env_type
- aem_program_id
- aem_tier
Por ejemplo, las propiedades podrían tener los siguientes valores:
aem_env_id: 1242
aem_env_type: dev
aem_program_id: 12314
aem_tier: author
Redes avanzadas advanced-networking
Algunas organizaciones eligen restringir qué tráfico pueden recibir los destinos de registro.
Para el registro de CDN, puede incluir en la lista de permitidos las direcciones IP, tal como se describe en este artículo. Si esa lista de direcciones IP compartidas es demasiado grande, considere la posibilidad de enviar tráfico a un almacén de blobs de Azure (que no sea de Adobe) donde se pueda escribir lógica para enviar los registros de una IP dedicada a su destino final.
AEM Para los registros de datos (incluido Apache/Dispatcher), puede configurar el reenvío de registros para que pase por redes avanzadas. Vea los patrones de los tres tipos de red avanzados siguientes, que utilizan un parámetro port
opcional, junto con el parámetro host
.
Salida de puerto flexible flex-port
Si el tráfico de registro va a un puerto distinto del 443 (por ejemplo, 8443 a continuación), configure la red avanzada de la siguiente manera:
{
"portForwards": [
{
"name": "splunk-host.example.com",
"portDest": 8443, # something other than 443
"portOrig": 30443
}
]
}
y configure el archivo yaml de la siguiente manera:
kind: "LogForwarding"
version: "1"
data:
splunk:
default:
host: "${{AEM_PROXY_HOST}}"
token: "${{SomeToken}}"
port: 30443
index: "index_name"
IP de salida dedicada dedicated-egress
Si el tráfico de registro tiene que salir de una IP de salida dedicada, configure una red avanzada como la siguiente:
{
"portForwards": [
{
"name": "splunk-host.example.com",
"portDest": 443,
"portOrig": 30443
}
]
}
y configure el archivo yaml de la siguiente manera:
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
Si el tráfico de registro necesita pasar por una VPN, configure una red avanzada como la siguiente:
{
"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