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 Archivformate GZIP und ZIP.

  • 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

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 sind JSON, 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"
            ]
        },
        {            …            …            …       }
    ]
}
Hinweis

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."
            ]
        }
    ]
}