Ereignislogs mit der LogEvents-API hochladen
Wenn Sie die Ereignislogs über die API LogEvents an den Oracle Logging Analytics-Endpunkt pushen möchten, führen Sie die unten aufgeführten Schritte aus.
-
Sie können ein oder mehrere Ereignisse mit dem vordefinierten Payload-Format in
JSON
hochladen. Darüber hinaus unterstützt die API die ArchivformateGZIP
undZIP
. -
Die zulässige maximale Größe jeder JSON beträgt 2 MB. Eine Uploadanforderung kann jedoch mehrere JSON-Dateien bis zu einem Maximum von 100 in Form von ZIP enthalten.
-
Loggruppe ist ein obligatorischer Anforderungsparameter, der im Geltungsbereich der Anforderung angewendet wird. Logset ist ein optionaler Parameter und kann für große Mengen von Logdaten benötigt werden, z.B. TBs von Daten täglich.
Die Schritte zum Hochladen von Raw-Logdateien mit der REST-API finden Sie unter Logs bei Bedarf hochladen.
Voraussetzungen:
- Logquellenname einer neuen Logquelle oder einer von Oracle definierten Logquelle, die Ihrem Logformat entspricht. Siehe Von Oracle definierte Quellen und Quelle erstellen.
Um den Upload mit der REST-API auszuführen, muss die Quelle den Typ Systemereignismeldungen (Syslog), Datei oder Oracle Diagnostic Logs (ODL) aufweisen.
- OCID der Loggruppe, die Zugriffskontrolle für die Logs bereitstellt. Siehe Loggruppen zum Speichern der Logs erstellen.
- Optional die OCID der Entity, wenn Sie die hochgeladenen Logs einer Entity zuordnen möchten. Siehe Entity zur Darstellung der logausgebenden Ressource erstellen.
Erforderliche Berechtigungen zum Hochladen von Ereignislogs
Sie können Benutzern ermöglichen, Uploadvorgänge auszuführen, indem Sie selektiv nur die erforderlichen Berechtigungen zum Ausführen der Uploadaufgabe erteilen, Berechtigungen für einzelne Ressourcentypen erteilen oder Berechtigungen auf Aggregatebene erteilen. Sie können also eine der drei unten angegebenen Policy-Anweisungen auswählen, die für Ihren Anwendungsfall geeignet ist.
Die folgende IAM-Policy-Anweisung dient zur Bereitstellung der spezifischen Berechtigungen für die Benutzergruppe für den Upload:
allow group <group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <log_group_compartment>
Die folgende IAM-Policy-Anweisung dient dazu, Berechtigungen auf der Ebene einzelner Ressourcentypen für den Upload bereitzustellen:
allow group <group_name> to use loganalytics-log-group in compartment <log_group_compartment>
Andererseits dient die folgende IAM-Policy-Anweisung dazu, Berechtigungen auf der aggregierten Ressourcenebene von Oracle Logging Analytics für den Upload bereitzustellen:
allow group <group_name> to use loganalytics-resources-family in tenancy/compartment
group_name
bezieht sich in allen oben genannten Policy-Anweisungen auf die Benutzergruppe, der die erforderlichen Berechtigungen erteilt werden müssen.
API zum Hochladen von Ereignislogs
Informationen zur Verwendung der REST-API und zu Signieranforderungen finden Sie unter REST-APIs und Sicherheitszugangsdaten.
Die API-Dokumentation zu uploadLogEventsFile
finden Sie unter Logging Analytics API - uploadLogEventsFile.
Um den Upload mit der REST-API auszuführen, führen Sie den folgenden Befehl auf Ihrem Host aus:
oci log-analytics upload upload-log-events-file --file <Json_Event_File_Path> --log-group-id <Log_Group_OCID> --namespace-name <Tenancy_Namespace_Name> --payload-type <Payload_Type>
Im obigen curl-Befehl,
-
Json_Event_File_Path: Der Pfad der JSON-Ereignisdatei. Details zum Format der JSON-Ereignisdatei und ein Beispiel finden Sie unter Ereignisdateiformat zum Hochladen mit der LogEvents-API.
-
Tenancy_Namespace_Name: Der für die Anforderung verwendete Oracle Logging Analytics-Namespace.
-
Log_Group_OCID: Die OCID der Loggruppe, in der die hochgeladenen Logs in Oracle Logging Analytics gespeichert sind.
-
Payload_Type: Der Standardwert ist
JSON
. Zulässige Werte sindJSON
,GZIP
,ZIP
. -
Log_Set: Das Logset, das mit den hochgeladenen Logs verknüpft wird. Dieser Parameter ist optional.
Hochzuladendes Ereignisdateiformat mit der LogEvents-API
Im Folgenden finden Sie das typische Format der JSON-Payload:
{
"metadata":{ ----------------------------------------> Global (file level) metadata section to send additional metadata in field value pair format. The fields should be valid Logging Analytics Fields
"Field1":"Value1",
"Field2":"Value2",
"FieldN":"ValueN"
},
"logEvents":
[ ---------------------------------------------------> Group the events (logRecords) that belong to the same logSourceName, entityId, logPath and metadata
{
"metadata":{ --------------------------------> Group level metadata section
"FieldA”:”ValueA”,
"FieldB”:”ValueB”,
"FieldN":"ValueN"
},
"entityId”:”<EntityOCID>“, -------------------> Logging Analytics Entity OCID
"logSourceName”:”<LogSourceName>”, -----------> Logging Analytics LogSource Name (Mandatory)
"logPath”:”<LogPath>”, -----------------------> logPath or logFileName to associate the log records with.
"logRecords": -------------------------------> Array of logRecords/logEntries (Mandatory)
[
"logRecord1", ---------------------------> String representation of logRecord. In case the logRecord is of JSON type, it has to be encoded.
"logRecord2",
"logRecordN"
]
},
{ … … … }
]
}
Der Metadatenabschnitt dient zum Anreichern der Logs mit den Informationen, die nicht Teil der tatsächlichen Logdatensätze sind.
Beispiel für eine JSON-Payload:
{
"metadata":{
"Error ID":"0",
"Environment":"dev",
"Client Host Region":"IST"
},
"logEvents":
[
{
"metadata":{
"Error ID":"1",
"Environment":"prod",
"Client Host Region":"PST"
},
"entityId":"ocid1.loganalyticsentity.oc1.iad.amaaaaa...........",
"logSourceName":"Linux Syslog Logs",
"logPath":"/var/log/messages",
"logRecords":
[
“Oct 20 2023 04:02:37 hostA syslogd 1.4.1: restart.",
“Oct 20 2023 04:02:38 hostB syslogd 1.4.1: shutdown."
]
}
]
}