Visualizar objetos de log de fluxo
Um log de fluxo é um resumo do tráfego de rede que é identificado exclusivamente por uma conexão entre duas placas da interface de rede virtual (vNICs), dentro de um determinado espaço de tempo. Um log de fluxo descreve o tráfego que o firewall aceita (grupos de segurança ou ACLs de rede relevantes) ou rejeita, mas não ambos. Ele contém informações do cabeçalho e estatísticas de carga útil.
Os registros de fluxo são gravados periodicamente em IBM Cloud® Object Storage a cada 5 minutos, aproximadamente. Os logs de fluxo são publicados mais frequentemente nos casos nos quais o coletor de log de fluxo atinge fluxos de 100 KB.
Atualmente, os logs de fluxo coletam o tráfego do Protocolo de Controle de Transmissões (TCP) e do User Datagram Protocol (UDP), mas não o tráfego do Internet Control Message Protocol (ICMP).
Cada objeto de log de fluxo contém logs de fluxo individuais. Para visualizar ou analisar os registros de fluxo, use o IBM Analytics Engine. Para obter mais informações, consulte o tutorial Introdução IBM Analytics Engine.
IBM Cloud Data Engine está desatualizado e não é mais compatível. Se você atualmente usa instâncias existentes de Data Engine, é recomendável migrar suas cargas de trabalho para IBM Analytics Engine.
Formato de dados do log de fluxo
Os resumos de tráfego do log de fluxo contêm as informações a seguir:
- Contagens de byte/pacote, separadamente para RX (recebimento) e TX (transmissão).
- Se uma conexão é iniciada ou parada no espaço de tempo.
Como um log de fluxo reflete o tráfego de rede em uma janela de tempo limitada, uma conexão de longa execução pode fazer com que diversos logs de fluxo sejam emitidos. Para cada conexão processada por uma vNIC, uma sequência ordenada por tempo de logs de fluxo é emitida (não incluindo falhas). Esses registros de fluxo aparecem em um ou mais objetos Object Storage.
O initiator_ip em um log de fluxo é definido como o source_ip que aparece no primeiro pacote de sua conexão que atingiu a vNIC. No nível de implementação, esse pacote é geralmente aquele que faz com que a nova conexão
seja incluída na tabela de conexões. Da mesma forma, o target_ip no log de fluxo é configurado para o campo dest_ip nesse mesmo pacote.
Se a vNIC do inicializador de conexão e a vNIC do destino de conexão ativarem logs de fluxo, o inicializador e o IP de destino e os campos de portas serão idênticos nos logs de fluxo em ambas as vNICs.
Exemplo: Considere um cliente que está enviando uma solicitação HTTP para um servidor web. O log de fluxo para essa solicitação de HTTP na vNIC do lado do cliente tem o endereço IP do cliente como initiator_ip. O log de fluxo correspondente
na vNIC do lado do servidor tem o mesmo initiator_ip.
O start_time e o end_time em um log de fluxo refletem:
- Horário de captura - O horário no qual os elementos do caminho de dados foram consultados por contadores de tráfego.
- Horário de caminho de dados - O horário conforme mantido no próprio elemento de caminho de dados.
É possível que o log de fluxo não reflita todo o tráfego (por exemplo, no caminho de dados) entre um log de fluxo start_time e end_time. Em outras palavras, pode ser que os pacotes enviados e recebidos pela vNIC no
final da janela de captura sejam refletidos somente em um log de fluxo com a janela start_time mais recente.
Os registros de fluxo refletem o tráfego real nas conexões: se não ocorrer tráfego em uma conexão em uma janela de captura, nenhum registro de fluxo aparecerá para ela no objeto “ Object Storage ” (Registro de fluxo) para essa janela. Isso significa que a sequência de registros de fluxo para uma conexão pode ser mapeada para uma sequência de objetos não consecutivos Object Storage.
A matriz de logs de fluxo dentro de um objeto não precisa ser classificada em nenhuma ordem específica.
Tráfego rejeitado:
- Um log de fluxo específico resume o tráfego rejeitado ou aceito, nunca ambos.
- A sequência de logs de fluxo para uma conexão pode ter sobreposições de espaço de tempo entre os logs de fluxo aceitos e rejeitados.
- Pacotes rejeitados que não estão associados a uma conexão existente (por exemplo, um grupo de segurança ou uma ACL de rede nega a iniciação de conexão).
- Pacotes rejeitados em uma conexão existente (por exemplo, um tráfego que não corresponde à máquina de estado TCP ou uma conexão intermediária mudada pela regra de ACL de rede).
- Os pacotes rejeitados são gravados em logs de fluxo separados com base em seu estado de entrada ou de saída.
Os fluxos serão identificados como rejeitados se seus pacotes tiverem sido bloqueados por regras de grupo de segurança ou de ACL de rede.
Formato do objeto de log de fluxo
Os registros de fluxo são gravados no bucket Object Storage especificado pelo usuário, seguindo a seguinte convenção de nomenclatura:
ibm_vpc_flowlogs_v1/account={account}/region={region}/vpc-id={vpc-id}/subnet-id={subnet-id}/endpoint-type=vnics/instance-id={vsi-id}/vnic-id={vnic-id}/record-type={all|ingress|egress}/year={xxxx}/month={yy}/day={zz}/hour={hh}/stream-id={stream-id}/{sequence-number}.gz
Em que:
{stream-id}é uma sequência de data e hora em formato ISO 8601yyyymmddThhmmssZ(Hora Universal Coordenada), definida como o horário de criação do primeiro objeto nodirectory.{sequence-number}é um contador de objetos em execução dentro do fluxo, representado como um campo de oito caracteres, preenchido com zeros (%08d).{all|ingress|egress}mostra o tipo de tráfego que o fluxo inclui.{xxxx}é o ano em formato de quatro dígitos.{yy}é o mês em formato de dois dígitos, com zero à esquerda.{zz}é o dia do mês em um formato de dois dígitos, com zero à esquerda.{hh}é a hora no formato de zero à esquerda (por exemplo, 00-24).
Quaisquer instâncias de caracteres inseguros de URL no caminho são codificadas por URL.
O objeto Object Storage de um log de fluxo contém um único objeto JSON válido. O objeto Object Storage está .gz compactado.
Os campos do cabeçalho do objeto especificados na tabela a seguir são gravados nos metadados do objeto Object Storage.
Campos do cabeçalho do objeto de registros de fluxo (por objeto S do Object Storage )
| Campo | Tipo | Descrição |
|---|---|---|
version |
string | A versão Semântica. |
collector_crn |
string | O nome de recurso em nuvem (CRN) do coletor de log de fluxo. |
attached_endpoint_type |
string | Atualmente, o único valor é vnic. |
network_interface_id |
string | O ID vnic , já que ele não possui nenhum CRN de vNIC. |
instance_crn |
string | O CRN da instância à qual a interface de rede está anexada. |
vpc_crn |
string | O CRN da VPC da qual o coletor de log de fluxo é um membro. |
capture_start_time |
string | Data e Hora (Hora Universal Coordenada) da RFC 3339 |
capture_end_time |
string | Data e Hora (Hora Universal Coordenada) da RFC 3339 |
state |
string | Indica o estado operacional do coletor do log de fluxo. OK significa que os dados estão sendo coletados e enviados sem nenhum erro. skip data indica dados que foram perdidos durante esse intervalo de coleta
(por exemplo, por causa da alta taxa de pacotes SYN rejeitados). |
number_of_flow_logs |
uin32 | O número de elementos em uma matriz flow_logs. Como esse número é altamente variável, ele é útil como uma referência rápida do número de logs de fluxo contidos em um único objeto Object Storage, sem a necessidade de baixar
o objeto primeiro. |
flow_logs |
matriz de objetos JSON | Pode ser uma matriz vazia, que indica no traffic. |
Campos de log de fluxo
| Campo | Tipo | Descrição |
|---|---|---|
start_time |
string | Quando o primeiro byte em um log de fluxo foi capturado e visto no caminho de dados (Data e Hora da RFC 3339 - Hora Universal Coordenada). |
end_time |
string | Quando o último byte em um log de fluxo foi capturado e visto no caminho de dados (Data e Hora da RFC 3339 - Hora Universal Coordenada). |
connection_start_time |
string | Quando o primeiro byte na conexão de um log de fluxo foi capturado e visto no caminho de dados (RFC 3339 Data e Hora - Hora Universal Coordenada). |
direction |
string | Os valores são I para entrada ou O para saída. Se o primeiro pacote na conexão tiver sido recebido pelo vNIC, a direção será I. Se o primeiro pacote tiver sido enviado pelo vNIC,
a direção será O. |
action |
string | Os valores são accepted (o tráfego resumido por esse fluxo foi aceito) ou rejected (o tráfego foi rejeitado). |
initiator_ip |
string | (Endereço IPv4) O IP de origem conforme aparece no primeiro pacote que é processado pela vNIC nessa conexão. Se direction=="outbound", um IP privado associado à vNIC. |
target_ip |
string | (Endereço IPv4) O IP de destino conforme aparece no primeiro pacote que é processado pela vNIC nessa conexão. Se direction=="inbound", um IP privado associado à vNIC. |
initiator_port |
uint16 | A porta de origem TCP/UDP conforme aparece no primeiro pacote que é processado por esta vNIC nessa conexão. |
target_port |
uint16 | A porta de destino TCP/UDP conforme aparece no primeiro pacote que é processado por esta vNIC nessa conexão. |
transport_protocol |
uint8 | O número do protocolo Autoridade para Atribuição de Números na Internet (IANA) (TCP ou UDP). |
ether_type |
string | Atualmente, IPv4 é o único valor. |
was_initiated |
bool | A conexão iniciada nesse log de fluxo. |
was_terminated |
bool | A conexão finalizada (por exemplo, timeout/RST/Final-FIN). |
bytes_from_initiator |
uint64 | A contagem de bytes na conexão no espaço de tempo desse log de fluxo, do Inicializador para o Destino. |
packets_from_initiator |
uint64 | A contagem de pacotes na conexão no espaço de tempo desse log de fluxo, do Inicializador para o Destino. |
bytes_from_target |
uint64 | A contagem de bytes na conexão no espaço de tempo desse log de fluxo, do Destino para o Inicializador. |
packets_from_target |
uint64 | A contagem de pacotes na conexão no espaço de tempo desse log de fluxo, do Destino para o Inicializador. |
cumulative_bytes_from_initiator |
uint64 | A contagem de bytes desde que a conexão foi iniciada, do Inicializador para o Destino. |
cumulative_packets_from_initiator |
uint64 | A contagem de pacotes desde que a conexão foi iniciada, do Inicializador para o Destino. |
cumulative_bytes_from_target |
uint64 | A contagem de bytes desde que a conexão foi iniciada, do Destino para o Inicializador. |
cumulative_packets_from_target |
uint64 | A contagem de pacotes desde que a conexão foi iniciada, do Destino para o Inicializador. |
Na maioria dos casos, é possível localizar o campo de direção ao comparar o IP privado da vNIC com os IPs de origem e de destino. No entanto, o campo é conveniente para consultas.
Exemplo de objeto de log de fluxo
{
"version": "0.0.1",
"collector_crn": "crn",
"attached_endpoint_type": "vnic",
"network_interface_id": "crn",
"instance_crn": "crn",
"vpc_crn": "crn"
"capture_end_time": "2008-09-15T15:53:00Z",
"capture_start_time": "2008-09-15T15:00:00Z",
"state": "ok",
"number_of_flow_logs" : 1,
"flow_logs": [
{
"start_time": "2008-09-15T15:53:00",
"end_time": "2008-09-15T15:40:00",
"direction": "O",
"action": "accepted",
"initiator_ip": "1.2.3.4",
"initiator_port": 20033,
"target_ip": "5.6.7.8",
"target_port": 80,
"transport_protocol": 6,
"ether_type": "IPv4",
"was_initiated": true,
"was_terminated": false,
"bytes_from_initiator": 12000,
"packets_from_initiator": 2212,
"bytes_from_target": 323232,
"packets_from_target": 3232
"cumulative_packets_from_initiator": 2212,
"cumulative_packets_from_target": 3232,
"cumulative_bytes_from_target": 323232,
"cumulative_bytes_from_initiator": 12000,
}
],
}
Visualização de arquivos de log de fluxo gerados a partir do balde Object Storage
Se você usar o plano de preços Lite (gratuito) para IBM Cloud Object Storage, poderá acessar os arquivos de objeto de log de fluxo gerados diretamente do bucket Object Storage para verificar se os arquivos foram criados com êxito e se os objetos estão sendo gerados.
Para visualizar arquivos de log de fluxo gerados a partir do balde Object Storage, siga estas etapas:
-
Para assegurar que os logs de fluxo estejam sendo capturados, verifique o depósito Object Storage.
-
Navegue na pasta para encontrar o seu VPC ou o recurso onde você configurou o monitoramento.
-
Drill-down no recurso para encontrar o recurso de rede que você está monitorando.
Se configurado corretamente, você deverá ver vários arquivos gzip para cada entrada de log.
Para garantir que os dados estejam sendo capturados, faça o download de um dos arquivos para visualizar seu conteúdo e garantir que o tráfego esteja sendo capturado.