Exportação para SIEM (CEF)¶
A equipe de segurança do cliente reúne os eventos de todos os seus sistemas num único SIEM e os analisa lá, e não no painel de cada sistema separadamente. A Agora entrega o registo de auditoria no formato CEF (Common Event Format): um formato de texto, uma linha por evento, com os campos separados por delimitadores. ArcSight, KUMA, MaxPatrol SIEM e outros coletores corporativos o aceitam sem nenhuma adaptação.
A exportação entrega a janela escolhida do registo inteira, num só arquivo, dos lançamentos mais antigos para os mais recentes. Ela pode ser obtida de duas maneiras:
- com o botão Exportar para CEF da seção Registo de auditoria — o navegador salva o arquivo;
- com uma requisição à API — assim o coletor do SIEM busca o registo conforme um agendamento.
A exportação é a mesma leitura do registo que a lista do painel: as mesmas permissões, a mesma opção de licença, os mesmos lançamentos. Para ela a Agora não cria arquivos na máquina nem abre conexões de saída para um coletor.
Exportar pelo painel¶
O botão Exportar para CEF fica acima da lista, ao lado do botão Aplicar. Ele exporta exatamente o que a lista mostra:
- Tipo de recurso, Nome do recurso e Ator restringem a exportação do mesmo modo que restringem a lista;
- De e Até definem a janela de tempo;
- campos vazios significam «não filtrar» — exporta-se todo o registo dentro da sua retenção.
A exportação usa os filtros aplicados. Se depois de clicar em Aplicar um campo foi alterado mas a lista não foi relida, a exportação usa o valor anterior: o arquivo sempre coincide com o que se vê na tela.
O arquivo se chama audit-log.cef. Ele contém todos os lançamentos da janela, e não só as páginas que a lista já carregou.
O botão é visível para os mesmos papéis que o próprio registo — security e superadmin. Quando o registo não está incluído na licença, o botão fica desativado.
O arquivo é montado na memória da aba do navegador. Para uma janela de vários dias isso basta; o registo de um período de retenção longo é melhor buscar pela API.
Exportar pela API¶
GET /central/api-v4/audit-log/export?format=cef&from=2026-09-27T00:00:00Z&to=2026-09-27T12:00:00Z
A autorização é a mesma autorização de operador do resto da API de gestão, e os papéis também: security e superadmin.
Parâmetros:
format— obrigatório; por enquanto o único valor écef;from,to— os limites da janela no formato RFC 3339, ambos incluídos na janela;resource_type,resource_name,actor,actor_type— os mesmos filtros do painel;actor_typeaceitaadmin,staticenode.
A resposta é texto (text/plain), como anexo com o nome audit-log.cef. Ela chega em fluxo: as primeiras linhas chegam de imediato, e o servidor mantém em memória uma única página do registo, de modo que o tamanho da janela não é limitado por nada.
Recusas:
- 400 — um limite da janela não está no formato RFC 3339, ou o formato está ausente ou é desconhecido. Uma requisição inválida nunca se transforma numa exportação do registo inteiro;
- 403 — o papel não tem acesso ao registo;
- 404 — o registo de auditoria não está incluído na licença.
Se a exportação se interromper no meio da transferência — por exemplo, o banco de dados falha do lado da máquina —, a resposta termina como uma transferência incompleta: o curl informa uma conexão interrompida, o navegador marca o download como falho. Um arquivo que chegou inteiro contém a janela inteira.
Sem to, a janela fica aberta para a frente: os lançamentos feitos enquanto a exportação está em curso também entram. Se for preciso um limite fixo, indique to.
A linha CEF¶
Cada evento é uma linha:
CEF:0|Flussonic|agora|26.09|stream_config.patch|stream_config.patch|3|rt=1790590530250 externalId=0f6b8a1e-6a3c-5d7e-9b1a-2c3d4e5f6a7b dvchost=11111111-2222-3333-4444-555555555555 suid=admin suser=ivanov outcome=success src=10.20.1.11 cs1=stream cs1Label=resourceType cs2=conference-a cs2Label=resourceName cs3=9c1f07e2 cs3Label=sessionId cs4=4bf92f3577b34da6a3ce929d0e0e4736 cs4Label=traceId cs5={"fields":["labels"],"role":"admin","src_ip":"10.20.1.11","version":7} cs5Label=details cn1=3672 cn1Label=auditId cn2=1 cn2Label=schemaVersion
O cabeçalho, até a sétima barra vertical:
- Device Vendor —
Flussonic; - Device Product —
agora: por ele o SIEM escolhe as suas regras de análise; - Device Version — a versão da Agora instalada;
- Device Event Class ID e Name — a ação, o mesmo nome de máquina da coluna Ação da lista:
stream_config.patch,admin.create,auth.login_failed; - Severity — a gravidade do evento, descrita abaixo.
Depois vêm os campos, na forma chave=valor:
| Campo CEF | O que contém |
|---|---|
rt |
o momento do evento, em milissegundos desde a época |
externalId |
o identificador global do evento — por ele o SIEM descarta duplicados |
dvchost |
o identificador da instalação da Agora: os eventos de duas instalações num mesmo SIEM não se misturam |
suid |
o tipo de ator: admin, static (chave estática) ou node (registro de uma máquina do cluster) |
suser |
o login do administrador; a chave estática não o tem |
outcome |
success numa ação que aconteceu, failure num login falhado |
src |
o endereço de onde veio a requisição |
cs1, cs2 |
tipo e nome do recurso (cs1Label=resourceType, cs2Label=resourceName) |
cs3 |
o identificador da sessão do administrador (cs3Label=sessionId): liga um login a tudo o que foi feito nessa sessão |
cs4 |
o identificador de rastreamento da requisição (cs4Label=traceId) — com ele o evento se casa com os logs |
cs5 |
os detalhes do lançamento em JSON (cs5Label=details): papel, versão do documento, lista de campos alterados |
cn1 |
o número do lançamento no registo da instalação (cn1Label=auditId) |
cn2 |
a versão do esquema do evento (cn2Label=schemaVersion) |
Os campos que um evento não tem ficam fora da linha por completo: uma chave vazia seria lida pelo SIEM como um valor vazio. Uma ação com a chave estática, por exemplo, não tem nem suser nem cs3.
Os caracteres especiais são escapados como exige a especificação CEF: no cabeçalho, a barra invertida e a barra vertical; nos campos, a barra invertida e o sinal de igual; as quebras de linha viram \n. Por isso um evento ocupa sempre exatamente uma linha, seja o que for que os seus valores contenham.
Gravidade do evento¶
A gravidade não é guardada no registo — ela é deduzida do evento na hora da exportação, por uma mesma tabela:
- 7 — uma ação falhada; por enquanto, uma tentativa de login falhada (
auth.login_failed); -
5 — uma ação que a equipe de segurança espera acima do fluxo geral:
- a remoção de qualquer coisa, a revogação de uma máquina, a reemissão dos tickets internos do cluster, a revelação do token de entrada;
- qualquer ação sobre as contas de administradores;
- a edição das configurações de acesso e das configurações da própria instalação de controle;
- a abertura e o fechamento da janela de entrada;
- qualquer ação com a chave estática — um login com as credenciais de emergência merece atenção por si só;
-
3 — todo o resto: edição de streams, modelos, zonas de entrega, o login de um administrador.
As regras se apoiam na forma da ação, e não numa lista feita de antemão, de modo que as ações que surgirem em versões futuras recebem a sua gravidade pelas mesmas regras.
Coleta periódica num SIEM¶
O coletor do SIEM busca o registo por janelas conforme um agendamento: cada requisição usa como from o to da anterior. Os dois limites pertencem à janela, então um lançamento que cai exatamente na junção chega duas vezes — o SIEM descarta o duplicado por externalId. Da mesma forma, uma janela repetida após uma transferência interrompida é transferida sem perdas.
Uma janela não deve ir além da retenção do registo — sete dias por padrão (a configuração audit_log_ttl_secs, veja Retenção e proteção). Um coletor que ficou atrasado por mais tempo só encontrará o que ainda não foi apagado.
A um coletor que lê JSON também serve a lista do registo com cursor, descrita na seção Exportação para SIEM da página do registo. Os campos do evento são os mesmos; só muda a forma.