Aller au contenu principal
Page non répertoriée
Cette page n'est pas répertoriée. Les moteurs de recherche ne l'indexeront pas, et seuls les utilisateurs ayant un lien direct peuvent y accéder.

Query extended network traffic logs

info

Aperçu

Cette fonctionnalité est en aperçu privé. Pour l’essayer, contactez votre interlocuteur Databricks.

Cet article décrit comment query les Logs de trafic réseau étendus pour analyser le trafic réseau sortant du compute Serverless. Pour avoir un aperçu des informations consignées dans les logs et des liens entre les tables, consultez Logs de trafic réseau étendus.

Conditions requises​

  • Votre compte Databricks doit être inscrit à la préversion privée des logs de trafic réseau étendus. Pour demander votre inscription, veuillez contacter l’équipe de votre compte Databricks.
  • Après l’inscription de votre compte, un administrateur du compte doit activer l’aperçu depuis la page Aperçus de la console du compte. Consultez Gérer les aperçus au niveau du compte.
  • Vous devez avoir accès aux tables système pour query. Consultez la référence des tables système.

Les logs de trafic réseau étendus sont disponibles sur tous les niveaux de plateforme.

Query les événements d’accès réseau autorisés​

La query suivante renvoie les événements d’accès réseau sortant autorisé des dernières 24 heures, y compris la destination et ses adresses IP résolues :

SQL
SELECT
event_time,
workspace_id,
network_source_type,
destination_type,
destination,
CASE
WHEN destination_type = 'DNS'
THEN dns_event.rdata
WHEN destination_type = 'STORAGE'
THEN storage_event.rdata
END AS resolved_ips
FROM system.access.outbound_network
WHERE event_time >= current_timestamp() - INTERVAL 1 DAY
AND access_type = 'ALLOWED'
ORDER BY event_time DESC;

Volumes de trafic des query par adresse IP de destination​

La query suivante renvoie le nombre total d’octets envoyés et reçus via une passerelle de réseau privé au cours des dernières 24 heures, regroupés par workspace et adresse IP de destination. Utilisez-le pour trouver les destinations qui reçoivent le plus de données sortantes.

SQL
SELECT
workspace_id,
destination_ip,
connection_type,
connection_method,
SUM(sent_bytes) AS total_sent_bytes,
SUM(received_bytes) AS total_received_bytes
FROM system.access.outbound_traffic
WHERE period_start_time >= current_timestamp() - INTERVAL 1 DAY
GROUP BY
workspace_id,
destination_ip,
connection_type,
connection_method
ORDER BY total_sent_bytes DESC;

Corréler les événements d’accès avec les logs de flux​

Pour associer les Hostname aux volumes de trafic, joignez system.access.outbound_network à system.access.outbound_traffic sur l’ID du compte, l’ID du workspace et l’adresse IP de destination résolue, en vérifiant que event_time de l’événement d’accès se trouve dans l’intervalle du log de flux. Pour plus de détails sur la relation entre les tables, consultez Comment les tables sont liées.

Trouver les demandes autorisées correspondant au trafic de la passerelle de réseau privé​

La query suivante ajoute une colonne has_matching_png_traffic aux événements d’accès réseau sortant des dernières 24 heures :

SQL
WITH params AS (
SELECT
current_timestamp() - INTERVAL 24 HOURS AS start_time,
current_timestamp() AS end_time
),

network_events AS (
SELECT n.*
FROM system.access.outbound_network n
CROSS JOIN params p
WHERE n.event_time >= p.start_time
AND n.event_time < p.end_time
),

allowed_ips AS (
SELECT
n.event_id,
n.account_id,
n.workspace_id,
n.event_time,
resolved_ip
FROM network_events n
LATERAL VIEW EXPLODE(
CASE
WHEN n.destination_type = 'DNS'
THEN n.dns_event.rdata
WHEN n.destination_type = 'STORAGE'
THEN n.storage_event.rdata
WHEN n.destination_type = 'IP'
THEN ARRAY(n.destination)
ELSE ARRAY()
END
) e AS resolved_ip
WHERE n.access_type = 'ALLOWED'
),

png_matches AS (
SELECT DISTINCT
n.account_id,
n.workspace_id,
n.event_id
FROM allowed_ips n
JOIN system.access.outbound_traffic t
ON t.account_id = n.account_id
AND t.workspace_id = n.workspace_id
AND t.destination_ip = n.resolved_ip
AND n.event_time >= t.period_start_time
AND n.event_time < t.period_end_time
AND t.connection_method = 'PRIVATE_NETWORK_GATEWAY'
CROSS JOIN params p
WHERE t.period_end_time > p.start_time
AND t.period_start_time < p.end_time
)

SELECT
n.*,
CASE
WHEN n.access_type <> 'ALLOWED' THEN NULL
ELSE m.event_id IS NOT NULL
END AS has_matching_png_traffic
FROM network_events n
LEFT JOIN png_matches m
ON m.account_id = n.account_id
AND m.workspace_id = n.workspace_id
AND m.event_id = n.event_id;

La colonne has_matching_png_traffic présente les valeurs suivantes :

Valeur

Description

TRUE

Un enregistrement correspondant du trafic de la passerelle de réseau privée a été trouvé.

FALSE

L’événement d’accès autorisé ne comportait aucun enregistrement correspondant du trafic de passerelle de réseau privée.

NULL

L’événement d’accès n’était pas un événement ALLOWED.

Valeur

Description

TRUE

Un enregistrement correspondant du trafic de la passerelle de réseau privée a été trouvé.

FALSE

L’événement d’accès autorisé ne comportait aucun enregistrement correspondant du trafic de passerelle de réseau privée.

NULL

L’événement d’accès n’était pas un événement ALLOWED.

Une valeur de FALSE ne signifie pas nécessairement que la requête a utilisé une connectivité publique ou une autre connectivité privée. Un flux correspondant peut également être absent en raison de limitations de journalisation ou de différences dans le moment des événements. Si deux Hostname correspondent à la même adresse IP, les deux sont TRUE.

Estimer le volume de trafic par Hostname de destination​

La query suivante estime le volume de trafic associé à chaque Hostname de destination au cours des dernières 24 heures. Elle associe les adresses IP résolues des événements d’accès aux adresses IP de destination des journaux de flux, puis additionne les octets envoyés et reçus.

SQL
WITH params AS (
SELECT
current_timestamp() - INTERVAL 24 HOURS AS start_time,
current_timestamp() AS end_time
),

allowed_ips AS (
SELECT
n.account_id,
n.workspace_id,
n.destination,
n.event_time,
resolved_ip
FROM system.access.outbound_network n
CROSS JOIN params p
LATERAL VIEW EXPLODE(
CASE
WHEN n.destination_type = 'DNS'
THEN n.dns_event.rdata
WHEN n.destination_type = 'STORAGE'
THEN n.storage_event.rdata
WHEN n.destination_type = 'IP'
THEN ARRAY(n.destination)
ELSE ARRAY()
END
) e AS resolved_ip
WHERE n.access_type = 'ALLOWED'
AND n.event_time >= p.start_time
AND n.event_time < p.end_time
),

matched_flows AS (
SELECT
t.event_id,
t.workspace_id,
t.connection_method,
MAX(t.received_bytes) AS received_bytes,
MAX(t.sent_bytes) AS sent_bytes,
COLLECT_SET(n.destination) AS destinations
FROM allowed_ips n
JOIN system.access.outbound_traffic t
ON t.account_id = n.account_id
AND t.workspace_id = n.workspace_id
AND t.destination_ip = n.resolved_ip
AND n.event_time >= t.period_start_time
AND n.event_time < t.period_end_time
CROSS JOIN params p
WHERE t.period_end_time > p.start_time
AND t.period_start_time < p.end_time
GROUP BY
t.event_id,
t.workspace_id,
t.connection_method
)

SELECT
workspace_id,
destinations,
connection_method,
SUM(received_bytes) AS total_received_bytes,
SUM(sent_bytes) AS total_sent_bytes
FROM matched_flows
GROUP BY
workspace_id,
destinations,
connection_method
ORDER BY total_sent_bytes DESC;

Les résultats comprennent les colonnes suivantes :

  • workspace_id: Workspace d’où provient le trafic.
  • destinations: Hostname ou emplacements de stockage associés au trafic. Cette liste contient plusieurs entrées lorsque plusieurs Hostnames partagent une même adresse IP de destination.
  • connection_method: Méthode de connectivité utilisée. La valeur est PRIVATE_NETWORK_GATEWAY.
  • total_received_bytes: Nombre total d’octets reçus par le compute Serverless dans les enregistrements de flux correspondants.
  • total_sent_bytes: Nombre total d’octets envoyés par le compute Serverless dans les enregistrements de flux correspondants.

Pour éviter de compter un flux plusieurs fois lorsque plusieurs Hostname correspondent à la même adresse IP, la query regroupe ces Hostname dans un tableau et compte une seule fois les octets de chaque enregistrement de flux. Les résultats sont une approximation et n’attribuent pas un nombre exact d’octets à chaque Hostname lorsque plusieurs Hostname partagent une adresse IP. Le trafic sans événement d’accès correspondant est exclu.