Encaminhamento de logs log-forwarding
Os clientes com uma licença de com um fornecedor de registro em log ou que hospedam um produto de registro em log podem ter registros do AEM (incluindo Apache/Dispatcher) e registros CDN encaminhados ao destino de registro associado. O AEM as a Cloud Service oferece suporte aos seguintes destinos de registro:
O encaminhamento de logs é configurado de maneira automatizada declarando uma configuração no Git e pode ser implantado por meio de pipelines de configuração do Cloud Manager para tipos de ambiente de desenvolvimento, preparo e produção. O arquivo de configuração pode ser implantado em RDEs (Rapid Development Environments, ambientes de desenvolvimento rápido) usando ferramentas de linha de comando.
Há uma opção para que os registros do AEM e Apache/Dispatcher sejam roteados por meio da infraestrutura de rede avançada da AEM, como IP de saída dedicado.
Observe que a largura de banda da rede associada aos registros enviados ao destino de registro é considerada parte do uso de E/S da rede da organização.
Como este artigo está organizado how-organized
Este artigo está organizado da seguinte maneira:
- Configuração - comum para todos os destinos de registro
- Transporte e rede avançada - considere a configuração da rede antes de criar a configuração de registro
- Configurações de destino de registro - cada destino tem um formato um pouco diferente
- Formatos de Entrada de Log - informações sobre os formatos de entrada de log
- Migração do encaminhamento de log herdado - como migrar do encaminhamento de log previamente configurado pela Adobe para a abordagem de autoatendimento
Configurar setup
-
Crie um arquivo chamado
logForwarding.yaml
. Ele deve conter metadados, conforme descrito no artigo Pipeline de Configuração (kind deve ser definido comoLogForwarding
e a versão definida como "1"), com uma configuração semelhante à seguinte (usamos o Splunk como exemplo).code language-yaml kind: "LogForwarding" version: "1" metadata: envTypes: ["dev"] data: splunk: default: enabled: true host: "splunk-host.example.com" token: "${{SPLUNK_TOKEN}}" index: "AEMaaCS"
-
Coloque o arquivo em algum lugar em uma pasta de nível superior chamada config ou similar, conforme descrito em Usando Pipelines de Configuração.
-
Para tipos de ambiente diferentes de RDE (que usa ferramentas de linha de comando), crie um pipeline de configuração de implantação direcionada no Cloud Manager, conforme referenciado por esta seção; observe que os pipelines de Empilhamento completo e de Camada da Web não implantam o arquivo de configuração.
-
Implante a configuração.
Os tokens na configuração (como ${{SPLUNK_TOKEN}}
) representam segredos que não devem ser armazenados no Git. Em vez disso, declare-as como Variáveis de ambiente secreto do Cloud Manager. Selecione Todos como o valor suspenso do campo Serviço aplicado, para que os logs possam ser encaminhados para os níveis de criação, publicação e visualização.
É possível definir valores diferentes entre logs CDN e logs AEM (incluindo Apache/Dispatcher), incluindo um bloco cdn e/ou aem adicional após o bloco padrão, em que as propriedades podem substituir as definidas no bloco padrão; somente a propriedade habilitada é necessária. Um possível caso de uso poderia ser o uso de um índice do Splunk diferente para logs CDN, como ilustra o exemplo abaixo.
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"
Outro cenário é desativar o encaminhamento dos logs CDN ou AEM (incluindo o Apache/Dispatcher). Por exemplo, para encaminhar apenas os logs CDN, é possível configurar o seguinte:
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
Transporte e rede avançada transport-advancednetworking
Algumas organizações escolhem restringir qual tráfego pode ser recebido pelos destinos de registro, outras podem exigir o uso de portas diferentes de HTTPS (443). Nesse caso, a Rede Avançada precisará ser configurada antes da implantação da configuração de encaminhamento de log.
Use a tabela abaixo para ver quais são os requisitos para a configuração avançada de rede e registro com base no fato de você estar usando ou não a porta 443 e se você precisa ou não que seus registros apareçam a partir de um endereço IP fixo.
Para logs AEM (incluindo Apache/Dispatcher), se você tiver configurado a Rede Avançada, poderá usar a propriedade aem.advancedNetworking
para encaminhá-los de um endereço IP de saída dedicado ou através de uma VPN.
O exemplo abaixo mostra como configurar o registro em uma porta HTTPS padrão com rede avançada.
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
Para logs CDN, você pode adicionar os endereços IP à lista de permissões, conforme descrito em Documentação do Fastly - Lista de IP Públicos. Se essa lista de endereços IP compartilhados for muito grande, considere enviar tráfego para um servidor https ou Azure Blob Store (que não seja da Adobe), em que a lógica possa ser gravada para enviar os logouts de um IP conhecido para seu destino final.
Configuração de destino de registro logging-destinations
As configurações para os destinos de registro compatíveis estão listadas abaixo, juntamente com considerações específicas.
Amazon S3 amazons3
O encaminhamento de logs para o Amazon S3 é compatível com logs do AEM e do Dispatcher. Os logs CDN ainda não são compatíveis.
kind: "LogForwarding"
version: "1.0"
metadata:
envTypes: ["dev"]
data:
awsS3:
default:
enabled: true
region: "your-bucket-region"
bucket: "your_bucket_name"
accessKey: "${{AWS_S3_ACCESS_KEY}}"
secretAccessKey: "${{AWS_S3_SECRET_ACCESS_KEY}}"
Para usar o S3 Log Forwarder, será necessário pré-configurar um usuário do AWS IAM com política apropriada para acessar seu bucket do S3. Consulte Documentação de Usuário do AWS IAM para saber como criar credenciais de usuário do IAM.
A política IAM deve permitir que o usuário use s3:putObject
. Por exemplo:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::your_bucket_name/*"
}]
}
Consulte a Documentação da política de bucket do AWS para obter mais informações sobre como implementar o.
Armazenamento 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}}
Um token SAS deve ser usado para autenticação. Ela deve ser criada na página Shared access signature, em vez de na página Shared access token, e deve ser configurada com estas configurações:
- Serviços permitidos: o blob deve ser selecionado.
- Recursos permitidos: o objeto deve ser selecionado.
- Permissões permitidas: Gravar, Adicionar, Criar devem ser selecionadas.
- Uma data/hora de início e expiração válidas.
Esta é uma captura de tela de um exemplo de configuração de token SAS:
Se os registros pararem de ser entregues depois de antes funcionarem corretamente, verifique se o token SAS configurado ainda é válido, pois pode ter expirado.
Logs CDN do Armazenamento de Blobs do Azure azureblob-cdn
Cada um dos servidores de log distribuídos globalmente produzirá um novo arquivo a cada poucos segundos, na pasta aemcdn
. Depois de criado, o arquivo não será mais anexado ao. O formato do nome do arquivo é AAAA-MM-DDThhss.sss-uniqueid.log. Por exemplo, 2024-03-04T10:00:00.000-WnFWYN9BpOUs2aOVn4ee.log.
Como exemplo, em algum momento:
aemcdn/
2024-03-04T10:00:00.000-abc.log
2024-03-04T10:00:00.000-def.log
E 30 segundos depois:
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 arquivo contém várias entradas de log json, cada uma em uma linha separada. Os formatos de entrada de log estão descritos em Logs para AEM as a Cloud Service, e cada entrada de log também inclui as propriedades adicionais mencionadas na seção Formatos de Entrada de Log abaixo.
Logs do AEM do Armazenamento de Azure Blob azureblob-aem
Os logs do AEM (incluindo o Apache/Dispatcher) aparecem abaixo de uma pasta com a seguinte convenção de nomenclatura:
- aemaccess
- aemerror
- aemrequest
- aemdispatcher
- aemhttpdaccess
- aemhttpderror
Em cada pasta, um único arquivo será criado e anexado a. Os clientes são responsáveis pelo processamento e gerenciamento desse arquivo, de modo que ele não fique muito grande.
Consulte os formatos de entrada de log em Log para AEM as a Cloud Service. As entradas de log também incluirão as propriedades adicionais mencionadas na seção Formatos de Entrada de Log abaixo.
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
Considerações
- Crie uma Chave de API sem nenhuma integração com um provedor de nuvem específico.
- A propriedade das tags é opcional
- Para logs AEM, a marca de origem do Datadog está definida como uma das seguintes opções:
aemaccess
,aemerror
,aemrequest
,aemdispatcher
,aemhttpdaccess
ouaemhttpderror
- Para logs CDN, a marca de origem do Datadog está definida como
aemcdn
- A etiqueta de serviço do Datadog está definida como
adobeaemcloud
, mas você pode substituí-la na seção de etiquetas - Se o pipeline de assimilação usar tags Datadog para determinar o índice apropriado para logs de encaminhamento, verifique se essas tags estão configuradas corretamente no arquivo YAML de encaminhamento de logs. As tags ausentes podem impedir a assimilação de logs bem-sucedida se o pipeline depender delas.
Elasticsearch e 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"
Considerações
- por padrão, a porta é 443. Opcionalmente, ele pode ser substituído por uma propriedade chamada
port
- Para credenciais, certifique-se de usar as credenciais de implantação, em vez das credenciais de conta. Estas são as credenciais geradas em uma tela que pode se parecer com esta imagem:
- Para logs AEM,
index
está definido como um deaemaccess
,aemerror
,aemrequest
,aemdispatcher
,aemhttpdaccess
ouaemhttpderror
- A propriedade opcional do pipeline deve ser definida como o nome do pipeline de assimilação do Elasticsearch ou OpenSearch, que pode ser configurado para rotear a entrada de log para o índice apropriado. O tipo de Processador do pipeline deve ser definido como script e a linguagem de script deve ser definida como indolor. Este é um exemplo de trecho de script para rotear entradas de log em um í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/aem_logs/aem"
authHeaderName: "X-AEMaaCS-Log-Forwarding-Token"
authHeaderValue: "${{HTTPS_LOG_FORWARDING_TOKEN}}"
Considerações
- A cadeia de caracteres da URL deve incluir https:// ou a validação falhará.
- O URL pode incluir uma porta. Por exemplo,
https://example.com:8443/aem_logs/aem
. Se nenhuma porta for incluída na string do URL, a porta 443 (a porta HTTPS padrão) será considerada.
Logs HTTPS CDN https-cdn
As solicitações da Web (POSTs) serão enviadas continuamente, com uma carga json que é uma matriz de entradas de log, com o formato de entrada de log descrito em Logon para AEM as a Cloud Service. Propriedades adicionais são mencionadas na seção Formatos de Entrada de Log abaixo.
Também existe uma propriedade chamada sourcetype
, que é definida como o valor aemcdn
.
/.well-known/fastly/logging/challenge
deve responder com um asterisco *
no corpo e código de status 200.Logs HTTPS do AEM https-aem
Para logs do AEM (incluindo apache/dispatcher), as solicitações da Web (POSTs) serão enviadas continuamente, com uma carga json que é uma matriz de entradas de log, com os vários formatos de entrada de log, conforme descrito em Logs para o AEM as a Cloud Service. Propriedades adicionais são mencionadas na seção Formatos de Entrada de Log abaixo.
Também há uma propriedade chamada Source-Type
, que é definida como um destes valores:
- aemaccess
- aemerror
- aemrequest
- aemdispatcher
- aemhttpdaccess
- aemhttpderror
API de log do New Relic newrelic-https
O encaminhamento de logs para o New Relic aproveita a API HTTPS do New Relic para assimilação. Atualmente, ele só é compatível com logs do AEM e do Dispatcher; os logs CDN ainda não são compatíveis.
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
newRelic:
default:
enabled: true
uri: "https://log-api.newrelic.com/log/v1"
apiKey: "${{NR_API_KEY}}"
API de log do Dynatrace dynatrace-https
O encaminhamento de logs para o Dynatrace aproveita a API HTTPS do Dynatrace para assimilação. Atualmente, ele só é compatível com logs do AEM e do Dispatcher; os logs CDN ainda não são compatíveis.
O atributo de escopo "Logs de assimilação" é necessário para o token.
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
dynatrace:
default:
enabled: true
environmentId: "${{DYNATRACE_ENVID}}"
token: "${{DYNATRACE_TOKEN}}"
Splunk splunk
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "aemaacs"
Considerações
- A porta padrão é 443. Opcionalmente, ele pode ser substituído por uma propriedade chamada
port
. - Dependendo do log específico, o campo sourcetype terá um dos seguintes valores: aemaccess, aemerror,
aemrequest, aemdispatcher, aemhttpdaccess, aemhttpderror, aemcdn - Incluir na lista de permissões Se os IPs necessários tiverem sido migrados e os registros ainda não estiverem sendo entregues, verifique se não há regras de firewall impondo a validação do token de Splunk. O Fastly executa uma etapa de validação inicial na qual um token do Splunk inválido é enviado intencionalmente. Se o firewall estiver definido para encerrar conexões com tokens inválidos do Splunk, o processo de validação falhará, impedindo que o Fastly entregue logs para a instância do Splunk.
sourcetype
enviados para o índice do Splunk podem ter sido alterados, portanto, ajuste-os adequadamente.Lógica Sumo sumologic
O encaminhamento de logs para o Sumo Logic é compatível com logs do AEM e do Dispatcher; os logs CDN ainda não são compatíveis.
Ao configurar a Lógica de sumô para assimilação de dados, você verá um "Endereço Source HTTP" que fornece o host, o URI do receptor e a chave privada em uma única string. Por exemplo:
https://collectors.de.sumologic.com/receiver/v1/http/ZaVnC...
Você precisará copiar a última seção da URL (sem a /
anterior) e adicioná-la como uma Variável de ambiente secreto do CloudManager, conforme descrito na seção Configuração acima, e depois referenciar essa variável na sua configuração. Um exemplo é fornecido abaixo.
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
como padrão. Consulte a Documentação de Particionamento Lógico de Resumo para obter mais informações.Formatos de entrada de log log-formats
Consulte Logs do AEM as a Cloud Service para obter o formato de cada respectivo tipo de log (logs CDN e logs do AEM, incluindo o Apache/Dispatcher).
Como os registros de vários programas e ambientes podem ser encaminhados para o mesmo destino de registro, além da saída descrita no artigo de registro, as seguintes propriedades serão incluídas em cada entrada de registro:
- aem_env_id
- aem_env_type
- aem_program_id
- aem_tier
Como exemplo, as propriedades podem ter os seguintes valores:
aem_env_id: 1242
aem_env_type: dev
aem_program_id: 12314
aem_tier: author
Migrando do Encaminhamento de Log Herdado legacy-migration
Antes de a configuração do encaminhamento de logs ser obtida por meio de um modelo de autoatendimento, os clientes eram solicitados a abrir tíquetes de suporte, onde a Adobe iniciaria a integração.
Os clientes que foram configurados dessa maneira pela Adobe são bem-vindos para se adaptarem ao modelo de autoatendimento de sua conveniência. Há vários motivos para fazer essa transição:
- Um novo ambiente (por exemplo, um novo ambiente de desenvolvimento ou RDE) foi provisionado.
- Alterações nas credenciais ou no ponto de extremidade existente do Splunk.
- A Adobe configurou o encaminhamento de logs antes que os logs CDN estivessem disponíveis e você gostaria de receber logs CDN.
- Uma decisão consciente de se adaptar proativamente ao modelo de autoatendimento para que sua organização tenha o conhecimento mesmo antes de uma alteração sensível ao tempo ser necessária.
Quando estiver pronto para migrar, basta configurar o arquivo YAML conforme descrito nas seções anteriores. Use o pipeline de configuração do Cloud Manager para implantar em cada um dos ambientes em que a configuração deve ser aplicada.
Recomenda-se, mas não é necessário, que uma configuração seja implantada em todos os ambientes para que todos estejam sob controle de autoatendimento. Caso contrário, você pode esquecer quais ambientes foram configurados pelo Adobe e quais foram configurados de maneira automatizada.
sourcetype
enviados para o índice do Splunk podem ter sido alterados, portanto, ajuste de acordo.