Logpartitionierung verwalten

Sie können Logsets für die physische Partitionierung der Logs basierend auf Ihrer Infrastruktur, Anwendungsarchitektur oder Organisationsstruktur definieren, um die Suchperformance zu optimieren, wenn Sie erwarten, dass pro Tag mehr als 6 TB Logdaten für einen einzelnen Mandanten in einer einzelnen Region dauerhaft aufgenommen werden.

Weitere Informationen zur Logpartitionierung finden Sie unter Logpartitionierung.

Nachdem Sie die Logpartitionierung für Ihren Mandanten in einer bestimmten Region aktiviert haben, müssen Sie sicherstellen, dass für jeden Logeintrag ein Zeichenfolgenwert für das Logsetfeld definiert ist. Je nach Art der Aufnahme können Sie die folgenden Schritte ausführen, um den Logsetwert anzugeben.

Wenn die Logpartitionierung in Ihrem Mandanten aktiviert ist, wird die Option zum Auswählen des Logsets im Geltungsbereichsfilter angezeigt. Bevor Sie eine Abfrage starten, müssen Sie mindestens eines Ihrer Logsets auswählen oder den Platzhalter * verwenden. Es wird empfohlen, den Platzhalter nur in Anwendungsfällen zu verwenden, in denen Sie alle Logs durchsuchen müssen. Dies ist eine teurere Suche, die länger dauert, da sie in allen Logs durchsucht wird. Bei Abfragen mit Platzhaltern kann ein Timeout auftreten, wenn Sie zu viele Daten über den ausgewählten Zeitraum haben. Siehe Geltungsbereichsfilter nutzen.

Logpartitionierung aktivieren

Die Logpartitionierung ist in allen Regionen und Realms verfügbar, in denen Oracle Log Analytics verfügbar ist.

Wenn für Ihren Anwendungsfall die Partitionierungsfunktion erforderlich ist, erstellen Sie eine Datei mit Service Request, in der Oracle Support diese Funktion in Oracle Log Analytics anfordert.

Logsetwert angeben: Logaufnahme über Management Agent

Möglicherweise erfassen Sie Logs entweder über Standalone Management Agent oder verwenden sie als Teil des Oracle Cloud Agent.

  1. Sie haben mehrere Möglichkeiten, das Logset zu definieren, indem Sie die Datei emd.properties für den Management Agent bearbeiten. Wählen Sie eine der folgenden Optionen:

    • Sie können einen statischen Logsetwert für alle vom Agent erfassten Logs festlegen. Fügen Sie der Agent-Datei emd.properties die folgende Eigenschaft hinzu, um das Agent-weite Logset anzugeben:

      loganalytics.src.addl_src_ptn_configs=logset=<Value>
    • Legen Sie den Logsetwert als Teil des Logdateinamens fest. Sie können in der Agent-Konfiguration einen regulären Ausdruck angeben, um zu definieren, wie ein Teil des Logdateipfads als Logsetzeichenfolge extrahiert wird. Geben Sie in der Agent-Konfigurationsdatei emd.properties die Eigenschaften logsetkey und logSetExtRegex an:

      loganalytics.src.addl_src_ptn_configs=logsetkey=logorigin,logSetExtRegex=<regex with a capture group>

      logorigin ist der Logdateipfad.

    • Sie können angeben, dass verschiedene Logset-Extraktionen für jede Quelle separat angewendet werden sollen, indem Sie die Quell-ID als Eigenschaft zu den oben genannten Einstellungen hinzufügen.

      //sets this log set value only for source 201904301
      loganalytics.src.addl_src_ptn_configs=srcid=201904301,logset=<Value>
      //sets this log set value based on regular expression extraction only for source 201904301
      loganalytics.src.addl_src_ptn_configs=srcid=201904301,logsetkey=logorigin,logSetExtRegex=<regex with a capture group>
  2. Nehmen Sie zusätzlich zur Angabe des Logsets mit einer der oben genannten Methoden die folgende Eigenschaft in die emd.properties-Konfigurationsdatei auf:

    loganalytics.src.override_config=true
  3. Starten Sie den Agent nach der Bearbeitung der Konfigurationsdatei neu.

Logsetwert angeben: Logaufnahme über Service Connector Hub

Derzeit wird dieses Feature nur für benutzerdefinierte Logs unterstützt, die vom OCI Logging-Service mit Service Connector Hub bei Oracle Log Analytics erfasst wurden.

Um den Logsetwert festzulegen, muss das benutzerdefinierte Log dem Block data{} der Daten des OCI Logging Unified Logging-Formats ein neues Feld hinzufügen. Beispiel:

{
  "data": {
    "logSet": "<Value>",
    ...
  },
  "oracle": {
    ...
  },
    ...
}

Logsetwert angeben: Logaufnahme über Object Storage-Collection

Beim Erstellen einer Object Storage-Collection-Regel gelten dieselben Optionen, die zum Auffüllen des Logsets in der Management Agent-Collection verwendet werden.

  • Sie können einen statischen Logsetwert für alle Logs festlegen, die von dieser Objektspeicher-Collection-Regel erfasst werden. Fügen Sie die folgende Eigenschaft zur JSON der Objektspeicher-Collection-Regel hinzu:

    {
        "name": "<Object Collection Rule Name>",
        "logSet": "<Value>",
        ...
    }
  • Sie können einen regulären Ausdruck angeben, um das Logset aus dem Objektpfad zu analysieren. Beispiel:

    {
        "name": "<Object Collection Rule Name>",
        "logSetExtRegex": "\\\/o\\\/[^\\\/]*\\\/([^\\\/]*)",
        ...
    }
  • Wenn Sie Überschreibungen in der Object Collection-Regel verwenden, können Sie auch die Logsetextraktion für die Überschreibung festlegen. Im folgenden Beispiel erhalten alle aus dem Bucket erfassten Logs das Logset Value1 mit Ausnahme der Objekte, die dem Override mit db entsprechen. Diese Logs erhalten eine Logsetzeichenfolge, die aus dem regulären Ausdruck im Objektpfad erfasst wird.

    {
        "name": "<Object Collection Rule Name>",
        "logSet": "Value1",
        "overrides": {
            "items": [{
                "matchType": "contains",
                "matchValue": "db",
                "propertyName": "logSetExtRegex",
                "propertyValue": "\\\/o\\\/[^\\\/]*\\\/([^\\\/]*)"
            }]
        }
    }

Logsetwert angeben: Logaufnahme über REST-API

Wenn Sie die Logdatendateien in den REST-API-Endpunkt für Logereignisse /actions/uploadLogEventsFile veröffentlichen, können Sie das Logset in den Aufrufparametern der POST-REST-API angeben. Alle in diesem einzelnen API-Aufruf hochgeladenen Logdaten werden mit demselben Logset gespeichert.

Beispiel:

POST /20200601/namespaces/<namespaceName>/actions/uploadLogEventsFile?logGroupId=<logGroup_OCID>&payloadType=JSON&logSet=<Value>

Logsetwert angeben: Logaufnahme über Fluentd

Bei Verwendung des Fluentd Collectors kann das Log Set aus jedem anderen Feld (Keyname) extrahiert werden. Geben Sie einen regulären Ausdruck an, der definiert, wie der erwartete Logsetwert aus dem von key_name referenzierten Feld in das Feld oci_la_log_set erfasst werden soll.

<filter oci.source>                  
  @type parser
  key_name oci_la_log_path      # The expression will be applied on the key "oci_la_log_path". You can pick any field that fluentd has parsed here.
  <parse>
    @type regexp
    expression '.*\/(?<oci_la_log_set>[^\.]{1,40}).*'   # Valid reg-ex for extraction
  </parse>
</filter>

Wenn der Wert von oci_la_log_path /n/axs4r325r2ct/b/logevents/o/fileType/logSetABC.log ist, lautet der auf dem obigen regulären Ausdruck basierende extrahierte Logsetwert logSetABC.

Hinweis

Im Ausdruck "Capture-Gruppe" ist (?<oci_la_log_set>) erforderlich. Andernfalls wird die Zeichenfolge, die mit dem regulären Ausdruck übereinstimmt, nicht oci_la_log_set zugewiesen.