Objekte des Ablaufprotokolls anzeigen

Bei einem Ablaufprotokoll handelt es sich um eine auf ein bestimmtes Zeitfenster bezogene Zusammenfassung des Netzverkehrs, der durch eine Verbindung zwischen zwei vNICs (Virtual Network Interface Cards) eindeutig gekennzeichnet ist. Ablaufprotokolle beschreiben den Datenverkehr, der von der Firewall gemäß den relevanten Sicherheitsgruppen oder Netz-ACLs zugelassen wurde, oder aber den Datenverkehr, der abgelehnt wurde. Sie enthalten Headerinformationen und Statistiken zu Nutzdaten.

Flow-Protokolle werden etwa alle 5 Minuten regelmäßig in die Datei „ IBM Cloud® Object Storage “ geschrieben. Wenn der Ablaufprotokollkollektor 100-KB-Datenflüsse erreicht, werden in einem entsprechend kürzeren Intervall Ablaufprotokolle publiziert.

Derzeit wird von den Ablaufprotokollen TCP-Datenverkehr (TCP = Transmission Control Protocol) und UDP-Datenverkehr (UDP = User Datagram Protocol) erfasst. ICMP-Datenverkehr (ICMP = Internet Control Message Protocol) wird nicht erfasst.

Jedes Ablaufprotokollobjekt enthält einzelne Ablaufprotokolle. Um die Flussprotokolle anzuzeigen oder zu analysieren, verwenden Sie die IBM Analytics Engine. Weitere Informationen finden Sie im IBM Analytics Engine -Tutorial für Einsteiger.

IBM Cloud Data Engine ist veraltet und wird nicht mehr unterstützt. Wenn Sie derzeit vorhandene Instanzen von Data Engine verwenden, wird empfohlen, Ihre Workloads zu migrieren IBM Analytics Engine.

Format der Ablaufprotokolldaten

In Ablaufprotokollen enthaltene Zusammenfassungen zum Datenverkehr enthalten die folgenden Informationen:

  • Byte/Paketanzahl für empfangene (RX) und für übertragene Daten (TX)
  • Angabe zur Verbindungsaktion, d. h. ob eine Verbindung im jeweiligen Zeitfenster gestartet oder gestoppt wird

Da ein Ablaufprotokoll den Datenaustausch im Netz in einem begrenzten Zeitfenster widerspiegelt, werden bei einer Verbindung mit langer Laufzeit möglicherweise mehrere Ablaufprotokolle ausgegeben. Für jede Verbindung, die von einer vNIC verarbeitet wird, wird eine nach Zeit geordnete Sequenz von Ablaufprotokollen (Fehlschläge nicht eingeschlossen) ausgegeben. Diese Flussprotokolle erscheinen in einem oder mehreren „ Object Storage “-Objekten.

Der Wert für initiator_ip in einem Ablaufprotokoll ist als source_ip-Wert definiert, der im ersten Paket der zugehörigen Verbindung enthalten ist, das die vNIC erreicht. Auf der Implementierungsebene entspricht dieses Paket normalerweise dem Paket, das dazu führt, dass die neue Verbindung zur Verbindungstabelle hinzugefügt wird. Dementsprechend ist der Wert für target_ip im Ablaufprotokoll mit dem Wert im Feld dest_ip in demselben Paket definiert.

Wenn sowohl der vNIC des Verbindungsinitiators als auch der vNIC des Verbindungsziels Ablaufprotokolle ermöglichen, sind die Felder für die IP-Adressen und Ports des Initiators und des Ziels in den Ablaufprotokollen beider vNICs identisch.

Beispiel: Stellen Sie sich einen Client vor, der eine Anfrage vom Typ „ HTTP “ an einen Webserver sendet. Im Ablaufprotokoll für die HTTP-Anforderung wird die clientseitige IP-Adresse als initiator_ip angegeben. Das entsprechende Ablaufprotokoll auf der serverseitigen vNIC weist denselben Wert als initiator_ip auf.

Die Werte für start_time und end_time in einem Ablaufprotokoll bilden Folgendes ab:

  • Capture time (Erfassungszeit) - Die Zeit, in der Datenpfadelemente nach Datenverkehrszählern abgefragt wurden
  • Data path time (Zeit des Datenpfads) - Die Zeit, wie sie im Datenpfadelement selbst geführt wird

Möglicherweise bildet das Ablaufprotokoll nicht den gesamten Datenverkehr (z. B. im Datenpfad) zwischen dem Zeitpunkt für start_time und dem Zeitpunkt für end_time ab. Anders ausgedrückt könnte es sein, dass Pakete, die vom vNIC gegen Ende des Erfassungsfensters gesendet und empfangen werden, nur in einem Ablaufprotokoll mit dem späteren Startzeitfenster (start_time) wiedergegeben werden.

Flow-Protokolle spiegeln den tatsächlichen Datenverkehr auf Verbindungen wider: Wenn in einem Erfassungsfenster kein Datenverkehr auf einer Verbindung stattfindet, wird dafür kein Flow-Protokoll im Objekt „ Object Storage “ für dieses Fenster angezeigt. Das bedeutet, dass die Abfolge von Flow-Logs für eine Verbindung möglicherweise einer Abfolge von nicht aufeinanderfolgenden „ Object Storage “-Objekten zugeordnet wird.

Die Datenflussprotokollfolge innerhalb eines Objekts ist möglicherweise nicht in einer bestimmten Reihenfolge sortiert.

Abgelehnter Datenverkehr:

  • In einem Ablaufprotokoll wird entweder ausschließlich abgelehnter Datenverkehr oder ausschließlich zugelassener Datenverkehr zusammengefasst.
  • Die Sequenz der Ablaufprotokolle für eine Verbindung kann Überschneidungen der Zeitfenster der Ablaufprotokolle für zugelassenen Datenverkehr in Bezug auf die Zeitfenster der Ablaufprotokolle für abgelehnten Datenverkehr aufweisen.
  • Abgelehnte Pakete, die keiner vorhandenen Verbindung zugeordnet sind (z. B. Fälle, in denen die Verbindungsinitialisierung aufgrund einer Sicherheitsgruppe oder Netz-ACL verweigert wurde).
  • Abgelehnte Pakete einer vorhandenen Verbindung (z. B. Fälle, in denen der Datenverkehr nicht der TCP-Zustandsmaschine entspricht oder eine Netz-ACL-Regel während der Verbindungsdauer geändert wurde).
  • Abgelehnte Pakete werden in separate Ablaufprotokolle für eingehende Daten und für ausgehende Daten geschrieben.

Datenflüsse werden als abgelehnt markiert, wenn die zugehörigen Pakete aufgrund von Sicherheitsgruppen oder Netz-ACL-Regeln blockiert wurden.

Format der Ablaufprotokollobjekte

Flow-Protokolle werden unter Verwendung der folgenden Namenskonvention in den vom Benutzer angegebenen Bucket „ Object Storage “ geschrieben:

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

Dabei gilt:

  • {stream-id} ist eine Zeichenfolge für Datum und Uhrzeit im ISO 8601-Format yyyymmddThhmmssZ (Coordinated Universal Time), die mit demjenigen Zeitpunkt definiert ist, an dem das erste Objekt im directory erstellt wurde.
  • {sequence-number} ist ein aktiver Zähler von Objekten innerhalb des Datenstroms, der als achtstelliges, nullgefülltes Feld (%08d) dargestellt wird.
  • {all|ingress|egress} zeigt die Art des Datenverkehrs, den der Fluss umfasst.
  • {xxxx}: Jahreszahl in vierstelligem Format.
  • {yy}: Monatsangabe in zweistelligem Format, gegebenenfalls mit vorangestellter Null.
  • {zz}: Tag des Monats in zweistelligem Format, gegebenenfalls mit vorangestellter Null.
  • {hh}: Zeitangabe, gegebenenfalls mit vorangestellter Null (z. B. 00-24).

Enthält der Pfad Zeichen, deren Verwendung für URLs als unsicher eingestuft wird, werden diese Zeichen kodiert.

Das Objekt „ Object Storage “ eines Flow-Protokolls enthält ein einzelnes gültiges JSON-Objekt. Das Objekt „ Object Storage “ ist .gz komprimiert.

Die in der folgenden Tabelle angegebenen Objekt-Header-Felder werden in die Metadaten des Objekts „ Object Storage “ geschrieben.

Flow-Protokoll-Objekt-Header-Felder (pro Object Storage S-Objekt)

Kopffelder des Flow Logs Objekts (pro Object Storage Objekt)
Feld Typ Beschreibung
version Zeichenfolge Die Semantikversion
collector_crn Zeichenfolge Der Cloud-Ressourcenname (CRN) des Ablaufprotokollkollektors
attached_endpoint_type Zeichenfolge Derzeit lautet der einzige verwendete Wert vnic.
network_interface_id Zeichenfolge Die ID des vnic, da es keinen CRN für den vNIC gibt.
instance_crn Zeichenfolge Der CRN der Instanz, der die Netzschnittstelle zugeordnet ist
vpc_crn Zeichenfolge Der CRN der VPC, zu der das Ablaufprotokoll gehört
capture_start_time Zeichenfolge Datum und Uhrzeit gemäß RFC 3339 (koordinierte Weltzeit)
capture_end_time Zeichenfolge Datum und Uhrzeit gemäß RFC 3339 (koordinierte Weltzeit)
state Zeichenfolge Gibt den Betriebsstatus des Datenflussprotokollkollektors an. OK bedeutet, dass Daten ohne Fehler erfasst und versendet werden. skip data gibt Daten an, die während dieses Erfassungsintervalls verloren gegangen sind (z. B. aufgrund einer hohen Rate zurückgewiesener SYN-Pakete).
number_of_flow_logs uin32 Die Anzahl der Elemente in einem Array flow_logs. Da diese Zahl sehr variabel ist, eignet sie sich als schnelle Referenz für die Anzahl der Flow-Protokolle, die in einem einzelnen „ Object Storage “-Objekt enthalten sind, ohne dass das Objekt zuvor heruntergeladen werden muss.
flow_logs Array von JSON-Objekten Hierbei kann es sich um ein leeres Array handeln, wenn kein Datenaustausch (no traffic) erfolgt ist.

Felder des Ablaufprotokolls

Felder des Ablaufprotokolls
Feld Typ Beschreibung
start_time Zeichenfolge Zeitpunkt, zu dem das erste Byte in einem Ablaufprotokoll erfasst wurde und im Datenpfad erschienen ist (Datum und Zeit gemäß RFC 3339 in koordinierter Weltzeit)
end_time Zeichenfolge Der Zeitpunkt, zu dem das letzte Byte in einem Ablaufprotokoll erfasst wurde und im Datenpfad erschienen ist (Datum und Zeit gemäß RFC 3339 in koordinierter Weltzeit)
connection_start_time Zeichenfolge Wenn das erste Byte im Verbindung eines Datenflussprotokolls erfasst und im Datenpfad angezeigt wurde (RFC 3339 Date and Time-Coordinated Universal Time)
direction Zeichenfolge I für eingehende Daten oder O für ausgehende Daten. Wenn das erste Paket auf der Verbindung vom vNIC Empfangen war, lautet die Richtung I. Wenn das erste Paket Gesendet vom vNIC war, lautet die Richtung O.
action Zeichenfolge accepted, wenn der im Ablaufprotokoll zusammengefasste Datenverkehr zugelassen wurde, oder rejected, wenn der Datenverkehr abgelehnt wurde
initiator_ip Zeichenfolge (IPv4-Adresse) Die Quellen-IP wie im ersten Paket enthalten, das von der vNIC in dieser Verbindung verarbeitet wird. Wenn direction=="outbound" angegeben ist, ist dem vNIC eine private IP-Adresse zugeordnet.
target_ip Zeichenfolge (IPv4-Adresse) Die Ziel-IP wie im ersten Paket enthalten, das von der vNIC in dieser Verbindung verarbeitet wird. Wenn direction=="inbound" angegeben ist, ist dem vNIC eine private IP-Adresse zugeordnet.
initiator_port uint16 Der TCP/UDP-Quellenport wie im ersten Paket enthalten, das von der vNIC in dieser Verbindung verarbeitet wird
target_port uint16 Der TCP/UDP-Zielport wie im ersten Paket enthalten, das von der vNIC in dieser Verbindung verarbeitet wird
transport_protocol uint8 Die IANA-Protokollnummer (IANA = Internet Assigned Numbers Authority) für TCP oder UDP
ether_type Zeichenfolge Derzeit ist IPv4 der einzige mögliche Wert.
was_initiated bool Die in diesem Ablaufprotokoll erfasste Verbindung wurde initialisiert.
was_terminated bool Die Verbindung wurde beendet (z. B. timeout/RST/Final-FIN).
bytes_from_initiator uint64 Die Anzahl der vom Initiator über die Verbindung zum Ziel übertragenen Bytes im Zeitfenster des Ablaufprotokolls
packets_from_initiator uint64 Die Anzahl der vom Initiator über die Verbindung zum Ziel übertragenen Pakete im Zeitfenster des Ablaufprotokolls
bytes_from_target uint64 Die Anzahl der vom Ziel über die Verbindung zum Initiator übertragenen Bytes im Zeitfenster des Ablaufprotokolls
packets_from_target uint64 Die Anzahl der vom Ziel über die Verbindung zum Initiator übertragenen Pakete im Zeitfenster des Ablaufprotokolls
cumulative_bytes_from_initiator uint64 Die Anzahl der seit dem Start der Verbindung vom Initiator zum Ziel übertragenen Bytes
cumulative_packets_from_initiator uint64 Die Anzahl der seit dem Start der Verbindung vom Initiator zum Ziel übertragenen Pakete
cumulative_bytes_from_target uint64 Die Anzahl der seit dem Start der Verbindung vom Ziel zum Initiator übertragenen Bytes
cumulative_packets_from_target uint64 Die Anzahl der seit dem Start der Verbindung vom Ziel zum Initiator übertragenen Pakete

In den meisten Fällen finden Sie das Richtungsfeld, indem Sie die private IP-Adresse der vNIC mit den Quellen- und Ziel-IPs vergleichen. Das Feld eignet sich jedoch gut für Abfragen.

Beispiel eines Ablaufprotokollobjekts

    {
        "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,
            }
        ],
    }

Generierte Flow-Protokolldateien aus dem Bucket Object Storage anzeigen

Wenn Sie den Preisplan Lite (kostenlos) für IBM Cloud Object Storage verwenden, können Sie direkt vom Object Storage Bucket aus auf die generierten Flow-Log-Objektdateien zugreifen, um zu überprüfen, ob die Dateien erfolgreich erstellt wurden und die Objekte generiert werden.

Gehen Sie wie folgt vor, um generierte Datenflussprotokolldateien aus dem Bucket Object Storage anzuzeigen:

  1. Überprüfen Sie das Bucket Object Storage, um sicherzustellen, dass die Datenflussprotokolle erfasst werden.

  2. Navigieren Sie im Ordner zu Ihrer VPC oder der Ressource, für die Sie die Überwachung konfiguriert haben.

  3. Führen Sie einen Drilldown zu der Ressource durch, um die Netzressource zu finden, die Sie überwachen.

    Bei ordnungsgemäßer Konfiguration sollten für jeden Protokolleintrag mehrere gzip-Dateien angezeigt werden.

Um sicherzustellen, dass die Daten erfasst werden, laden Sie eine der Dateien herunter und sehen Sie sich deren Inhalt an, um sicherzustellen, dass der Datenverkehr erfasst wird.