REST-API-Logerfassung einrichten
Mit Oracle Logging 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 reagiert, die innerhalb des in der Anforderung angegebenen Zeitraums 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 für den Start der Logerfassung anzugeben, einen Offset zum Iterieren und Erfassen von Daten über Seitenergebnisse eines Logendpunkts bereitzustellen und Logs über ein Erfassungsfenster oder einen Zeitrahmen zu erfassen.
Gesamtablauf zum Erfassen von Logs mit einer REST-API-basierten Quelle
Im Folgenden werden die allgemeinen Aufgaben zum Erfassen von Loginformationen über die REST-API-basierte Quelle aufgeführt:
-
Installieren Sie den Management Agent auf einem Host, der über http- oder https-Zugriff auf den Endpunktserver verfügt. Siehe Kontinuierliche Logerfassung von Ihren Hosts einrichten.
- Um eine Verbindung zwischen dem Management Agent und der REST-API-Quelle zu autorisieren, konfigurieren Sie zuerst die API-Zugangsdaten im Zugangsdatenspeicher des Agent. Siehe Management Agent-Quellzugangsdaten.
-
Erstellen Sie die Entity in Oracle Logging Analytics, um den Logemittierenden Host darzustellen. Siehe Entity zur Darstellung der logausgebenden Ressource erstellen.
-
Erstellen Sie einen geeigneten Parser, um die Logeinträge zu verarbeiten, die als Antwort von der API bereitgestellt werden. Siehe Parser erstellen.
-
Erstellen Sie eine REST-API-Quelle, indem Sie die REST-API-Endpunkte definieren. Siehe REST-API-Quelle erstellen
-
Ordnen Sie die Entity der Quelle zu. Siehe Neue Quellen-Entity-Verknüpfung konfigurieren
Informationen zum End-to-End-Ablauf der Aufnahme von Fusion Applications-Auditlogs finden Sie unter Fusion Applications-Auditlogs aufnehmen.
REST-API-Quelle erstellen
Oracle Logging 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 von Oracle definierten Parser verwenden können. Falls nicht, führen Sie die folgenden Schritte aus, um eine neue Logquelle zu erstellen:
Bevor Sie beginnen, müssen Sie einen neuen Parser erstellen, der für Ihre Logs geeignet ist, und diesen abschließen. Siehe Parser erstellen.
-
Öffnen Sie das Navigationsmenü, und klicken Sie auf Observability and Management. Klicken Sie unter Logging Analytics auf Administration. Die Seite Administration - Überblick wird geöffnet.
Die Administrationsressourcen werden im linken Navigationsbereich unter Ressourcen aufgeführt. Klicken Sie auf Quellen.
-
Die Seite Quellen wird geöffnet. Klicken Sie auf Quelle erstellen.
Das Dialogfeld "Quelle erstellen" wird angezeigt.
-
Geben Sie im Feld Name den Namen der Logquelle ein.
-
Wählen Sie in der Liste Quelltyp die Option REST-API aus.
-
Klicken Sie auf Entitytyp, und wählen Sie den Typ aus, der Ihre Anwendung am besten identifiziert.
-
Klicken Sie auf Parser, und wählen Sie einen geeigneten Parser für den Logtyp aus, den Sie erfassen möchten.
-
Klicken Sie auf der Registerkarte Endpunkte je nach Anforderung auf Logendpunkt hinzufügen oder Listenendpunkt für mehrere Logs hinzufügen:
-
Um eine einzelne Logendpunkt-URL anzugeben, mit der die Logs kontinuierlich erfasst werden können, klicken Sie auf Logendpunkt hinzufügen. Das Dialogfeld "Logendpunkt hinzufügen" wird geöffnet.
Stellen Sie folgende Informationen bereit:
-
Geben Sie den Logendpunktnamen ein.
-
Erstellen Sie die Log-URL, um die Logs regelmäßig zu erfassen. Siehe Logendpunkt-URL in Endpunkt-URL-Typen.
-
Wählen Sie die API-Methode GET oder POST aus.
Wenn Sie POST ausgewä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
undXML
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 Anforderungsheader in Form von Name-Wert-Paaren anzugeben.
-
Klicken Sie optional auf Abfrageparameter anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um Abfrageparameter in Form von Paaren vom Typ Name-Wert anzugeben.
-
Wählen Sie im Abschnitt Zugangsdaten den Zugangsdatentyp protokollieren aus. Siehe Zugangsdatenart für REST-API-Logerfassung auswählen.
-
Um die eingegebenen Konfigurationsinformationen zu validieren, klicken Sie auf Validieren. Wenn Fehler vorliegen, beheben Sie diese.
Klicken Sie auf Änderungen speichern.
-
-
Um eine URL anzugeben, die eine JSON-Antwort mit den Informationen zurückgibt, mit denen eine Liste der Logendpunkt-URLs zum Erfassen mehrerer Logs generiert werden kann, klicken Sie auf Listenendpunkt für mehrere Logs hinzufügen. Das Dialogfeld "Listenendpunkt für mehrere Logs hinzufügen" wird geöffnet.
-
Registerkarte Listenendpunkt konfigurieren:
-
Geben Sie den Loglistenendpunktnamen ein.
-
Erstellen Sie die Loglisten-URL, um die Informationen zu den Logdateien abzurufen. Siehe Loglistenendpunkt-URL in Endpunkt-URL-Typen. 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 ausgewä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
undXML
aus. -
Klicken Sie optional auf Anforderungsheader anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um Anforderungsheader in Form von Name-Wert-Paaren anzugeben.
-
Klicken Sie optional auf Abfrageparameter anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um Abfrageparameter in Form von Paaren vom Typ Name-Wert anzugeben.
-
Wählen Sie im Abschnitt Zugangsdaten den Zugangsdatentyp protokollieren aus. Siehe Zugangsdatenart für REST-API-Logerfassung auswählen.
-
Klicken Sie auf Weiter.
-
-
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 integrieren. Siehe Logendpunkt-URL in 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 ausgewä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
undXML
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 Anforderungsheader in Form von Name-Wert-Paaren anzugeben.
-
Klicken Sie optional auf Abfrageparameter anzeigen, um den Abschnitt einzublenden, und klicken Sie auf Hinzufügen, um Abfrageparameter in Form von Paaren vom Typ Name-Wert anzugeben.
-
Wählen Sie im Abschnitt Zugangsdaten den Zugangsdatentyp protokollieren aus. Siehe Zugangsdatenart für REST-API-Logerfassung auswählen.
-
Klicken Sie auf Weiter.
-
-
Registerkarte Prüfen und hinzufügen: Die auf den vorherigen Registerkarten angegebenen Konfigurationsinformationen werden validiert. Prüfen Sie die Liste der URLs, aus denen die Logs erfasst werden.
Wenn Fehler vorliegen, beheben Sie diese.
Klicken Sie auf Speichern.
-
-
-
Klicken Sie auf Quelle erstellen.
Typen von Endpunkt-URLs
Loglistenendpunkt-URL: Die Loglistenendpunkt-URL muss eine JSON-Antwort mit den Informationen zurückgeben, mit denen eine Liste der Logendpunkt-URLs zum Erfassen der Logs erstellt werden kann. Geben Sie die JSON-Pfadvariablen an, die zum Erstellen der Liste der Logendpunkte aus der JSON-Antwort erforderlich sind. Darüber hinaus 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 Intervallen verwendet. Mit den Makros {START_TIME}
, {CURR_TIME}
und {TIME_WINDOW}
können Sie die entsprechenden Zeitwerte dynamisch in die URL einfügen. Mit dem Makro {OFFSET}
kann die Paginierung unterstützt werden. Sie können auch JSON-Pfadvariablen aus der Antwort des Loglistenendpunktaufrufs verwenden, um bestimmte Eigenschaften zu ersetzen.
{START_TIME}
: So geben Sie die Zeit an, ab der die Logs erfasst werden müssen{OFFSET}
: So verarbeiten Sie die paginierte Logerfassung{CURR_TIME}
: So geben Sie die aktuelle Uhrzeit an{TIME_WINDOW}
: So geben Sie ein Erfassungsintervall oder eine Erfassungsdauer 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 den JSON-Pfad und zur Verwendung von Variablenfiltern finden Sie unter Variablen für REST-API-Logerfassung.
START_TIME
-Makro
Verwenden Sie das Makro START_TIME
, um die Zeit anzugeben, ab der die Logs erfasst werden müssen.START_TIME
Makro kann in einer Endpunkt-URL, in Formularparametern oder in einer POST-Payload verwendet werden.
Das folgende Beispiel zeigt die Endpunkt-URL, die Logs erfasst, die größer sind als ein mit dem Makro START_TIME
angegebener Zeitstempel:
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) angegeben.
-
+nX
ist die Anzahl der Tage, Stunden, Minuten, Monate oder Jahre, die der 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 Millisekundenwert der Epoche ersetzt.Informationen zu von SimpleDateFormat unterstützten Zeitstempelformaten finden Sie unter Java Platform Standard Ed. 8: Class SimpleDateFormat.
-
TZ
dient zur Angabe der Zeitzone des Zeitstempels. Es ist nicht anwendbar, wenn die Epoche bereits angegeben ist. Das unterstützte Format entspricht den IDs mit 3 Buchstaben in der Java-Klasse TimeZone, z.B. UTC. -
Sie können mehrere Instanzen dieses Makros in die URL aufnehmen.
-
Beispiele:
{START_TIME:yyyy-MM-dd'T'HH:mm:ss.SSS.TZ=UTC}
{START_TIME:epoch}
CURR_TIME
-Makro
Verwenden Sie das Makro CURR_TIME
, um die aktuelle Uhrzeit 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 des Makros
START_TIME
. -
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 das Offsetverhalten in einer API-Antwort verarbeiten. Das OFFSET
-Makro 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 iterativ über paginierte Ergebnisse eines bestimmten Logendpunkts aufgerufen und erfasst, um alle verfügbaren Datensätze abzurufen. Der anfängliche REST-API-Anforderungsaufruf beginnt mit dem Startwert und wird in jedem nachfolgenden Aufruf um den Wert increment erhöht. Diese rekursiven indexbasierten Aufrufe werden gestoppt, wenn keine weiteren Logeinträge gefunden werden. Der Versatz wird nicht in den nächsten Erfassungszyklus übertragen. Sie beginnt mit dem Standardwert oder Anfangswert in jedem Erfassungszyklus. -
Im obigen Format ist der Startwert der Anfangswert für den Index, und der Standardwert ist
0
. Es ist optional, Startwert anzugeben.Mögliche Werte: Positive Ganzzahl einschließlich 0
-
Im obigen Format gibt increment den Wert an, der in nachfolgenden Aufrufen zum Startwert hinzugefügt werden soll. Standardwert ist
1
. Es ist optional, den Wert increment anzugeben.Mögliche Werte: Nur positive Ganzzahl. Exclude 0.
-
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 die Standardwerte Startwert = 0, Inkrement = 1.
-
{OFFSET(5)}
Startwert = 5, Inkrement = 1 (Standard)
-
{OFFSET(5,2)}
Startwert = 5, Inkrement = 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 Startwert im ersten Aufruf und dann in nachfolgenden Aufrufen 0 ist, um 1000 erhöht. 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
Mit dem Makro TIME_WINDOW
geben Sie das Erfassungsintervall an, in dem die Logs erfasst werden sollen. Er kann in der REST-API-Endpunkt-URL verwendet werden, um Logs über Minuten, Stunden oder Tage abzurufen, unabhängig vom Erfassungsintervall des Agent. Beispiel: Wenn das Zeitfenster 1d (einen Tag) lautet und das Agent-Intervall 10 Minuten beträgt, erfolgt die nachfolgende Logerfassung erst nach einem Tag.
Das folgende Beispiel legt das Logerfassungsintervall für 6 Stunden fest, 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 obigen Format:
-
Zahl: Zahl, die größer als Null ist.
-
timeunit:
h
für Stunden,d
für Tage,m
für Minuten. Der Standardwert istd
(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, die als Teil der Antwort vom Loglistenendpunkt bereitgestellt werden, zur Laufzeit dynamisch in die Anforderung des Logendpunkts zu ersetzen. Die Variablen können in der URL, den Formularparametern, der POST-Payload oder den HTTP-Anforderungsheaderwerten des Logendpunkts verwendet werden.
Wenn der Aufruf des Loglistenendpunkts 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 Loglistenendpunkts.Der Filter
(<filter_field_name>=<value>)
ist optional. Nur das Attribut, das mitfilter_field_name
übereinstimmt, wird aus der JSON-Antwort des Loglistenendpunkts abgerufen 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 Filterbeispiel.
-
Zum Abrufen der Eigenschaftswerte wird nur der JSON-Inhaltstyp unterstützt.
-
Dieselbe Variable kann mehrmals angegeben werden.
-
Die Variablen können nur auf gültige Listenendpunkte und nicht auf Logendpunkte verweisen.
-
Die folgenden JSON-Pfadformate werden unterstützt: Einfacher JSON-Pfad, JSON-Pfad für Array 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 für das folgende Beispiel den JSON-Pfad $.foo.abc
, um result
als Ausgabe abzurufen:
{
"foo" :
{
"abc" : "result"
}
}
Verwenden Sie für das folgende Beispiel den JSON-Pfad $.*.id
, um die ["id1", "id3"]
-Ausgabe abzurufen, oder $.*.*
, um die Ausgabe ["id1", "id2", "id3"]
abzurufen:
{
"foo" : {
"id" : "id1"
},
"foo2" : {
"ID" : "id2",
"id" : "id3"
}
}
Verwenden Sie für das folgende 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 verwenden Sie []
, um die geeigneten Elemente innerhalb dieses Arrayobjekts zu extrahieren. Beispiel: Die folgende JSON-Antwort enthält zwei Arrays mit den Objekten 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, umfirstId
als Ausgabe abzurufen,$.records[1].id
, umsecondId
als Ausgabe abzurufen, oder$.records[*].id
, umid
aus allen JSON-Objekten abzurufen. Im letzten Fall ist die Ausgabe eine Liste der Zeichenfolgen["firstId", "secondId"]
. -
Sie können auch Bedingungen im JSON-Pfad mit
()
angeben. Umid
im obigen Beispiel nur aus denrecords
abzurufen, dietype
alsfirstType
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 an 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 (Verweis 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 folgenden Logendpunkte 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 den 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 Management Agent-Quellzugangsdaten.
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:
- Kein Wert
- Basisauthentifizierung: Geben Sie den Logzugangsdatenamen der Zugangsdaten an, die Sie im Management Agent-Service erstellt haben.
- Statisches Token: Geben Sie den Logzugangsdatenamen der Zugangsdaten an, die Sie im Management Agent-Service erstellt haben.
- Dynamisches Token (OAuth 2.0):
Geben Sie den Tokenzugangsdatenamen des Tokens an, das Sie im Management Agent-Service erstellt haben. Geben Sie außerdem die Tokeninformationen an, wie Tokenendpunktname, Tokenendpunkt-URL, Erteilungstyp und optional Geltungsbereich.
Wenn der Tokenproxy mit dem des Logendpunkts identisch ist, lassen Sie das Kontrollkästchen Proxy mit Logendpunkt identisch aktiviert. 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 Trust Stores -
"
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 Zugangsdatenart bei Management Agent in der Tabelle mit den Zugangsdatentypen oben angegeben sind.
Siehe Beispiele für Zugangsdaten-JSON.
Beispiele für Zugangsdaten-JSON
Beispiel für eine 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 eine Basisauthentifizierung mit SSL-Zertifikaten, Benutzername und Kennwort über HTTPS, indem Zertifikate explizit bereitgestellt werden:
{
"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 ein 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 ein 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 die folgenden Schritte aus, um die Fusion Applications-Auditlogs zu erfassen. Die Liste der verfügbaren von Oracle definierten Quellen für Fusion Applications finden Sie unter Von Oracle definierte Quellen.
Topics:
Voraussetzungen
-
APIs für Fusion Applications-Auditlogs: Details zur Verwendung und Funktionalität der Auditlog-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 folgenden Proxy (optional):
login_url
: Die Basis-URL Ihrer Fusion Applications-Instanzpod_url
: Die Basis-URL Ihrer Fusion Applications-Instanzproxy_url
: (Optional) Die URL, die eine Anforderung an den Proxyserver sendet
Einzelheiten zu den URLs finden Sie unter Dok.-ID 2661308.1 in Oracle My Support.
- REST-API-Zugriff für Fusion-Anwendungen: Stellen Sie sicher, dass der API-Zugriff aktiviert und die erforderlichen Rollen/Berechtigungen zugewiesen sind.
Auditlogerfassung aus Fusion Applications einrichten
-
Basis-URL von Fusion Applications 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.
-
Erforderliche IAM-Policys erstellen: Kontinuierliche Logerfassung mit Management-Agents zulassen
-
Installieren Sie den Management Agent auf einem Host, der über http- oder https-Zugriff auf Ihre Fusion Applications-Instanz/Ihren Fusion Applications-Server verfügt. Stellen Sie sicher, dass das Logging Analytics-Plug-in während der Installation bereitgestellt wird. Siehe Management Agents installieren.
-
Konfigurieren Sie die API-Zugangsdaten im Zugangsdatenspeicher des Agent:
Navigieren Sie zum Ordner /bin des Management Agent, und erstellen Sie die JSON-Zugangsdatendatei. 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 Zugangsdaten der Management Agent-Quelle.
-
Prüfen Sie, ob der Fusion Applications-API-Endpunkt von der Instanz aus erreicht werden kann, auf der der Agent installiert ist. Sie können Tools wie curl verwenden, um die Prüfung durchzuführen.
-
Entity erstellen: Erstellen Sie eine Entity vom Typ
Oracle Fusion Applications
, und fügen Sie Eigenschaftswerte fürlogin_url
undpod_url
hinzu. Fügen Sie bei Bedarf auch den Wert fürproxy_url
hinzu. Siehe Entity zur Darstellung der logausgebenden Ressource erstellen. -
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 im Logendpunkt der Quelle korrekt referenziert werden.
- Fügen Sie bei Bedarf Proxy zu Logendpunkten hinzu.
-
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 Logging Analytics zu übergeben. Siehe Neue Quellen-Entity-Verknüpfung konfigurieren
-
Im Log Explorer prüfen und validieren: Prüfen Sie, ob die Logs ordnungsgemäß im Log Explorer erfasst und analysiert werden. Siehe Daten mit Diagrammen und Kontrollen visualisieren.