REST-API-Logerfassung einrichten

Mit Oracle Log Analytics können Sie eine kontinuierliche REST-API-basierte Logerfassung aus Endpunkt-URLs einrichten, die mit Logmeldungen antworten. Die REST-API-Logquelle muss mit einer API konfiguriert werden, die mit den Logmeldungen antwortet, die innerhalb des in der Anforderung angegebenen Zeitrahmens generiert wurden.

Dies ist eine empfohlene Methode, wenn Sie die kontinuierliche Logerfassung aus Umgebungen, Plattformen oder Anwendungen wie OCI-Services, Fusion Apps, ERP-Anwendungen oder anderen Anwendungen automatisieren möchten, die Logs über eine API ausgeben. Es sind Makros verfügbar, die in der Quelldefinition verwendet werden können, um eine Logzeit zum Starten der Logerfassung anzugeben, einen Offset zum Iterieren und Erfassen von Daten über Seitenergebnisse eines Logendpunkts anzugeben und Logs über ein Erfassungsfenster oder einen Zeitrahmen zu erfassen.

Gesamtablauf für das Erfassen von Logs mit REST-API-basierter Quelle

Im Folgenden werden allgemeine Aufgaben zum Erfassen von Loginformationen über die REST-API-basierte Quelle aufgeführt:

Informationen zum End-to-End-Ablauf der Aufnahme von Fusion Applications-Auditlogs finden Sie unter Fusion Applications-Auditlogs aufnehmen.

REST-API-Quelle erstellen

Oracle Log Analytics stellt bereits eine von Oracle definierte Logquelle für die REST-API-Logerfassung bereit. Prüfen Sie, ob Sie die verfügbare von Oracle definierte REST-API-Quelle oder einen beliebigen von Oracle definierten Parser verwenden können. Wenn nicht, verwenden Sie die folgenden Schritte, um eine neue Logquelle zu erstellen:

Wenn Sie vor dem Start einen neuen Parser erstellen müssen, der für Ihre Logs geeignet ist, schließen Sie ihn ab. Siehe Parser erstellen.

  1. Öffnen Sie das Navigationsmenü, und klicken Sie auf Observability and Management. Klicken Sie unter Log Analytics auf Administration. Die Seite Administration - Überblick wird geöffnet.

    Die Administrationsressourcen werden im linken Navigationsbereich unter Ressourcen aufgeführt. Klicken Sie auf Quellen.

  2. Die Seite Quellen wird geöffnet. Klicken Sie auf Quelle erstellen.

    Das Dialogfeld "Quelle erstellen" wird angezeigt.

  3. Geben Sie im Feld Name den Namen für die Logquelle ein.

  4. Wählen Sie in der Liste Quelltyp die Option REST-API aus.

  5. Klicken Sie auf Entitytyp, und wählen Sie den Entitytyp aus, der Ihre Anwendung am besten identifiziert.

  6. Klicken Sie auf Parser, und wählen Sie einen geeigneten Parser für den Logtyp aus, den Sie erfassen möchten.

  7. Klicken Sie auf der Registerkarte Endpunkte auf Logendpunkt hinzufügen oder Listenendpunkt für mehrere Logs hinzufügen, je nach Anforderung:

    • Um eine einzelne Logendpunkt-URL anzugeben, mit der die Logs kontinuierlich erfasst werden können, klicken Sie auf Logendpunkt hinzufügen. Das Dialogfeld "Protokollendpunkt hinzufügen" wird geöffnet.

      Stellen Sie folgende Informationen bereit:

      1. Geben Sie den Logendpunktnamen ein.

      2. Erstellen Sie die Log-URL, um die Logs regelmäßig zu erfassen. Siehe Logendpunkt-URL unter Endpunkt-URL-Typen.

      3. Wählen Sie die API-Methode GET oder POST aus.

        Wenn Sie POST gewählt haben, geben Sie die POST-Payload für die Methode ein, und wählen Sie den Typ des Anforderungsinhalts aus JSON, Text, Javascript, HTML und XML aus.

      4. Geben Sie optional die Logproxyserver-URL an.

      5. Klicken Sie optional auf Anforderungsheader anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um alle Anforderungsheader in Form von Name-Wertpaaren anzugeben.

      6. Klicken Sie optional auf Abfrageparameter anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um Abfrageparameter in Form von Name-Wert-Paaren anzugeben.

      7. Wählen Sie im Abschnitt Zugangsdaten den Logzugangsdatentyp aus. Siehe Zugangsdatentyp für REST-API-Logerfassung auswählen.

      8. Um die eingegebenen Konfigurationsinformationen zu validieren, klicken Sie auf Validieren. Wenn Fehler vorliegen, beheben Sie sie.

        Klicken Sie auf Änderungen speichern.

    • Um eine URL anzugeben, die eine JSON-Antwort mit den Informationen zurückgibt, die zum Generieren einer Liste von Logendpunkt-URLs zum Erfassen mehrerer Logs verwendet werden können, klicken Sie auf Listenendpunkt für mehrere Logs hinzufügen. Das Dialogfeld "Listenendpunkt für mehrere Logs hinzufügen" wird geöffnet.

      1. Registerkarte Listenendpunkt konfigurieren:

        • Geben Sie den Namen des Loglistenendpunkts ein.

        • Erstellen Sie die Loglisten-URL, um die Informationen zu den Logdateien abzurufen. Siehe URL für Loglistenendpunkt unter Typen von Endpunkt-URL. Beispiel:

          https://example.org/fetchlogfiles_data
        • Geben Sie optional die Logproxyserver-URL an.

        • Wählen Sie die API-Methode GET oder POST aus.

          Wenn Sie POST gewählt haben, geben Sie die POST-Payload für die Methode ein, und wählen Sie den Typ des Anforderungsinhalts aus JSON, Text, Javascript, HTML und XML aus.

        • Klicken Sie optional auf Anforderungsheader anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um alle Anforderungsheader in Form von Name-Wertpaaren anzugeben.

        • Klicken Sie optional auf Abfrageparameter anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um Abfrageparameter in Form von Name-Wert-Paaren anzugeben.

        • Wählen Sie im Abschnitt Zugangsdaten den Logzugangsdatentyp aus. Siehe Zugangsdatentyp für REST-API-Logerfassung auswählen.

        • Klicken Sie auf Weiter.

      2. Registerkarte Logendpunkt konfigurieren:

        • Geben Sie die Beispielantwort von Loglistenendpunkt an. Dies ist das Beispiel für die Antwort, die Sie für den Loglistenendpunkt erhalten würden, den Sie auf der vorherigen Registerkarte angegeben haben. Beispiel:

          { "totalSize": 4, "records": [ {"id": "firstId", "type": "firstType"}, {"id": "secondId", "type": "secondType"} ] }

          Im obigen Beispiel kann der JSON-Pfad records[*].id in der Endpunkt-URL verwendet werden. Weitere Details zu JSON-Pfadvariablen finden Sie unter Variablen für REST-API-Logerfassung.

        • Geben Sie den Logendpunktnamen ein.

        • Erstellen Sie die Log-URL, um die Logs regelmäßig zu erfassen, indem Sie die in der Beispielantwort angegebenen JSON-Pfadschlüssel in den Loglistenendpunkt aufnehmen. Siehe Logendpunkt-URL unter Endpunkt-URL-Typen. Beispiel:

          https://example.org/fetchLogs?time={START_TIME}&id={testLogListEP:$.records[*].id}
        • Geben Sie optional die Logproxyserver-URL an.

        • Wählen Sie die API-Methode GET oder POST aus.

          Wenn Sie POST gewählt haben, geben Sie die POST-Payload für die Methode ein, und wählen Sie den Typ des Anforderungsinhalts aus JSON, Text, Javascript, HTML und XML aus.

        • Geben Sie optional die Logproxyserver-URL an.

        • Klicken Sie optional auf Anforderungsheader anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um alle Anforderungsheader in Form von Name-Wertpaaren anzugeben.

        • Klicken Sie optional auf Abfrageparameter anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um Abfrageparameter in Form von Name-Wert-Paaren anzugeben.

        • Wählen Sie im Abschnitt Zugangsdaten den Logzugangsdatentyp aus. Siehe Zugangsdatentyp für REST-API-Logerfassung auswählen.

        • Klicken Sie auf Weiter.

      3. Registerkarte Prüfen und hinzufügen: Die Konfigurationsinformationen, die in den vorherigen Registerkarten angegeben wurden, werden validiert. Prüfen Sie die Liste der URLs, von denen die Logs erfasst werden.

        Wenn Fehler vorliegen, beheben Sie sie.

        Klicken Sie auf Speichern.

  8. Klicken Sie auf Quelle erstellen.

Endpunkt-URL-Typen

Endpunkt-URL der Logliste: Die Endpunkt-URL der Logliste muss eine JSON-Antwort mit den Informationen zurückgeben, die zum Erstellen einer Liste von Logendpunkt-URLs zum Erfassen der Logs verwendet werden können. Geben Sie die JSON-Pfadvariablen an, die erforderlich sind, um die Liste der Logendpunkte aus der JSON-Antwort zu erstellen. Außerdem können Sie die Makros {START_TIME} und {CURR_TIME} verwenden, um die entsprechenden Zeitwerte dynamisch in die URL einzufügen.

Logendpunkt-URL: Die Logendpunkt-URL wird zum Erfassen von Logs aus einem bestimmten REST-API-Endpunkt in regelmäßigen Abständen verwendet. Mit den Makros {START_TIME}, {CURR_TIME} und {TIME_WINDOW} können Sie die entsprechenden Zeitwerte dynamisch in die URL einfügen. Das Makro {OFFSET} kann zur Unterstützung der Paginierung verwendet werden. Sie können auch JSON-Pfadvariablen aus der Antwort des Endpunktaufrufs der Logliste verwenden, um bestimmte Eigenschaften zu ersetzen.

  • {START_TIME}: So geben Sie die Zeit an, ab der die Logs erfasst werden müssen
  • {OFFSET}: Zur Verarbeitung der paginierten Logerfassung
  • {CURR_TIME}: So geben Sie die aktuelle Uhrzeit an
  • {TIME_WINDOW}: So geben Sie ein Erfassungsintervall oder eine Dauer an

Weitere Informationen zur Verwendung der Makros finden Sie unter START_TIME Macro, CURR_TIME Macro, OFFSET Macro und TIME_WINDOW Macro.

Weitere Informationen zur Verwendung der Variablen aus der Endpunktantwort der Logliste, die in der Logendpunkt-URL angegeben werden kann, Beispiele für JSON-Pfad und die Verwendung von Variablenfiltern finden Sie unter Variablen für REST-API-Logerfassung.

START_TIME-Makro

Geben Sie mit dem Makro START_TIME die Zeit an, ab der die Logs erfasst werden müssen.START_TIME-Makro kann in einer Endpunkt-URL, Formularparametern oder POST-Payload verwendet werden.

Das folgende Beispiel zeigt die Endpunkt-URL, die Logs erfasst, die größer als ein vom Makro START_TIME angegebener Zeitstempel sind:

https://example.org/fetchLogs?sortBy=timestamp&sortOrder=ascending&filter=timestamp+gt+{START_TIME:yyyy-MM-dd'T'HH:mm:ss.SSSZ}

Syntax:

{START_TIME<+nX>:<epoch | timestamp format supported by SimpleDateFormat java class>.TZ=<timezone name>}
  • n ist der Zeitwert des Datumsbereichs. X wird in Tagen (D), Stunden (h), Minuten (m), Monaten (M), Jahr (Y) ausgedrückt.

  • +nX ist die Anzahl der Tage, Stunden, Minuten, Monate oder Jahre, die zur Startzeit hinzugefügt werden sollen. Es ist optional. Beispiel: +3D.

  • Die unterstützten Zeitformate entsprechen denen der JAVA-Klasse SimpleDateFormat. Das Standardzeitformat ist yyyy-MM-dd'T'HH:mm:ss.SSSZ. Beispiel: 2001-07-04T12:08:56.235-0700.

    Die Angabe des epoch- oder Zeitformats ist optional. Wenn eine Epoche angegeben ist, wird das Makro durch einen Epochen-Millisekundenwert ersetzt.

    Die von SimpleDateFormat unterstützten Zeitstempelformate finden Sie unter Java Platform Standard Ed. 8: Class SimpleDateFormat.

  • TZ gibt die Zeitzone des Zeitstempels an. Sie ist nicht anwendbar, wenn die Epoche bereits bereitgestellt wurde. Das unterstützte Format entspricht den aus 3 Buchstaben bestehenden IDs in der java-Klasse TimeZone, z.B. UTC.

  • Sie können mehrere Instanzen dieses Makros in die URL aufnehmen.

  • Beispiele:

    1. {START_TIME:yyyy-MM-dd'T'HH:mm:ss.SSS.TZ=UTC}
    2. {START_TIME:epoch}

Der Wert des Makros START_TIME wird auf eine der folgenden Arten bestimmt:

  • Wenn die Erfassung zum ersten Mal für einen Endpunkt beginnt, ist START_TIME das historische Datum, das auf der Agent-Collection-Eigenschaft Historische Daten basiert. Der Standardwert dieser Eigenschaft ist 30 days, d.h. der Wert des Zeitstempels liegt 30 Tage vor dem aktuellen Zeitstempel.

  • Wenn das Feld Zeit im Parser festgelegt ist, entspricht der Wert von START_TIME in den nachfolgenden Log-Collections dem Höchstwert des extrahierten Zeitstempelwerts in der vorherigen Log-Collection.

  • Wenn das Feld Zeit nicht aus den Logdatensätzen extrahiert wird, indem es im Parser festgelegt wird, ist der aktuelle Zeitstempel der Wert START_TIME.

Wenn in der API Filter vorhanden sind, verwenden Sie greater than equal to anstelle von greater than, um sicherzustellen, dass alle Logdatensätze mit demselben Zeitstempel hochgeladen werden.

CURR_TIME-Makro

Verwenden Sie das Makro CURR_TIME, um die aktuelle Zeit in die REST-API-Endpunkt-URL, die Formularparameter und die POST-Payload einzufügen.

Das folgende Beispiel zeigt die Endpunkt-URL, die das Makro CURR_TIME im Abfrageparameter verwendet:

https://example.org/fetchLogs?sortBy=timestamp&sortOrder=ascending&time={CURR_TIME:yyyy-MM-dd'T'HH:mm:ss.SSSZ}
  • Das Format für die Verwendung des Makros entspricht dem START_TIME-Makro.

  • Sie können mehrere Instanzen dieses Makros in die URL aufnehmen.

OFFSET-Makro

Verwenden Sie das Makro OFFSET für Endpunkte, die paginierte Antworten bereitstellen, oder um das Offsetverhalten in einer API-Antwort zu verarbeiten. Das Makro OFFSET kann in der REST-API-Endpunkt-URL, den Formularparametern und der POST-Payload verwendet werden, um mehrere Seiten oder Blöcke in einem einzelnen Logerfassungszyklus abzurufen.

Format: {OFFSET(<start value>, <increment>)}

  • Mit dem Makro OFFSET werden Daten über paginierte Ergebnisse eines bestimmten Logendpunkts iterativ aufgerufen und erfasst, um alle verfügbaren Datensätze abzurufen. Der anfängliche REST-API-Anforderungsaufruf beginnt mit dem Startwert und wird bei jedem nachfolgenden Aufruf um den Wert Inkrement erhöht. Diese rekursiven indexbasierten Aufrufe werden gestoppt, wenn keine weiteren Logeinträge gefunden werden. Der Ausgleich wird nicht in den nächsten Abnahmezyklus übertragen. Er beginnt mit dem Standardwert oder Anfangswert in jedem Abnahmerhythmus.

  • Im obigen Format ist der Startwert der Anfangswert für den Index, und der Standardwert ist 0. Sie können optional den Startwert angeben.

    Mögliche Werte: Positive Ganzzahl einschließlich 0

  • Im obigen Format gibt Erhöhen den Wert an, der dem Startwert bei nachfolgenden Aufrufen hinzugefügt werden soll. Standardwert ist 1. Sie können optional den Wert Erhöhen angeben.

    Mögliche Werte: Nur positive Ganzzahl. 0 ausschließen.

  • Sie können nur eine Instanz dieses Makros in die URL aufnehmen.

Die folgenden Beispiele zeigen verschiedene Möglichkeiten zur Verwendung des Makros OFFSET:

  • {OFFSET}

    Verwendet Standardwerte Startwert = 0, Erhöhen = 1.

  • {OFFSET(5)}

    Startwert = 5, Erhöhung = 1 (Standard)

  • {OFFSET(5,2)}

    Startwert = 5, Erhöhen = 2

Das folgende Beispiel zeigt die Endpunkt-URL, die das Makro OFFSET verwendet:

https://example.org/fetchLogs?startIndex={OFFSET(0,1000)}&count=1000

Im obigen Beispiel gibt OFFSET(0,1000) an, dass der Startwert beim ersten Aufruf 0 und bei nachfolgenden Aufrufen um 1000 erhöht ist. Wenn das Makro OFFSET interpretiert wird, lautet die Endpunkt-URL für mehrere Aufrufe daher wie folgt:

Erster Anruf: https://example.org/fetchLogs?startIndex=0&count=1000

Zweiter Aufruf: https://example.org/fetchLogs?startIndex=1000&count=1000

TIME_WINDOW-Makro

Geben Sie mit dem Makro TIME_WINDOW das Erfassungsintervall an, über das die Logs erfasst werden sollen. Sie kann in der REST-API-Endpunkt-URL verwendet werden, um Logs über Minuten, Stunden oder Tage abzurufen, unabhängig davon, wie das Agent-Erfassungsintervall ist. Beispiel: Wenn das Zeitfenster 1d (ein Tag) und das Agent-Intervall 10 Minuten beträgt, erfolgt die nachfolgende Logerfassung erst nach einem Tag.

Im folgenden Beispiel wird das Logerfassungsintervall für 6 Stunden festgelegt, indem TIME_WINDOW in der Endpunkt-URL als 6h angegeben wird:

https://example.org/fetchLogs?timewindow={TIME_WINDOW(6h)}

Format: {TIME_WINDOW(<number><timeunit>)}

Im oben genannten Format:

  • Zahl: Die Ziffer ist größer als Null.

  • timeunit: h für Stunden, d für Tage, m für Minuten. Der Standardwert ist d (Tage).

Stellen Sie sicher, dass das Agent-Erfassungsintervall kleiner als das angegebene Zeitfenster ist. Sie können das Makro TIME_WINDOW nur einmal im Endpunkt verwenden.

Variablen für REST-API-Logerfassung

Verwenden Sie die Variablen, um Attribute zu ersetzen, die als Teil der Antwort vom Loglistenendpunkt zur Laufzeit dynamisch in die Anforderung des Logendpunkts bereitgestellt werden. Die Variablen können in der URL, den Formularparametern, der POST-Payload oder den HTTP-Anforderungsheaderwerten des Logendpunkts verwendet werden.

Wenn der Aufruf des Endpunkts der Logliste nicht erfolgreich verläuft, werden die Logmeldungen vom Logendpunkt aufgrund der Abhängigkeit nicht erfasst.

Format der Variablen im Logendpunkt:

{<log_list_endpoint_name>:<json path(<filter_field_name>='<value>')>}
  • Im obigen Format ist log_list_endpoint_name der Name des Endpunkts der Logliste.

    Der Filter (<filter_field_name>=<value>) ist optional. Nur das Attribut, das der filter_field_name entspricht, wird aus der JSON-Antwort des Loglistenendpunkts ausgewählt und im Logendpunkt verwendet. Beispiel:

    https://www.example.com/log/{foo:$.items[*].links[*].href(rel='self')}

    Ein detailliertes Beispiel für den Filter finden Sie unter Beispiel für Filter.

  • Nur der JSON-Inhaltstyp wird zum Abrufen der Eigenschaftswerte unterstützt.

  • Die gleiche Variable kann mehrmals angegeben werden.

  • Die Variablen können nur auf gültige Listenendpunkte verweisen und keine Logendpunkte.

  • Die folgenden JSON-Pfadformate werden unterstützt: Einfacher JSON-Pfad, Array-JSON-Pfad und JSON-Pfad für mehrere Arrays.

Einfacher JSON-Pfad

Wenn die JSON-Antwort mehrere Ebenen verschachtelter Elemente enthält, können Sie den JSON-Pfad als spezielle Notation von Knoten und deren Verbindungen zu den nachfolgenden untergeordneten Knoten angeben.

Verwenden Sie im folgenden Beispiel den JSON-Pfad $.foo.abc, um result als Ausgabe abzurufen:

{
    "foo" : 
    {
        "abc" : "result"
    }
}

Verwenden Sie im folgenden Beispiel den JSON-Pfad $.*.id, um die Ausgabe ["id1", "id3"] abzurufen, oder $.*.*, um die Ausgabe ["id1", "id2", "id3"] abzurufen:

{
    "foo" : {
        "id" : "id1"
    },
    "foo2" : {
        "ID" : "id2",
        "id" : "id3"
    }
}

Verwenden Sie im folgenden Beispiel den JSON-Pfad $.foo.*, um die Ausgabe ["id1", "value1"] abzurufen:

{
    "foo" : {
        "id" : "id1",
        "abcd" : "value1"
    },
    "foo2" : {
        "id" : "id2"
    }
}

Array-JSON-Pfad

Wenn die JSON-Antwort ein Array von Objekten enthält, aus denen Daten extrahiert werden müssen, geben Sie den Namen des Arrayobjekts an, und extrahieren Sie mit [] die geeigneten Elemente innerhalb dieses Arrayobjekts. Beispiel: Die folgende JSON-Antwort enthält zwei Arrays der Objekte records und item:

{
     "records": [
         {"id": "firstId", "type":"firstType"},
         {"id":"secondId", "type":"secondType"}
     ],
     "items": [
         {"name":"firstName", "field":"value"},
         {"name":"secondName", "field":"value"},
         {"name":"thirdName", "field":"value"}
     ]
}
  • Geben Sie den JSON-Pfad $.records[0].id an, um firstId als Ausgabe abzurufen, $.records[1].id, um secondId als Ausgabe abzurufen, oder $.records[*].id, um id aus allen JSON-Objekten abzurufen. Im letzten Fall ist die Ausgabe eine Liste der Zeichenfolgen ["firstId", "secondId"].

  • Sie können Bedingungen auch im JSON-Pfad mit () angeben. Um im obigen Beispiel id nur von den records abzurufen, die type als firstType aufweisen, verwenden Sie den JSON-Pfad $.records[*].id(type='firstType').

JSON-Pfad für mehrere Arrays

Beachten Sie folgendes Beispiel:

Für die Endpunkt-URL der Logliste getlist:

https://www.example.com/url_list

JSON-Antwort auf Loglistenendpunkt:

{
  "records": [ { "id": "firstId", "type": "firstType" }, { "id": "secondId", "type": "secondType" } ],
  "items": [ { "name": "firstName", "field": "value" }, { "name": "secondName", "field": "value" }, { "name": "thirdName", "field": "value" } ]
}

Logendpunkt-URL (verweist auf Variablen aus getlist):

https://www.example.com/{getlist:$.records[*].id}/{getlist:$.items[*].name}

Mit den Variablen {getlist:$.records[*].id} und {getlist:$.items[*].name} generiert der Agent die Logendpunkte unten mit allen Kombinationen der beiden Arrayfelder ["firstId", "secondId"] und ["firstName", "secondName", "thirdName"]:

  • https://www.example.com/firstId/firstName

  • https://www.example.com/secondId/firstName

  • https://www.example.com/firstId/secondName

  • https://www.example.com/secondId/secondName

  • https://www.example.com/firstId/thirdName

  • https://www.example.com/secondId/thirdName

Beispiel für Filter

Betrachten Sie die folgende JSON-Antwort vom Loglistenendpunkt foo:

{
    "items": [
        {
            "BusinessEventCode": "JournalBatchApproved",
            "CreationDate": "2019-07-27T17:19:19.261+00:00",
            "links": [
                {
                    "rel": "self",
                    "href": "/erpBusinessEvents/self/100100120766717"
                },
                {
                    "rel": "canonical",
                    "href": "/erpBusinessEvents/rel/100100120766717"
                }
            ]
        }
    ]
}

Betrachten Sie nun das folgende Beispiel für einen Logendpunkt:

https://www.example.com/log/{foo:$.items[*].links[*].href(rel='self')}

Im obigen Beispiel wird der Pfadparameter durch das Arrayelement $.items[*].links[*].href aus der JSON-Antwort des Loglistenendpunkts foo ersetzt, und eine zusätzliche Bedingung wird angegeben, um nur rel='self' auszuwählen.

Für die obige JSON-Antwort generiert der Agent den folgenden Logendpunkt:

https://www.example.com/log/erpBusinessEvents/self/100100120766717

Zugangsdatentyp für REST-API-Logerfassung auswählen

Um eine Verbindung zwischen dem Agent und der REST-API-Quelle zu autorisieren, konfigurieren Sie zuerst die API-Zugangsdaten im Zugangsdatenspeicher des Agent. Nachdem Sie die Quellzugangsdaten im Management Agent-Service auf Agent-Seite konfiguriert haben, können Sie diese Informationen beim Erstellen der REST-API-Logquelle verwenden.

Informationen zum Konfigurieren der Quellzugangsdaten im Management Agent-Service, damit der Management Agent Daten von Ihrem logemittierenden Host erfassen kann, finden Sie unter Quellzugangsdaten für Management Agent.

Geben Sie beim Hinzufügen des Logendpunkts oder Loglistenendpunkts die Zugangsdateninformationen im Workflow an, indem Sie den Logzugangsdatentyp auswählen. Wählen Sie eine der folgenden Optionen:

  • Keine
  • Basisauthentifizierung: Geben Sie den Logzugangsdatennamen der Zugangsdaten an, die Sie im Management Agent-Service erstellt haben.
  • Statisches Token: Geben Sie den Logzugangsdatennamen der Zugangsdaten an, die Sie im Management Agent-Service erstellt haben.
  • Dynamisches Token (OAuth 2.0):

    Geben Sie den Tokenzugangsdatennamen des Tokens an, das Sie im Management Agent-Service erstellt haben. Geben Sie außerdem die Tokeninformationen an, wie Tokenendpunktname, Tokenendpunkt-URL, Berechtigungstyp und optional Geltungsbereich.

    Wenn der Tokenproxy mit dem des Logendpunkts identisch ist, aktivieren Sie das Kontrollkästchen Proxy identisch mit Logendpunkt. Wenn nicht, deaktivieren Sie das Kontrollkästchen, und geben Sie die Tokenproxyserver-URL an.

Zuordnung von Zugangsdatentypen zum Authentifizierungstyp:

Authentifizierungstyp Zugangsdatentyp bei Management Agent Zugangsdateneigenschaften
Basisauthentifizierung HTTPSBasicAuthCreds HTTPSUserName, HTTPSPassword
HTTPSCreds HTTPSUserName, HTTPSPassword, ssl truststore-Eigenschaften
Statisches Token HTTPSTokenCreds HTTPSToken, HTTPSTokenType, SSL-Truststore-Eigenschaften (optional)
Dynamisches Token HTTPSBasicAuthCreds HTTPSUserName, HTTPSPassword
HTTPSCreds HTTPSUserName, HTTPSPassword, ssl truststore-Eigenschaften

Die folgenden Informationen sind in den ssl truststore-Eigenschaften enthalten:

  • "ssl_trustStoreType": Speichertyp, z.B. JKS.

  • "ssl_trustStoreLocation": Der Pfad des Truststores

  • "ssl_trustStorePassword": Truststore-Kennwort (optional)

Beachten Sie die folgenden Aspekte zu den Attributen in der Zugangsdaten-JSON:

  • source: Der Wert muss lacollector.la_rest_api lauten

  • name: Beliebiger geeigneter Name für die Zugangsdaten

  • type: Dies muss einer der Werte sein, die in der Spalte Zugangsdatentyp bei Management Agent in der obigen Tabelle der Zugangsdatentypen angegeben sind.

Siehe Beispiele für Zugangsdaten-JSON.

Beispiele für Zugangsdaten-JSON

Beispiel für Basisauthentifizierung mit Benutzername und Kennwort über HTTPS mit vertrauenswürdigem Host:

{
  "source":"lacollector.la_rest_api",
  "name":"ExampleRestAPICreds",
  "type":"HTTPSBasicAuthCreds",
  "description":"These are HTTPS (BasicAuth) credentials.",
  "properties":
  [
    { "name":"HTTPSUserName", "value":"CLEAR[admin]" },
    { "name":"HTTPSPassword", "value":"CLEAR[myHTTPSPassword]" }
  ]
}

Beispiel für Basisauthentifizierung mit SSL-Zertifikaten, Benutzernamen und Kennwort über HTTPS, indem Sie Zertifikate explizit angeben:

{
  "source":"lacollector.la_rest_api",
  "name":"ExampleRestAPICreds",
  "type":"HTTPSCreds",
  "description":"These are HTTPS (BasicAuth) credentials.",
  "properties":
  [
    { "name":"HTTPSUserName", "value":"CLEAR[admin]" },
    { "name":"HTTPSPassword", "value":"CLEAR[myHTTPSPassword]" },
    { "name":"ssl_trustStoreType", "value":"JKS" },
    { "name":"ssl_trustStoreLocation", "value":"/scratch/certs/mycert.keystore" },
    { "name":"ssl_trustStorePassword", "value":"mySSLPassword" }
  ]
}

Beispiel für Token über HTTPS mit vertrauenswürdigem Host:

{
  "source":"lacollector.la_rest_api",
  "name":"ExampleRestAPICreds",
  "type":"HTTPSTokenCreds",
  "description":"These are HTTPS (Token) credentials.",
  "properties":
  [
    { "name": "HTTPSToken", "value": "CLEAR[token value]" },
    {"name": "HTTPSTokenType", "value": "CLEAR[Bearer]" }
  ]
}

Beispiel für Token über HTTPS mit explizit bereitgestellten Zertifikaten:

{
  "source":"lacollector.la_rest_api",
  "name":"ExampleRestAPICreds",
  "type":"HTTPSTokenCreds",
  "description":"These are HTTPS (Token) credentials.",
  "properties":
  [
    { "name": "HTTPSToken", "value": "CLEAR[token value]" },
    {"name": "HTTPSTokenType", "value": "CLEAR[Bearer]" },
    { "name":"ssl_trustStoreType", "value":"JKS" },
    { "name":"ssl_trustStoreLocation", "value":"/scratch/certs/mycert.keystore" },
    { "name":"ssl_trustStorePassword", "value":"mySSLPassword" }
  ]
}

Fusion Applications-Auditlogs aufnehmen

Führen Sie diese Schritte aus, um die Fusion Applications-Auditlogs zu erfassen. Eine Liste der verfügbaren von Oracle definierten Quellen für Fusion Applications finden Sie unter Von Oracle definierte Quellen.

Themen:

Voraussetzungen

  • Fusion Applications-Auditlogs-APIs: Details zur Verwendung und Funktionalität der Auditlogs-API finden Sie in der REST-API-Dokumentation für Fusion Applications.

  • Zugriff auf Fusion Applications: Sie benötigen gültige Zugangsdaten und Berechtigungen für den Zugriff auf die Fusion Applications-Instanz.

  • Identifizieren Sie die folgenden Endpunkte und den Proxy (optional):

    • login_url: Die Basis-URL Ihrer Fusion Applications-Instanz
    • pod_url: Die Basis-URL Ihrer Fusion Applications-Instanz
    • proxy_url: (Optional) Die URL, die eine Anforderung an den Proxyserver sendet

    Einzelheiten zu den URLs finden Sie unter Dokument-ID 2661308.1 in Oracle My Support.

  • REST-API-Zugriff für Fusion Applications: Stellen Sie sicher, dass der API-Zugriff aktiviert und die erforderlichen Rollen/Berechtigungen zugewiesen sind.

Auditlogerfassung aus Fusion Applications einrichten

  1. Fusion Applications-Basis-URL validieren:

    • Validieren Sie die Fusion Applications-Zugangsdaten, indem Sie sich bei der Benutzeroberfläche anmelden.
    • Analysieren Sie optional die Netzwerktraceaufrufe, um die Basis-URL zu validieren.
    • Stellen Sie sicher, dass der Audit-API-Zugriff aktiviert ist.
  2. Erforderliche IAM-Policys erstellen: Kontinuierliche Logerfassung mit Management-Agents zulassen

  3. Installieren Sie den Management Agent auf einem Host, auf dem http- oder https-Zugriff auf die Fusion Applications-Instanz/den Fusion Applications-Server hat. Stellen Sie sicher, dass das Log Analytics-Plug-in während der Installation bereitgestellt wird. Siehe Management-Agents installieren.

  4. API-Zugangsdaten im Zugangsdatenspeicher des Agent konfigurieren:

    Der Speicherort des Verzeichnisses /bin hängt davon ab, wie der Management Agent bereitgestellt wird:

    • Für Management-Agents, die über das Oracle Cloud Agent-Plug-in auf Compute-Instanzen ausgeführt werden, befindet sich das Skript unter /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/bin.

    • Für Management-Agents, die Sie manuell installiert haben, befindet sich das Skript unter /opt/oracle/mgmt_agent/agent_inst/bin.

    Navigieren Sie zum entsprechenden /bin-Verzeichnis für Ihr Setup, um die Zugangsdaten-JSON-Datei zu erstellen. Das folgende Beispiel zeigt die Werte in der Datei fapps.json:

    {
          "source": "lacollector.la_rest_api",
          "name": "FA-CREDS",
          "type": "HTTPSBasicAuthCreds",
          "description": "These are HTTPS (BasicAuth) credentials.",
          "properties": [
              {
                  "name": "HTTPSUserName",
                  "value": "USER"
              },
              {
                  "name": "HTTPSPassword",
                  "value": "PASS"
              }
          ]
      }

    Fügen Sie die FA-CREDS-Zugangsdaten zum Zugangsdatenspeicher des Agent hinzu:

    cat fapps.json | ./credential_mgmt.sh -s logan -o upsertCredentials

    Einzelheiten zum Konfigurieren der API-Zugangsdaten im Zugangsdatenspeicher des Agent finden Sie unter Management Agent-Quellzugangsdaten.

  5. Prüfen Sie, ob der Fusion Applications-API-Endpunkt von der Instanz aus erreicht werden kann, in der der Agent installiert ist. Sie können Tools wie curl verwenden, um die Prüfung durchzuführen.

  6. Entity erstellen: Erstellen Sie eine Entity vom Typ Oracle Fusion Applications, und fügen Sie Eigenschaftswerte für login_url und pod_url hinzu. Fügen Sie bei Bedarf auch den Wert für proxy_url hinzu. Siehe Entity zur Darstellung der protokollierenden Ressource erstellen.

  7. Quelle konfigurieren: Geben Sie eine geeignete von Oracle definierte Quelle für Fusion Applications-Auditlogs an, die Sie verwenden können. Bei Bedarf können Sie ein Duplikat der vorhandenen Quelle erstellen und bearbeiten. Siehe Quelle bearbeiten.

    • Stellen Sie sicher, dass die Zugangsdaten korrekt im Logendpunkt der Quelle referenziert werden.
    • Fügen Sie gegebenenfalls Proxy zu Logendpunkten hinzu.
  8. Datenerfassung auf Agent-Seite planen: Verknüpfen Sie die Quelle mit der Entity, um die Datenerfassung zu planen. Verwenden Sie den Management Agent, um die Fusion Applications-Audit-APIs regelmäßig aufzurufen und Daten an Log Analytics zu übertragen. Siehe Neue Quellen-Entity-Verknüpfung konfigurieren

  9. In Log Explorer prüfen und validieren: Prüfen Sie, ob die Logs im Log Explorer ordnungsgemäß erfasst und analysiert werden. Siehe Daten mit Diagrammen und Kontrollen visualisieren.