Ereignislogs mit der LogEvents-API hochladen
Wenn Sie Ihre Ereignislogs über die LogEvents-API an den Oracle Log Analytics-Endpunkt per PUSH senden möchten, führen Sie die folgenden 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 maximal 100 in Form einer ZIP-Datei enthalten.
-
Die Loggruppe ist ein obligatorischer Anforderungsparameter, der im Geltungsbereich der Anforderung angewendet wird. Logset ist ein optionaler Parameter und kann für große Gruppen von Logdaten benötigt werden, z. B. täglich TB an Daten.
Die Schritte zum Hochladen von Rohlogdateien mit der REST-API finden Sie unter Logs bei Bedarf hochladen.
Voraussetzungen:
Bevor Sie mit dem Hochladen Ihrer Ereignislogs beginnen, stellen Sie sicher, dass die folgenden Informationen erfasst werden
- Logquellenname einer neuen Logquelle oder einer von Oracle definierten Logquelle, die mit Ihrem Logformat übereinstimmt. Siehe Von Oracle definierte Quellen und Quelle erstellen.
Um den Upload mit der REST-API auszuführen, muss die Quelle den Typ System Event Messages (Syslog), Datei oder Oracle Diagnostic Logs (ODL) aufweisen.
- OCID der Loggruppe, die Zugriffskontrolle für die Logs bietet. Siehe Loggruppen zum Speichern der Logs erstellen.
- Optional die OCID der Entity, wenn Sie die Logs, die Sie hochladen, einer Entity zuordnen möchten. Siehe Entity zur Darstellung der protokollierenden Ressource erstellen.
Upload von Ereignislogs durch Benutzer zulassen
Sie können es den Benutzern ermöglichen, Uploadvorgänge auszuführen, indem Sie selektiv nur die erforderlichen Berechtigungen zum Ausführen der Uploadaufgabe erteilen, einzelnen Ressourcentypberechtigungen erteilen oder umfassendere Berechtigungen auf Aggregatebene erteilen. Sie können also eine der drei unten aufgeführten Policy-Anweisungen auswählen, die für Ihren Anwendungsfall geeignet sind.
Die folgende IAM-Policy-Anweisung gibt die spezifischen Berechtigungen für die Benutzergruppe für den Upload an:
allow group <group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <log_group_compartment>
Mit der folgenden IAM-Policy-Anweisung können Sie Berechtigungen auf der Ebene der einzelnen Ressourcentypen für den Upload angeben:
allow group <group_name> to use loganalytics-log-group in compartment <log_group_compartment>
Auf der anderen Seite wird mit der folgenden IAM-Policy-Anweisung Berechtigungen auf Aggregatressourcenebene von Oracle Log Analytics für den Upload bereitgestellt:
allow group <group_name> to use loganalytics-resources-family in tenancy/compartment
group_name
in allen oben genannten Policy-Anweisungen bezieht sich 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 Dokumentation zur uploadLogEventsFile
-API finden Sie unter Log 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. Einzelheiten zum Format der JSON-Ereignisdatei und ein Beispiel finden Sie unter Ereignisdateiformat zum Hochladen mit der LogEvents-API.
-
Tenancy_Namespace_Name: Der Oracle Log Analytics-Namespace, der für die Anforderung verwendet wird.
-
Log_Group_OCID: Die OCID der Loggruppe, in der die hochgeladenen Logs in Oracle Log Analytics gespeichert werden.
-
Payload_Type: Standard ist
JSON
. Zulässige Werte sindJSON
,GZIP
,ZIP
. -
Log_Set: Das Logset, das mit den hochgeladenen Logs verknüpft wird. Dieser Parameter ist optional.
Ereignisdateiformat zum Hochladen mit der API LogEvents
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 Log 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>“, -------------------> Log Analytics Entity OCID
"logSourceName”:”<LogSourceName>”, -----------> Log 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"
]
},
{ … … … }
]
}
Im Abschnitt "Metadaten" werden die Logs mit den Informationen angereichert, 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."
]
}
]
}