Benutzerdefinierte Logs von OCI Logging-Service mit Service-Connector aufnehmen

Wenn Sie benutzerdefinierte Logs in OCI Logging-Service haben, die Sie in Oracle Log Analytics aufnehmen möchten, um Analysen und Log-Insights zu erstellen, führen Sie die hier aufgeführten Schritte aus.

Hinweis

Für geschäftskritische Anwendungen, für die Logs mit geringer Latenz und Warnmeldungen zur Aufnahmezeit erforderlich sind, empfiehlt Oracle, Oracle Management Agent zu verwenden, der standardmäßig auf allen OCI-Instanzen installiert ist.

Wenn Sie historische Logs erfassen möchten, verwenden Sie Oracle Management Agent, da der Service-Connector die Erfassung historischer Logs nicht unterstützt.

Führen Sie außerdem nach der Installation des Management Agent die Schritte 1 bis 5 aus, die unten aufgeführt sind, um mit dem Erfassen der Logs in Oracle Log Analytics zu beginnen.

Weitere Informationen zum Aufnehmen von Logs von anderen OCI-Services mit Service-Connector finden Sie unter Logs aus anderen OCI-Services mit Service-Connector erfassen.

Schritte zum Erfassen benutzerdefinierter Logs aus OCI Logging-Service mit Service-Connector:

  1. Geben Sie die Berechtigung zum Zugriff auf Logs und zum Erfassen von Logs aus dem OCI Logging-Service an. Siehe Erfassung von Logs aus OCI Logging Service zulassen.

  2. Identifizieren oder erstellen Sie das Compartment und die Log Analytics-Loggruppe, in der die Logs erfasst werden müssen.

  3. Notieren Sie sich in Ihrem Logdatensatz im OCI Logging-Service den Ereignistyp, der dem Schlüsseltyp entspricht, z.B. com.oraclecloud.logging.custom.kube_system_namespace. Der Wert des Schlüssels wird später zum Erstellen der Logquelle verwendet. Beispiel für einen Logdatensatz aus OCI Logging-Service:

    {
      "datetime": 1652152576897,
      "logContent": {
        "data": {
          "message": "2022-05-10T03:16:16.161346406+00:00 stderr F time=\"2022-05-10T03:16:16Z\" level=error msg=\"tkw network request proxied\" error=EOF",
          "tailed_path": "/var/log/pods/kube-system_proxymux-client-aaaa/proxymux-client/0.log"
        },
        "id": "id112233",
        "oracle": {
          "compartmentid": "ocid1.compartment.oc1..a....",
          "ingestedtime": "2022-05-10T03:17:25.628Z",
          "instanceid": "ocid1.instance.oc1.phx.a....",
          "loggroupid": "ocid1.loggroup.oc1.phx.a....",
          "logid": "ocid1.log.oc1.phx.a....",
          "tenantid": "ocid1.tenancy.oc1..a...."
        },
        "source": "oke-source",
        "specversion": "1.0",
        "subject": "/var/log/pods/kube-system_proxymux-client-aaaa/proxymux-client/0.log",
        "time": "2022-05-10T03:16:16.897Z",
        "type": "com.oraclecloud.logging.custom.kube_system_namespace"
      }
    }

    Im obigen Beispiel für den Ereignistyp ist com.oraclecloud.logging.custom. für benutzerdefinierte Logs konstant. Der verbleibende Teil des Werts, z.B. kube_system_namespace, variiert je nach Logtyp.

  4. Erstellen Sie einen JSON-Parser, um Ihre benutzerdefinierten Logs zu parsen.

    Hinweis

    Stellen Sie sicher, dass der Parser den Typ JSON aufweist, um Logs aus dem Service-Connector aufzunehmen. Andere Parserformate werden nicht unterstützt.

    Für den oben gezeigten Beispielloginhalt erhält Log Analytics nur den Wert des Attributs logContent, wie unten dargestellt:

    {
        "data": {
          "message": "2022-05-10T03:16:16.161346406+00:00 stderr F time=\"2022-05-10T03:16:16Z\" level=error msg=\"tkw network request proxied\" error=EOF",
          "tailed_path": "/var/log/pods/kube-system_proxymux-client-aaaa/proxymux-client/0.log"
        },
        "id": "id112233",
        "oracle": {
          "compartmentid": "ocid1.compartment.oc1..a....",
          "ingestedtime": "2022-05-10T03:17:25.628Z",
          "instanceid": "ocid1.instance.oc1.phx.a....",
          "loggroupid": "ocid1.loggroup.oc1.phx.a....",
          "logid": "ocid1.log.oc1.phx.a....",
          "tenantid": "ocid1.tenancy.oc1..a...."
        },
        "source": "oke-source",
        "specversion": "1.0",
        "subject": "/var/log/pods/kube-system_proxymux-client-aaaa/proxymux-client/0.log",
        "time": "2022-05-10T03:16:16.897Z",
        "type": "com.oraclecloud.logging.custom.kube_system_namespace"
      }

    Daher sollte der JSON-Parser mit der relevanten stripped-down-Version des Beispielloginhalts erstellt werden. Siehe Parser erstellen.

  5. Erstellen Sie eine Logquelle mit dem Namen, der dem Wert des Schlüsseltyps entspricht. Wenn der zuvor notierte Wert com.oraclecloud.logging.custom.kube_system_namespace lautet, muss der Quellname ebenfalls identisch sein. Geben Sie beim Erstellen der Logquelle den Parser an, den Sie im vorherigen Schritt erstellt haben. Siehe Quelle erstellen.

    Wenn Sie keine benutzerdefinierte Quelle erstellen, deren Name mit dem Wert des Schlüsseltyps in Ihren Logs übereinstimmt, werden die Logs mit den von Oracle definierten Quell-OCI Unified Schema Logs verarbeitet. This source uses the Oracle-defined parser OCI Unified Schema Log Format to parse the fields Time, Type, OCI Resource Name, Collection Time, Compartment ID, Logging Log Group OCID, Logging Log OCID, Tenant, Logging Record ID, CloudEvents Spec Version, and Message.

  6. Erstellen Sie einen neuen Service-Connector, oder verwenden Sie einen vorhandenen Service-Connector, der eine Verbindung zwischen OCI Logging und Oracle Log Analytics herstellt, um Ihre benutzerdefinierten Logs weiterzuleiten. Geben Sie Logging Analytics als Ziel an, und fügen Sie neue Quellverbindung hinzu, die Ihren benutzerdefinierten Logginglogs entspricht. Notieren Sie sich das Compartment der Loggingloggruppe, die Loggingloggruppe und die Details der benutzerdefinierten Logginglogs.

    Ausführliche Schritte zum Erstellen des Service-Connectors finden Sie unter Schritt 2 in Service-Connector zum Aufnehmen von Logs einrichten.

    Im Abschnitt Aufgabe konfigurieren können Sie eine Logfilteraufgabe einrichten und die Eigenschaft angeben, die zum Filtern verwendet werden soll. Siehe Oracle Cloud Infrastructure-Dokumentation - Service-Connectors verwalten.

    Bei mehreren benutzerdefinierten Logs können Sie denselben Service-Connector verwenden und weitere Logfilteraufgaben hinzufügen.

Nachdem die Verbindung mit OCI Logging hergestellt wurde, fließen die benutzerdefinierten Logs in Oracle Log Analytics. Um benutzerdefinierte Logs im Log Explorer zu suchen, können Sie den Namen der Logquelle abfragen. Beispiel:

'Log Source' = com.oraclecloud.logging.custom.kube_system_namespace | stats count as logrecords by 'Log Source'

Informationen zum Stoppen der Erfassung Ihrer benutzerdefinierten Logs aus OCI Logging finden Sie unter Sammeln von Logs aus Service-Connector stoppen.