ADC

Transaktionsprotokolle direkt von NetScaler nach Splunk exportieren

Sie können jetzt Transaktionsprotokolle von NetScaler auf branchenübliche Log-Aggregator-Plattformen wie Splunk exportieren. Das Transaktionslog ist die Aufzeichnung der Ereignisse des Anwendungsdatenverkehrs auf dem NetScaler, wie HTTP-Anfragen und -Antworten, Verbindungsstart und -ende. Weitere Informationen zu Transaktionsprotokollen finden Sie unter AppFlow.

Sie können Transaktionsprotokolle im JSON-Format für verschiedene Einblicke wie Web Insight, Security, Gateway und HDX Insights exportieren. Um Transaktionsprotokolle nach Splunk zu exportieren, müssen Sie Splunk als HTTP-Server konfigurieren und den HTTP-Event-Collector verwenden, um Transaktionsprotokolle über HTTP (oder HTTPS) direkt von Ihrem NetScaler an die Splunk-Plattform zu senden. Mithilfe der Visualisierungstools von Splunk erhalten Sie aussagekräftige Einblicke in die exportierten Daten.

Hinweis:

Die IP-Adressen, die als Teil der Transaktionsprotokolle exportiert werden, werden im Dezimalformat statt im Standardformat angezeigt. Wenn Ihre NetScaler-IP-Adresse beispielsweise 10.102.154.153 lautet, wird dieselbe Adresse in den Transaktionsprotokollen auf Splunk als 174496409 angezeigt. Sie können die in Splunk verfügbaren integrierten Ausdrücke verwenden, um die IP-Adresse vom Dezimalformat in das Standardformat zu konvertieren.

Exportieren Sie Transaktionsprotokolle von NetScaler nach Splunk, der als HTTP-Server konfiguriert ist

Um den Export von Transaktionslogs zu konfigurieren, müssen Sie die folgenden Schritte ausführen:

  1. Konfigurieren Sie einen HTTP-Event-Collector auf Splunk.
  2. Erstellen Sie einen Collector-Service und ein Analyseprofil auf NetScaler.

HTTP-Event-Collector auf Splunk konfigurieren

Sie können Transaktionsprotokolle an Splunk weiterleiten, indem Sie einen HTTP-Event-Collector konfigurieren. Die Konfiguration des HTTP-Event-Collectors umfasst das Erstellen eines Authentifizierungstokens und das Zuordnen eines Ereignisindexes zu dem Token, an das Ereignisse gesendet werden, sowie das Festlegen der HTTP-Portnummer. Informationen zur Konfiguration des HTTP-Event-Collectors finden Sie in der Splunk-Dokumentation.

Nachdem Sie den HTTP-Event-Collector konfiguriert haben, kopieren Sie das Authentifizierungstoken und speichern Sie es als Referenz. Sie müssen dieses Token bei der Konfiguration des Analyseprofils auf NetScaler angeben.

Konfigurieren Sie das Analyseprofil auf NetScaler

Gehen Sie wie folgt vor, um NetScaler-Transaktionsprotokolle nach Splunk zu exportieren.

  1. Erstellen Sie einen Collector-Service für Splunk.

    add service <collector> <splunk-server-ip-address> <protocol> <port>
    

    Beispiel:

    add service splunk_service 10.102.34.155 HTTP 8088
    

    In dieser Konfiguration:

    • ip-address: IP-Adresse des Splunk-Servers.
    • collector-name: Name des Collectors.
    • protocol: Geben Sie das Protokoll als HTTP oder SSL an.
    • port: Portnummer.
  2. Erstellen Sie ein Analyseprofil.

    add analytics profile `profile-name` -type <insight> -collectors `collector-name` -analyticsAuthToken `<auth-scheme> <authorization-parameters>` -analyticsEndpointContentType `application/json` -analyticsEndpointUrl `endpoint-url`
    

    Beispiel:

    add analytics profile transaction-log-profile -type webinsight -collectors splunk_collector -analyticsAuthToken "Splunk 1234-5678-12345" -analyticsEndpointContentType "application/json" -analyticsEndpointUrl "/services/collector/event"
    

    Hinweis:

    Die -allHttpHeaders Option wird für den Export von Splunk-Transaktionsprotokollen in NetScaler 14.1-25.x und höher unterstützt.

    add analytics profile <profile-name> -type webinsight -allHttpHeaders

    set analytics profile <profile-name> -type webinsight -allHttpHeaders

    In dieser Konfiguration:

    • insight: Arten von Erkenntnissen, die Sie exportieren können. Die folgenden Optionen sind verfügbar:
      • botinsight
      • CIinsight
      • Gatewayinsight
      • hdxinsight
      • lsninsight
      • securityinsight
      • tcpinsight
      • udpinsight
      • videoinsight
      • webinsight
    • -analyticsAuthToke auth-scheme authorization-parameters: Geben Sie das Authentifizierungstoken an, das beim Senden von Protokollen an Splunk in den Autorisierungsheader mit dem Authentifizierungsschema “Splunk” aufgenommen werden soll. Dieses Token ist das Authentifizierungstoken, das auf dem Splunk-Server bei der Konfiguration des HTTP-Event-Collectors erstellt wurde.

    • analyticsEndpointContentType: Der Content-Type-Header. Der fest codierte Wert ist application/json.

    • analyticsEndpointUrl: Der Pfad zu HEC auf Splunk (/services/collector/event oder /services/collector).

      HINWEIS:

      Sie können die Analytics-Profilparameter mit dem Befehl set analytics profile ändern.

    • dataFormatFile: Die Datei, die die Details darüber enthält, welche Daten im Transaktionslog exportiert werden müssen und in welchem Format. Jeder Endpunkt erwartet, dass die JSON-Nutzlast in einem bestimmten Format codiert wird. Wenn das Format nicht angegeben ist, ist standardmäßig splunk_format.txt ausgewählt.
  3. Überprüfen Sie die Konfiguration des Analytics-Profils mit dem Befehl show analytics profile.

    > sh analytics profile 
        
    ns_analytics_default_http_profile
    1)      Name: ns_analytics_default_http_profile
            Collector: splunk
            Profile-type: webinsight
                    Page Tracking: DISABLED
                    Client Side Measurements: DISABLED
                    URL Logging: ENABLED
                    Host Header Logging: ENABLED
                    Method Logging: ENABLED
                    Cookie Header Logging: DISABLED
                    Referer Header Logging: DISABLED
                    User Agent Logging: DISABLED
                    Content Type Logging: DISABLED
                    Authorization Header Logging: DISABLED
                    Via Header Logging: DISABLED
                    Location Header Logging: DISABLED
                    URL Category Logging: DISABLED
                    Log All HTTP Headers: DISABLED
                    X-Forwarded-For Header Logging: DISABLED
                    Set-Cookie Header Logging: DISABLED
                    Set-Cookie2 Header Logging: DISABLED
                    Domain Name Logging: DISABLED
                    URL-Query Logging: DISABLED
                    Integrated Cache Logging: DISABLED
                    gRPC Status Logging: DISABLED
                    API Spec Info Export Logging: DISABLED
            Authentication Token:
            Endpoint URL: /services/collector/event
            Endpoint Content-type: text/json
            Reference Count: 1
            Managementlog: NONE
    
  4. Binden Sie das Analyseprofil an den virtuellen Server.

    bind lb vserver <vserver-name> -analyticsProfile transaction-log-profile
    

    Beispiel:

    bind lb vserver sample-virtualserver -analyticsProfile transaction-log-profile
    

Nach erfolgreicher Konfiguration werden Transaktionen basierend auf dem Datenverkehr protokolliert und auf Splunk nach HEC exportiert.

Feldbasierte Filterung von Datensätzen

Standardmäßig exportiert NetScaler Hunderte von Feldern im Transaktionslog, auch wenn die Endpoints nicht alle exportierten Daten benötigen. Außerdem erwartet jeder Endpunkt, dass die JSON-Nutzlast in einem bestimmten Format codiert wird, z. B. den Anfang und das Ende eines Datensatzes, das Trennzeichen zwischen Datensätzen sowie den Anfang und das Ende des Puffers.

Splunk erwartet, dass die von NetScaler kommende JSON-Nutzlast im folgenden Format codiert wird:

  • Pufferstart und -ende: Für BUFFER-START und BUFFER-END ist kein Wert erforderlich.
  • Datensatzbeginn und -ende: Der Datensatz muss mit {"event":{ beginnen und mit }} enden. Alle Felder, die exportiert werden, müssen zwischen DATA-START und DATA-END liegen.

    Die Datensätze müssen mit den folgenden Angaben beginnen:

     RECORD-START
     {"event":{
     DATA_START
    

    Die Datensätze müssen wie folgt enden:

     DATA-END
     }}
     RECORD-END
    
  • Trennzeichen zwischen Datensätzen: Kein Trennzeichen erforderlich.

splunk_format.txt Ist standardmäßig im Ordner var/analytics_conf verfügbar, der das von Splunk erwartete JSON-Nutzdatenformat enthält und auch einige Standardfelder enthält, für die die Daten exportiert werden. Sie können splunk_format.txt als Wert für den Parameter -dataFormatFile im Befehl add analytics profile konfigurieren.

Im Folgenden finden Sie ein Beispiel für eine Datenformatdatei für Splunk:

    BUFFER-START
    RECORD-START
    {"event":{
    DATA-START
    153 observationPointId
    547 nsPartitionId
    154 exportingProcessId
    159 transactionId
    801 httpReqUrl
    685 httpReqMethod
    683 httpReqHost
    472 svrDstIpv4Address
    579 srvSrcPort
    580 srvDstPort
    13 backendSvrIpv6Address
    473 cltIpv4Address
    474 cltDstIpv4Address
    577 cltSrcPort
    578 cltDstPort
    14 transCltIpv6Address
    15 transCltDstIpv6Address
    DATA-END
    }}
    RECORD-END
    RECORD-DELIMITER

    RECORD-DELIMITER-END
    BUFFER-END

Die JSON_fields.txt-Datei var/analytics_conf ist eine Referenzmasterdatei, die die vollständige Liste der Felder zusammen mit ihren Identifikationsnummern enthält. Die Felder in der Masterdatei werden auf der Grundlage der Erkenntnisse kategorisiert. Wenn Sie beispielsweise wissen möchten, welche Felder mit HDX Insight verknüpft sind, können Sie sich die Dateikategorie HDX Insights ansehen. JSON_fields.txt

Sie können die Datei splunk_format.txt an Ihre Anforderungen anpassen. Wenn Sie beispielsweise HDX Insights exportieren möchten, können Sie sich die Kategorie HDX Insights in der Datei JSON_fields.txt ansehen und die erforderlichen Felder in der Datei splunk_format.txt hinzufügen. Ebenso können Sie alle Felder löschen, die Sie nicht exportieren möchten.

Nachdem Sie die Datei splunk_format.txt angepasst haben, führen Sie den folgenden Befehl aus, um das Analyseprofil zu aktualisieren:

update analytics profile <profile-name> -dataFormatFile <data-format-file-name>

Beispiel:

update analytics profile ns _analytics_ default_http_profile -dataFormatFile splunk_format.txt

Sie können den Wert einer Datenformatdatei auch mithilfe der GUI angeben. Navigieren Sie zu System > AppFlow > Analytics-Profile und klicken Sie auf Hinzufügen. Wenn Sie auf der Seite Analytics-Profil erstellen eine der folgenden Optionen für Typ auswählen, wird das Feld Datenformatdatei angezeigt, in dem Sie den Dateinamen angeben können:

  • GLOBAL
  • WEB INSIGHT
  • TCP INSIGHT
  • SECURITY INSIGHT
  • VIDEO INSIGHT
  • HDX INSIGHT
  • GATEWAY INSIGHT
  • LSN INSIGHT
  • BOT INSIGHT
  • TIME SERIES

Beispielausgaben

Dieser Abschnitt enthält Beispielausgaben für verschiedene Transaktionslogs.

Beispielausgabe eines HTTP-Transaktionsprotokolls

Im Folgenden finden Sie eine Beispielausgabe für das HTTP-Transaktionslog.

{
    appName: VS1
    clientMss: 1460
    clntFastRetxCount: 0
    clntTcpJitter: 0
    cintTcpPacketsRetransmited: 0
    clntTcpRtoCount: 0
    clntTcpZeroWindowCount: 0
    cltDstIpv4Address: 174496411
    cltIpv4Address: 174496407
    connEndTimestamp: 0
    connStartTimestamp: 7329468222993076980
    exportingProcessId: 0
    httpReqHost: 10.102.154.155
    httpReqMethod: GET
    httpReqUrl: /big.html
    httpRspLen: 114380
    httpRspStatus: 200
    mainPageCoreId: 0
    mainPageId: 0
    nsPartitionId: 0
    observationPointId: 174496409
    originRspLen: 0
    srvrIcpPacketsRetransmited: 0
    srvrTcpZeroWindowCount: 0
    svrDstIpv4Address: 174496415
    svrIpv4Address: 174496408
    tepSrvrConnRstCode: 0
    transClntRTT: 0
    transCltDstPort: 20480
    transCltFlowEndUsecRx: 7329468222993084980
    transCltFlowEndUsecTx: 7329468222993084980
    transCltFlowStartUsecRx: 7329468222993076980
    transCltFlowStartUsecTx: 7329468222993077984
    transCltSrcPort: 60315
    transCltTotRx0ctCnt: 1766
    transCltTotTx0ctCnt: 117580
    transSrvDstPort: 36895
    transSrvSrcPort: 15213
    transSrvrRTT: 0
    transSvrFlowEndUsecRx: 7329468222993084980
    transSvrFlowEndUsecTx: 7329468222993084980
    transSvrFlowStartUsecRx: 7329468222993077984
    transSvrFlowStartUsecTx: 0
    transSvrTotRx0ctCnt: 117580
    transSvrTotTx0ctCnt: 1766
    transactionId: 4890
}

Beispielausgabe des TCP-Transaktionsprotokolls

Im Folgenden finden Sie eine Beispielausgabe für das TCP-Transaktionsprotokoll.

{
    appName: vs1
    clientConnEndTimestamp: 7333165210582386064
    clientConnStartTimestamp: 7333165210582386054
    clientMss: 1460
    clntFastRetxCount: 0
    clntTcpJitter: 0
    clntTcpPacketsRetransmited: 0
    clntTcpRtoCount: 0
    clntTcpZeroWindowCount: 0
    cltDstIpv4Address: 174496411
    cltDstPort: 20480
    cltIpv4Address: 174496407
    cltSrcPort: 42939
    connectionChainHopCount: 0
    exportingProcessId: 0
    nsPartitionId: 0
    observationPointId: 174496409
    serverConnEndTimestamp: 7333165201992708470
    serverConnStartTimestamp: 7333165201992708459
    srvDstPort: 36895
    srvSrcPort: 51973
    srvrTcpPacketsRetransmited: 0
    srvrTcpZeroWindowCount: 0
    svrDstIpv4Address: 174496415
    svrIpv4Address: 174496408
    tcpClntConnRstCode: 0
    tcpSrvrConnRstCode: 0
    transClntRTT: 0
    transCltTotRxOctCnt: 208
    transCltTotTxOctCnt: 331
    transSrvrRTT: 0
    transSvrTotRxOctCnt: 331
    transSvrTotTxOctCnt: 208
    transactionId: 330
    vlanNumber: 1
}

Beispielausgabe eines SSL-Transaktionsprotokolls

Im Folgenden finden Sie eine Beispielausgabe für das SSL-Transaktionsprotokoll.

{
    appName: sslvs
    clientConnEndTimestamp: 0
    clientConnStartTimestamp: 7333182669624439854
    clientMss: 1460
    clntFastRetxCount: 0
    clntTcpJitter: 0
    clntTcpPacketsRetransmited: 0
    clntTcpRtoCount: 0
    clntTcpZeroWindowCount: 0
    cltDstIpv4Address: 174496411
    cltDstPort: 47873
    cltIpv4Address: 174496407
    cltSrcPort: 17499
    connectionChainHopCount: 0
    exportingProcessId: 0
    httpContentType: text/html
    httpReqHost: 10.102.154.155
    httpReqMethod: GET
    httpReqUrl: /index.html
    httpReqUserAgent: curl/7.69.1
    httpRspLen: 291
    httpRspStatus: 200
    nsPartitionId: 0
    observationPointId: 174496409
    originRspLen: 0
    serverConnEndTimestamp: 0
    serverConnStartTimestamp: 7333182665330184556
    srvDstPort: 36895
    srvSrcPort: 34802
    srvrTcpPacketsRetransmited: 0
    srvrTcpZeroWindowCount: 0
    sslCipherValueBE: 0
    sslCipherValueFE: 50331701
    sslClientCertSizeBE: 0
    sslClientCertSizeFE: 0
    sslClntCertSigHashBE: 0
    sslClntCertSigHashFE: 0
    sslFLagsBE: 0
    sslFLagsFE: 1096
    sslServerCertSizeBE: 0
    sslServerCertSizeFE: 4096
    sslSessionIDBE: 0
    sslSessionIDFE: 2433458443
    sslSigHashAlgBE: 0
    sslSigHashAlgFE: 0
    sslSrvrCertSigHashBE: 0
    sslSrvrCertSigHashFE: 668
    svrDstIpv4Address: 174496415
    svrIpv4Address: 174496408
    tcpClntConnRstCode: 0
    tcpSrvrConnRstCode: 0
    transClntRTT: 0
    transCltFlowEndUsecRx: 7333182669624447854
    transCltFlowEndUsecTx: 7333182669624446854
    transCltFlowStartUsecRx: 7333182669624439854
    transCltFlowStartUsecTx: 7333182669624439854
    transCltTotRxOctCnt: 1501
    transCltTotTxOctCnt: 2223
    transSrvrRTT: 0
    transSvrFlowEndUsecRx: 7333182669624446854
    transSvrFlowEndUsecTx: 7333182669624446854
    transSvrFlowStartUsecRx: 7333182669624446854
    transSvrFlowStartUsecTx: 0
    transSvrTotRxOctCnt: 331
    transSvrTotTxOctCnt: 168
    transactionId: 2640
    vlanNumber: 1
}

Beispielausgabe Web Insight-Transaktionsprotokolls

Im Folgenden finden Sie eine Beispielausgabe für das Web Insight-Transaktionsprotokoll.

{
    appName: vs1
    clientConnEndTimestamp: 0
    clientConnStartTimestamp: 7333336201820249485
    clientMss: 1460
    clntFastRetxCount: 0
    clntTcpJitter: 0
    clntTcpPacketsRetransmited: 0
    clntTcpRtoCount: 0
    clntTcpZeroWindowCount: 0
    cltDstIpv4Address: 174496411
    cltDstPort: 20480
    cltIpv4Address: 174758625
    cltSrcPort: 46824
    connectionChainHopCount: 0
    exportingProcessId: 0
    httpContentType: text/html
    httpReqHost: 10.102.154.155
    httpReqMethod: GET
    httpReqUrl: /
    httpRspLen: 291
    httpRspStatus: 200
    nsPartitionId: 0
    observationPointId: 174496409
    originRspLen: 0
    serverConnEndTimestamp: 0
    serverConnStartTimestamp: 7333336201820250487
    srvDstPort: 36895
    srvSrcPort: 6465
    srvrTcpPacketsRetransmited: 0
    srvrTcpZeroWindowCount: 0
    svrDstIpv4Address: 174496415
    svrIpv4Address: 174496408
    tcpClntConnRstCode: 0
    tcpSrvrConnRstCode: 0
    transClntRTT: 0
    transCltFlowEndUsecRx: 7333336201820251488
    transCltFlowEndUsecTx: 7333336201820251488
    transCltFlowStartUsecRx: 7333336201820249485
    transCltFlowStartUsecTx: 7333336201820250487
    transCltTotRxOctCnt: 190
    transCltTotTxOctCnt: 371
    transSrvrRTT: 0
    transSvrFlowEndUsecRx: 7333336201820251488
    transSvrFlowEndUsecTx: 7333336201820250487
    transSvrFlowStartUsecRx: 7333336201820250487
    transSvrFlowStartUsecTx: 7333336201820250487
    transSvrTotRxOctCnt: 371
    transSvrTotTxOctCnt: 202
    transactionId: 11218
    vlanNumber: 1
}

Beispiel-Dashboards für Transaktionsprotokolle

Die folgenden Dashboards, die auf Splunk verfügbar sind, enthalten die Daten zu Transaktionsprotokollen:

  • NetScaler HTTP Insight-Dashboard
  • NetScaler SSL Insight-Dashboard
  • NetScaler TCP Insight-Dashboard

Weitere Informationen finden Sie unter Beispiel-Dashboards auf Splunk.