Processadores de análise
Os processadores de análise convertem dados de log brutos ou semiestruturados em formatos estruturados. Cada pipeline pode ter no máximo um processador de análise primária, que deve ser o primeiro processador no pipeline. O analisador XML é uma exceção: ele opera em campos produzidos por um analisador primário e no máximo 5 instâncias podem ser adicionadas a um único pipeline.
Processamento condicional não compatível
Os processadores de análise (exceto o Grok e o XML) não são compatíveis com o processamento condicional com o parâmetro when. Isso inclui os analisadores OCSF, CSV, JSON, KeyValue, VPC, Route53, RDS, WAF, Postgres e Amazon CloudFront. Para obter mais informações, consulte Sintaxe da expressão para processamento condicional.
Processador OCSF
Analisa e transforma os dados de log de acordo com os padrões Open Cybersecurity Schema Framework (OCSF).
Configuração
Configure o processador OCSF com os seguintes parâmetros:
processor: - ocsf: version: "1.5" mapping_version: 1.5.0 schema: microsoft_office365_management_activity:
Parâmetros
version(obrigatório)-
A versão do esquema OCSF a ser usada para transformação. Deve ser a 1.5
mapping_version(obrigatório)-
A versão do mapeamento OCSF a ser usada para transformação. Deve ser a 1.5.0.
schema(obrigatório)-
Objeto de esquema que especifica o tipo de fonte de dados. Os esquemas compatíveis dependem do tipo de fonte do pipeline; cada tipo de fonte tem seu próprio conjunto de esquemas OCSF compatíveis. Você deve usar um esquema que corresponda ao tipo de fonte do pipeline.
Esta tabela lista as combinações de esquema compatíveis.
| Tipo de fonte do pipeline | Esquemas compatíveis | Versão | Versão do mapeamento |
|---|---|---|---|
cloudwatch_logs |
cloud_trail: |
1.5 |
Não obrigatório |
cloudwatch_logs |
route53_resolver: |
1.5 |
Não obrigatório |
cloudwatch_logs |
vpc_flow: |
1.5 |
Não obrigatório |
cloudwatch_logs |
eks_audit: |
1.5 |
Não obrigatório |
cloudwatch_logs |
aws_waf: |
1.5 |
Não obrigatório |
cloudwatch_logs |
aws_nlb: |
1.5 |
Não obrigatório |
s3 |
Qualquer esquema OCSF | Any | Any |
microsoft_office365 |
microsoft_office365: |
1.5 |
1.5.0 |
microsoft_entraid |
microsoft_entraid: |
1.5 |
1.5.0 |
microsoft_windows_event |
microsoft_windows_event: |
1.5 |
1.5.0 |
paloaltonetworks_nextgenerationfirewall |
paloaltonetworks_nextgenerationfirewall: |
1.5 |
1.5.0 |
okta_auth0 |
okta_auth0: |
1.5 |
1.5.0 |
okta_sso |
okta_sso: |
1.5 |
1.5.0 |
crowdstrike_falcon |
crowdstrike_falcon: |
1.5 |
1.5.0 |
github_auditlogs |
github_auditlogs: |
1.5 |
1.5.0 |
sentinelone_endpointsecurity |
sentinelone_endpointsecurity: |
1.5 |
1.5.0 |
servicenow_cmdb |
servicenow_cmdb: |
1.5 |
1.5.0 |
wiz_cnapp |
wiz_cnapp: |
1.5 |
1.5.0 |
zscaler_internetaccess |
zscaler_internetaccess: |
1.5 |
1.5.0 |
Processador CSV
Analisa dados formatados como CSV para campos estruturados.
Configuração
Configure o processador CSV com os seguintes parâmetros:
processor: - csv: column_names: ["col1", "col2", "col3"] delimiter: "," quote_character: '"'
Parâmetros
column_names(opcional)-
Matriz de nomes de coluna para campos analisados. Máximo de 100 colunas, cada nome com até 128 caracteres. Se não for fornecido, o padrão é column_1, column_2 e assim por diante.
delimiter(opcional)-
Caractere usado para separar campos CSV. Deve ser um único caractere. O padrão é vírgula (,).
quote_character(opcional)-
Caractere usado para citar campos CSV contendo delimitadores. Deve ser um único caractere. O padrão é aspas duplas (").
Para usar o processador sem especificar parâmetros adicionais, use o comando abaixo:
processor: - csv: {}
Processador Grok
Analisa dados não estruturados usando padrões Grok. É permitido no máximo 1 Grok por pipeline. Para obter detalhes sobre o transformador Grok no CloudWatch Logs, consulte Processadores que você pode usar no Guia do usuário do CloudWatch Logs.
Configuração
Configure o processador Grok com os seguintes parâmetros:
Quando a fonte de dados é um dicionário, você pode usar esta configuração:
processor: - grok: match: source_key: ["%{WORD:level} %{GREEDYDATA:msg}"]
Quando a fonte de dados é o CloudWatch Logs, você pode usar esta configuração:
processor: - grok: match: source_key: ["%{WORD:level} %{GREEDYDATA:msg}"]
Parâmetros
match(obrigatório)-
Mapeamento de campo com padrões Grok. Somente um mapeamento de campo é permitido.
match.<field>(obrigatório)-
Matriz com um único padrão Grok. Máximo de 512 caracteres por padrão.
when(opcional)-
Expressão condicional que determina se esse processador é executado. O tamanho máximo é de 256 caracteres. Consulte Sintaxe da expressão para processamento condicional.
Importante
Se o processador Grok for usado como analisador (primeiro processador) em um pipeline e sua condição when for avaliada como false, todo o pipeline não será executado para esse evento de logs. Os analisadores devem ser executados para que os processadores downstream recebam dados estruturados.
Processador de VPC
Converte os dados do VPC Flow Log em campos estruturados.
Configuração
Configure o processador de VPC com os seguintes parâmetros:
processor: - parse_vpc: {}
Processador JSON
Converte os dados JSON em campos estruturados.
Configuração
Configure o processador JSON com os seguintes parâmetros:
processor: - parse_json: source: "message" destination: "parsed_json"
Parâmetros
source(opcional)-
O campo que contém os dados JSON a serem convertidos. Se omitido, toda a mensagem do log será processada
destination(opcional)-
O campo em que o JSON convertido será armazenado. Se omitido, os campos analisados serão adicionados ao nível-raiz
Processador do Route 53
Converte os dados de log do resolvedor do Route 53 em campos estruturados.
Configuração
Configure o processador do Route 53 com os seguintes parâmetros:
processor: - parse_route53: {}
Processador do Amazon RDS
Analisa dados de log do Amazon RDS Aurora em campos estruturados. O processador parse_rds é suportado somente quando o data_source_name do pipeline é amazon_rds. Ele aplica a lógica de análise que corresponde à do pipeline data_source_type.
Configuração
Configure o processador do Amazon RDS com os seguintes parâmetros:
processor: - parse_rds: {}
Processador de chave-valor
Analisa dados formatados em pares de chave-valor para campos estruturados.
Configuração
Configure o processador de chave-valor com os seguintes parâmetros:
processor: - key_value: source: "message" destination: "parsed_kv" field_delimiter: "&" key_value_delimiter: "="
Parâmetros
source(opcional)-
Campo contendo dados de valores-chave. Máximo de 128 caracteres.
destination(opcional)-
Campo de destino para pares de chave-valor analisados. Máximo de 128 caracteres.
field_delimiter(opcional)-
Padrão para separar pares de chave-valor. Máximo de 10 caracteres.
key_value_delimiter(opcional)-
Padrão para separar chaves de valores. Máximo de 10 caracteres.
overwrite_if_destination_exists(opcional)-
Se o campo de destino existente deve ou não ser substituído.
prefix(opcional)-
Prefixo a ser adicionado às chaves extraídas. Máximo de 128 caracteres.
non_match_value(opcional)-
Valor para chaves sem correspondências. Máximo de 128 caracteres.
Para usar o processador sem especificar parâmetros adicionais, use o comando abaixo:
processor: - key_value: {}
Analisador XML
Utilize o analisador XML para converter um campo especificado que contém uma string XML para o formato JSON. Utilize o analisador XML quando seus eventos de logs contiverem campos XML incorporados que você deseja consultar como dados estruturados. O analisador XML opera em um campo nomeado que já contém uma string XML. Coloque esse analisador depois de um analisador primário no pipeline. Você pode adicionar no máximo 5 analisadores parse_xml em um único pipeline.
Configuração
Configure o analisador XML com os seguintes parâmetros:
processor: - parse_json: source: "@message" - parse_xml: source: "body" destination: "parsed_xml"
Parâmetros
source(obrigatório)-
Especifica o campo que contém a string XML a ser analisada. Use a notação de pontos para acessar os campos aninhados. Por exemplo,
event.body. Máximo de 128 caracteres. destination(opcional)-
Especifica o campo em que a estrutura XML analisada é armazenada. Se esse parâmetro for omitido, os campos analisados serão adicionados ao nível-raiz Máximo de 128 caracteres.
when(opcional)-
Uma expressão condicional que determina se esse analisador é executado. O tamanho máximo é de 256 caracteres. Para obter mais informações, consulte Sintaxe da expressão para processamento condicional.
Exemplo — Saída do analisador XML
Dado o seguinte evento de logs JSON com um campo XML incorporado:
{ "body": "<Person id=\"123\" active=\"true\"><name>John</name><age>30</age></Person>" }
Com a seguinte configuração:
processor: - parse_json: source: "@message" - parse_xml: source: "body" destination: "parsed_xml"
O analisador XML produz o seguinte resultado:
{ "body": "<Person id=\"123\" active=\"true\"><name>John</name><age>30</age></Person>", "parsed_xml": { "id": "123", "active": "true", "name": "John", "age": "30" } }
Notas de comportamento
- Profundidade de aninhamento
-
O analisador XML suporta uma profundidade máxima de aninhamento de 25 níveis. Elementos aninhados além desse limite produzem um erro.
- Tratamento de erros
-
O XML malformado não falha no pipeline. O analisador preserva o
@messageoriginal e define@pipeline.processing.status = "error"no evento.