Logs aus dem OCI-Objektspeicher-Bucket erfassen
Sie können Logdaten kontinuierlich aus Oracle Cloud Infrastructure (OCI) Object Storage erfassen. Um die Logerfassung zu aktivieren, erstellen Sie die Ressource ObjectCollectionRule mit der REST-API oder CLI. Nach der erfolgreichen Erstellung dieser Ressource und Einrichtung der erforderlichen IAM-Policys wird die Logerfassung gestartet.
Mit dieser Methode zum Erfassen von Logs können Sie jeden Logtyp aufnehmen, der in einem Objektspeicher-Bucket gespeichert ist.
Sie können Logs auf eine der folgenden Arten aus Objektspeicher-Buckets erfassen:
-
LIVE: Für die kontinuierliche Erfassung von Objekten ab dem Zeitpunkt der Erstellung der Regel ObjectCollectionRule. Das ist die Standardmethode.
-
HISTORIC: Für die einmalige Erfassung von Objekten für einen bestimmten Zeitraum.
-
HISTORIC_LIVE: Für die Erfassung aller historischen Logs im Bucket und danach zur kontinuierlichen Erfassung aller neu erstellten Objekte, die Logs enthalten.
Oracle Logging Analytics verwendet Events and Streaming-Services von OCI in Verbindung mit Object Storage, um Objekte (LIVE- oder HISTORIC-Typen) zu erfassen undzu verarbeiten. Wenn Sie einen Bucket für eine Logerfassung konfigurieren, erstellt Oracle Logging Analytics eine Events-Regel, um für jeden neuen Objektupload in den Bucket eine Ereignisbenachrichtigung auszugeben. Die Benachrichtigungen werden an einen von Ihnen angegebenen Stream zugestellt.
Für Objekt-Collection-Regeln vom Typ LIVE oder HISTORIC_LIVE ist eine Stream-OCID erforderlich. Wird von Oracle Logging Analytics beim Erstellen von Ereignisregeln verwendet und verwendet die Ereignisbenachrichtigungen, die von Object Storage erstellt wurden. Standardmäßig wird die älteste verfügbare Nachricht im Stream zuerst konsumiert, wenn Nachrichten im Stream verarbeitet werden. Andernfalls wird die vorhandene Cursorposition verwendet, sofern bereits festgelegt.
Oracle Logging Analytics bietet die folgenden Empfehlungen zum Erstellen von Streams:
- Legen Sie die Aufbewahrungsfrist von 48 Stunden fest.
- Berücksichtigen Sie Partitionen basierend auf dem Durchsatz. Jede Partition kann 1000 Objekte pro Sekunde verarbeiten (über alle Buckets, die denselben Stream verwenden). Weitere Informationen zu Streaminglimits finden Sie unter Limits für Streaming-Ressourcen.
- Optional können Sie einen einzelnen Stream für einen Mandanten verwenden.
- Verwenden Sie diesen Stream nur zum Zweck der Objekterfassung, um Probleme bei der Logverarbeitung zu vermeiden.
Zusätzlich zu streamId können Sie streamCursorType angeben, von welcher Position im Stream die Nutzung gestartet werden soll. Sie können vier Cursortypen verwenden, um Nachrichten aus dem Stream abzurufen. Siehe Nachrichten konsumieren.
- DEFAULT: Verwendet die vorhandene Cursorposition, wenn sie bereits von vorherigen ObjectCollectionRule mit demselben Stream festgelegt wurde. Andernfalls wird die älteste verfügbare Nachricht im Stream konsumiert (ähnlich TRIM_HORIZON).
- TRIM_HORIZON: Konsumiert ab der ältesten verfügbaren Nachricht im Stream.
- LATEST: Startet das Konsumieren von Nachrichten, die nach der Erstellung dieser Regel veröffentlicht werden.
- AT_TIME: Startet das Konsumieren von Nachrichten ab einem bestimmten Zeitpunkt.
Wenn streamCursorType auf AT_TIME gesetzt ist, ist auch ein Parameter streamCursorTime erforderlich, um die Zeit anzugeben, ab der die Objekte konsumiert werden sollen.
Hinweis:
-
Stellen Sie sicher, dass die Ereignisregeln, die von Oracle Logging Analytics erstellt wurden, nicht manipuliert werden, damit die Logerfassung aus dem Objektspeicher ordnungsgemäß funktioniert.
-
Pro Bucket kann nur ein ObjectCollectionRule vom Typ LIVE oder HISTORIC_LIVE verwendet werden.
-
Sie können bis zu 1.000 eindeutige Objekterfassungsregeln pro Mandant in einer Region erstellen.
-
Das Objekt kann eine einzelne Raw-Logdatei oder eine beliebige Archivdatei (
.zip
,.gz
,.tgz
,.tar
) mit mehreren Logdateien sein. Die Anzahl der Dateien in einer Archivdatei muss kleiner als 2000 sein, einschließlich gegebenenfalls der Verzeichnisse. -
Die maximale Größe des Objekts (einzelne Datei oder Archivdatei) beträgt 1 GB. Die unkomprimierte Größe des Objekts muss kleiner als 10 GB sein.
-
Um die Logerfassung ordnungsgemäß auszuführen, empfiehlt Oracle, diesen Stream nur zum Zweck der Objekterfassung zu verwenden.
Voraussetzungen: Bevor Sie die Logerfassung mit diesem Ansatz aktivieren, führen Sie folgende Schritte aus:
- Erstellen Sie eine neue Logquelle, oder verwenden Sie eine von Oracle definierte Logquelle, die Ihrem Logformat entspricht. Siehe Quelle erstellen.
- Erstellen Sie eine Loggruppe, oder verwenden Sie eine vorhandene Loggruppe, in der Sie diese Logs speichern, um die Benutzerzugriffskontrolle für die Logs zu steuern und die Loggruppen-OCID zu notieren. Siehe Loggruppen zum Speichern der Logs erstellen.
- Wenn Sie die hochgeladenen Logs zuordnen möchten, erstellen Sie eine Entity, oder verwenden Sie eine vorhandene Entity, und notieren Sie die Entity-OCID. Siehe Entity zur Darstellung der logausgebenden Ressource erstellen.
- Erstellen Sie für LIVE- oder HISTORIC_LIVE-Collectionstypen einen neuen Stream, oder verwenden Sie einen vorhandenen Stream (der nur für die Objekterfassung verwendet wird). Siehe Stream erstellen.
Um die Erfassung von Objekten aus dem Bucket zu stoppen, löschen Sie die Regel ObjectCollectionRule. Dadurch wird nur die verknüpfte Konfiguration mit dem Bucket gelöscht. Der Vorgang hat aber keine Auswirkungen auf die bereits erfassten Logdaten oder die Objekte im Bucket.
Logerfassung aus Object Storage zulassen
Die folgenden IAM-Policy-Anweisungen müssen in Ihrer Policy enthalten sein, um der Benutzergruppe die Berechtigung zur Ausführung der erforderlichen Vorgänge in ObjectCollectionRule zu erteilen:
allow group <group_name> to use loganalytics-object-collection-rule in compartment <object_collection_rule_compartment>
allow group <group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <log_group_compartment>
allow group <group_name> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <entity_compartment>
allow group <group_name> to {LOG_ANALYTICS_SOURCE_READ} in tenancy
allow group <group_name> to {BUCKET_UPDATE, BUCKET_READ, BUCKET_INSPECT} in compartment <object_store_bucket_compartment>
allow group <group_name> to {OBJECT_INSPECT, OBJECT_READ} in compartment <object_store_bucket_compartment>
allow group <group_name> to {STREAM_CONSUME, STREAM_READ} in compartment <stream_compartment>
Wenn Sie IAM-Policys auf der aggregierten Ressourcenebene von Oracle Logging Analytics erstellen, müssen die folgenden Policy-Anweisungen enthalten sein, um die Objekterfassung zu verwenden:
allow group <group_name> to use loganalytics-features-family in tenancy
allow group <group_name> to use loganalytics-resources-family in compartment/tenancy
allow group <group_name> to use object-family in compartment <object_store_bucket_compartment>
allow group <group_name> to use stream-family in compartment <stream_compartment>
Wenn Sie hingegen IAM-Policys auf der Ebene einzelner Ressourcentypen erstellen, sind die folgenden Policy-Anweisungen erforderlich, um die Objekterfassung zu verwenden:
allow group <group_name> to use loganalytics-object-collection-rule in compartment <object_collection_rule_compartment>
allow group <group_name> to use loganalytics-log-group in compartment <log_group_compartment>
allow group <group_name> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <entity_compartment>
allow group <group_name> to read loganalytics-source in tenancy
allow group <group_name> to use object-family in compartment <object_store_bucket_compartment>
allow group <group_name> to use stream-family in compartment <stream_compartment>
group_name
bezieht sich in allen oben genannten Policy-Anweisungen auf die Benutzergruppe, der die erforderlichen Berechtigungen erteilt werden müssen.
Standardmäßig deaktiviert Object Storage die automatische Ausgabe von Ereignissen auf Objektebene. Sie können die Ausgabe von Ereignissen aktivieren oder beim Erstellen von ObjectCollectionRule über die erforderlichen Berechtigungen verfügen. Informationen zum Aktivieren der Ereignisausgabe finden Sie unter Objekte verwalten. Wenn Sie einen Bucket löschen und neu erstellen, setzen Sie das Kennzeichen Objektereignisse auslösen für den Bucket, damit die vorhandene Logerfassungsregel erneut funktioniert.
Damit die Logerfassung funktioniert, müssen Sie zusammen mit den oben genannten Berechtigungen für ObjectCollectionRule erstellen auch Oracle Logging Analytics die Berechtigung erteilen, die Objekte aus dem Bucket in Ihrem Mandanten zu lesen, den Stream zum Abrufen der Nachrichten zu verwenden und die Cloudereignisregeln im entsprechenden Compartment oder Mandanten zu verwalten, in dem sich der Objektspeicher-Bucket befindet. Der Prozess "Objekterfassung" verwendet den Resource Principal für die Ressource loganalyticsobjectcollectionrule, um auf die Objekte in Ihrem Bucket zuzugreifen. Im Folgenden werden die zusätzlichen erforderlichen IAM-Policy-Anweisungen aufgeführt:
Erstellen Sie eine dynamische Gruppe Dynamic_Group_Name mit der folgenden Vergleichsregel:
ALL {resource.type='loganalyticsobjectcollectionrule'}
Fügen Sie die folgenden zusätzlichen IAM-Policy-Anweisungen hinzu:
allow DYNAMIC-GROUP <Dynamic_Group_Name> to read buckets in compartment/tenancy
allow DYNAMIC-GROUP <Dynamic_Group_Name> to read objects in compartment/tenancy
allow DYNAMIC-GROUP <Dynamic_Group_Name> to manage cloudevents-rules in compartment/tenancy
allow DYNAMIC-GROUP <Dynamic_Group_Name> to inspect compartments in tenancy
allow DYNAMIC-GROUP <Dynamic_Group_Name> to use tag-namespaces in tenancy where all {target.tag-namespace.name = /oracle-tags/}
allow DYNAMIC-GROUP <Dynamic_Group_Name> to {STREAM_CONSUME} in compartment <stream_compartment>
Einige der oben genannten Policy-Anweisungen sind in den sofort verfügbaren von Oracle definierten Policy-Vorlagen enthalten. Möglicherweise möchten Sie die Vorlage für Ihren Anwendungsfall verwenden. Siehe Von Oracle definierte Policy-Vorlagen für allgemeine Anwendungsfälle.
ObjectCollectionRule
-Vorgänge
Mit der REST-API oder CLI können Sie Vorgänge wie Create
, Update
, Delete
, List
und Get
für die Ressource ObjectCollectionRule ausführen.
Informationen zur Verwendung der REST-API und zu Signieranforderungen finden Sie unter REST-APIs und Sicherheitszugangsdaten.
Um mit OCI-Cloud-Services zu kommunizieren, erstellen Sie einen API-Signaturschlüssel, und registrieren Sie diesen in Ihrem Benutzeraccount in OCI. Informationen dazu, wie Sie den Schlüssel generieren und registrieren und die OCID des Mandanten und des Benutzers erfassen, finden Sie unter Sicherheitszugangsdaten - API-Signaturschlüssel.
Informationen zu SDKs finden Sie unter Software Development Kits und Befehlszeilenschnittstelle (CLI).
Mit der REST-API
Mit den folgenden API-Vorgängen können Sie ObjectCollectionRule verwalten:
Mit der CLI
Informationen zur Verwendung der CLI finden Sie unter Befehlszeilenschnittstelle (CLI).
Eine vollständige Liste der Kennzeichen und Optionen, die für CLI-Befehle verfügbar sind, finden Sie in der Befehlszeilenreferenz.
Führen Sie die folgenden CLI-Befehle aus, um ObjectCollectionRule zu verwalten:
-
ObjectCollectionRule erstellen:
oci log-analytics object-collection-rule create --from-json <json_file_name> --namespace-name <namespace_name>
Beispiel:
oci log-analytics object-collection-rule create --from-json file://create.json --namespace-name MyNamespace
Im obigen Beispielbefehl lautet das referenzierte Beispiel
create.json
:{ "name": "<Rule_Name>", "compartmentId": "<Compartment_OCID>", "osNamespace": "<Namespace>", "osBucketName": "<Bucket_Name>", "logGroupId": "<Log_Group_OCID>", "logSourceName": "<Log_Source>", "streamId":"<Stream_OCID>" }
Die folgenden obligatorischen Eigenschaften müssen im json angegeben werden:
- name: Ein eindeutiger Name für die Datei ObjectCollectionRule. Der Name muss innerhalb des Mandanten eindeutig sein und kann nicht geändert werden.
- compartmentId: Die OCID des Compartments, in dem sich ObjectCollectionRule befindet.
- osNamespace: Der Object Storage-Namespace.
- osBucketName: Der Name des Objektspeicher-Buckets.
- logGroupId: Logging Analytics-Loggruppen-OCID, mit der die verarbeiteten Logs verknüpft werden.
- logSourceName: Name der Logging Analytics-Quelle, die für die Verarbeitung verwendet werden soll.
- streamId: Für Objekt-Collection-Regeln vom Typ LIVE oder HISTORIC_LIVE ist eine Stream-OCID erforderlich.
Neben den obligatorischen Eigenschaften können Sie optional auch die folgenden Eigenschaften angeben:
- collectionType: Der Collection-Typ. Zulässige Werte sind
LIVE
,HISTORIC
undHISTORIC_LIVE
. - charEncoding: Beispielwerte
ISO_8859_1
,UTF-16
- definedTags: Definierte Tags für diese Ressource. Jeder Schlüssel ist vordefiniert und gilt für einen bestimmten Namespace. Beispiel:
{"foo-namespace": {"bar-key": "value"}}
- Beschreibung: Eine Zeichenfolge, in der die Details der Regel beschrieben werden, die maximal 400 Zeichen lang ist.
- entityId: OCID der Logging Analytics-Entity, mit der die erfassten Logs verknüpft werden.
- freeformTags: Einfaches Schlüssel/Wert-Paar, das ohne vordefinierten Namen, Typ oder Geltungsbereich angewendet wird. Nur für Kompatibilität vorhanden. Beispiel:
{"bar-key": "value"}
- isEnabled: Standardmäßig
true
. - objectNameFilters: Beispiele finden Sie unter Selektive Objekterfassung durch Anwenden von Filtern auf Objektnamen ausführen.
- Überschreibungen: Beispiele finden Sie unter Konfiguration von ObjectCollectionRule zur Verarbeitung bestimmter Objekte überschreiben.
- pollSince: Die älteste Uhrzeit der Datei im Bucket, die für die HISTORIC- oder HISTORIC_LIVE-Collection zu berücksichtigen ist. Akzeptierte Werte sind BEGINNING, CURRENT_TIME oder RFC3339 formatierte Datetime-Zeichenfolge. Beispiel:
2019-10-12T07:20:50.52Z
im Format RFC3339. - pollTill: Die neueste Uhrzeit der Datei im Bucket, die für die HISTORIC- oder HISTORIC_LIVE-Collection zu berücksichtigen ist. Akzeptierte Werte sind die formatierte Datetime-Zeichenfolge CURRENT_TIME oder RFC3339. Beispiel:
2019-10-12T07:20:50.52Z
im Format RFC3339. - streamCursorType: Cursortyp zum Abrufen von Nachrichten aus dem Stream.
- isForceHistoricCollection: Kennzeichen, das die historische Erfassung zulässt, wenn sich der Abrufzeitraum mit der vorhandenen ACTIVE-Erfassungsregel überschneidet.
False
, standardmäßig. - streamCursorTime: Die Zeit, ab der die Objekte konsumiert werden sollen, wenn streamCursorType AT_TIME ist. Der akzeptierte Wert muss die formatierte Datetime-Zeichenfolge RFC3339 sein. Beispiel:
2019-10-12T07:20:50.52Z
.
Weitere Informationen zu den Eigenschaften für ObjectCollectionRule und den akzeptierten Werten finden Sie unter ObjectCollectionRule API-Referenz.
Beispielantwort des obigen Beispielbefehls:
{ "id": "ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID", "name": "My Rule", "compartmentId": "ocid.compartment.oc1..exampleuniqueID", "osNamespace": "MyNamespace", "osBucketName": "MyBucket1", "collectionType": "LIVE", "pollSince": "2020-09-08 14:06:28.028", "logGroupId": "ocid1.loganalyticsloggroup.oc1.. exampleuniqueID", "logSourceName": "MyLogSource", "lifecycleState": "ACTIVE", "timeCreated": "2020-09-08T14:06:28.028Z", "timeUpdated": "2020-09-08T14:06:28.028Z", "streamId": "ocid1.stream.oc1..exampleuniqueID" }
-
Aktualisieren Sie ObjectCollectionRule:
Im Folgenden finden Sie einen Beispielbefehl zum Aktualisieren einer Logquelle. Ebenso können Loggruppen, Entitys oder andere Ressourcen aktualisiert werden.
oci log-analytics object-collection-rule update --namespace-name <namespace_name> --object-collection-rule-id <object-collection-rule-OCID> --log-source-name <Log-Source>
Beispiel:
oci log-analytics object-collection-rule update --namespace-name MyNamespace --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID --log-source-name MyLogSource
-
ObjectCollectionRule löschen
oci log-analytics object-collection-rule delete --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>
Beispiel:
oci log-analytics object-collection-rule delete --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID
-
ObjectCollectionRule auflisten:
oci log-analytics object-collection-rule list --namespace-name <Namespace> --compartment-id <compartment-OCID>
Beispiel:
oci log-analytics object-collection-rule list --namespace-name “My Namespace” --compartment-id ocid.compartment.oc1..exampleuniqueID
-
ObjectCollectionRule abrufen:
oci log-analytics object-collection-rule get --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>
Beispiel:
oci log-analytics object-collection-rule get --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID
-
Überschreibungen zu ObjectCollectionRule hinzufügen:
Wenn die ObjectCollectionRule bereits vorhanden ist, erstellen Sie eine Override-Json, z.B.
update_override.json
, mit den Override-Bedingungen, die Sie zu ObjectCollectionRule hinzufügen möchten:{ "overrides":{"items":[{"matchType":"contains","matchValue":"audit","propertyName":"logSourceName","propertyValue":"myLOGANAuditSource"}]} }
Aktualisieren Sie nun die ObjectCollectionRule, um das Override aufzunehmen:
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/file
Beispiel:
oci log-analytics object-collection-rule update --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID --from-json file:///scratch/update_override.json
Weitere Details zu Überschreibungen in ObjectCollectionRule finden Sie unter ObjectCollectionRule-Konfiguration zur Verarbeitung bestimmter Objekte außer Kraft setzen.
-
Overrides aus ObjectCollectionRule entfernen:
Wenn Sie alle Override-Bedingungen aus der ObjectCollectionRule entfernen möchten, erstellen Sie einen Json, z.B.
remove_overrides.json
, der die Override-Eigenschaft wie folgt detailliert aufführt:{ "overrides":{"items":[]} }
Aktualisieren Sie jetzt die ObjectCollectionRule:
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/file
Beispiel:
oci log-analytics object-collection-rule update --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID --from-json file:///scratch/remove_overrides.json
Weitere Details zu Überschreibungen in ObjectCollectionRule finden Sie unter ObjectCollectionRule-Konfiguration zur Verarbeitung bestimmter Objekte außer Kraft setzen.
-
Fügen Sie objectNameFilters zu ObjectCollectionRule hinzu:
Wenn die ObjectCollectionRule bereits vorhanden ist, erstellen Sie einen json-Filter, z.B.
filters.json
, mit den Filtern nach Objektnamen, die Sie zu ObjectCollectionRule hinzufügen möchten:{ "objectNameFilters":["a/*","*audit*"] }
Hinweis
Sie können eine vorhandene ObjectCollectionRule nur dann mit ObjectNameFilters aktualisieren, wenn sie den TypLIVE
oderHISTORIC_LIVE
aufweist. TypHISTORIC
wird für diesen Vorgang nicht unterstützt.Aktualisieren Sie nun die ObjectCollectionRule, um die Filter einzuschließen:
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/file
Beispiel:
oci log-analytics object-collection-rule update --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID --from-json file:///scratch/filters.json
Weitere Informationen zu Filtern in ObjectCollectionRule finden Sie unter Selektive Objekterfassung durch Anwenden von Filtern auf Objektnamen ausführen.
Mandantenübergreifende Logerfassung aus Object Storage zulassen
Legen Sie die folgenden Policys fest, um die Objekterfassungsregel für das Erfassen von Logs aus einem Bucket in einem Gastmandanten zu konfigurieren.
Geben Sie als Gastmandanten Guest_Tenant
und als Compartment Bucket_Compartment
das Compartment in diesem Gastmandanten an, aus dessen Objektspeicher-Buckets die Logs erfasst werden sollen. Geben Sie als Mandanten Host_Tenant
an, der Oracle Logging Analytics abonniert hat.
Weitere Informationen zum Schreiben von Policys, mit denen Ihr Mandant auf Object Storage-Ressourcen in anderen Mandanten zugreifen kann, finden Sie unter Auf Object Storage-Ressourcen mandantenübergreifend zugreifen in der Oracle Cloud Infrastructure-Dokumentation.
Erstellen Sie die dynamische Gruppe <Dynamic_Group_Name> mit der folgenden Vergleichsregel:
ALL {resource.type='loganalyticsobjectcollectionrule'}
Der Stream kann in Host_Tenant oder Guest_Tenant verfügbar sein. Folgen Sie einem der Arbeitsabläufe, je nachdem, wo der Stream verfügbar ist:
Stream verfügbar unter Host_Tenant
- In Guest_Tenant hinzuzufügende Policys
define group <Host_User_Group> as <Host_User_Group_OCID> define tenancy <Host_Tenant> as <Host_Tenant_OCID> define DYNAMIC-GROUP <Host_Dynamic_Group> as <Dynamic_Group_OCID> admit group <Host_User_Group> of tenancy <Host_Tenant> to use buckets in compartment <Bucket_Compartment> admit group <Host_User_Group> of tenancy <Host_Tenant> to {OBJECT_INSPECT, OBJECT_READ} in compartment <Bucket_Compartment> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to read buckets in compartment <Bucket_Compartment> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to read objects in compartment <Bucket_Compartment> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to manage cloudevents-rules in compartment <Bucket_Compartment> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to inspect compartments in tenancy admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to use tag-namespaces in tenancy where all {target.tag-namespace.name = /oracle-tags /}
- Im Host_Tenant hinzuzufügende Richtlinien:
define tenancy <Guest_Tenant> as <Guest_Tenant_OCID> endorse group <Host_User_Group> to use buckets in tenancy <Guest_Tenant> endorse group <Host_User_Group> to {OBJECT_INSPECT, OBJECT_READ} in compartment <Bucket_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to read buckets in compartment <Bucket_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to read objects in compartment <Bucket_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to manage cloudevents-rules in compartment <Bucket_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to inspect compartments in tenancy <Guest_Tenant> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to use tag-namespaces in tenancy <Guest_Tenant> where all {target.tag-namespace.name = /oracle-tags /} allow DYNAMIC-GROUP <Host_Dynamic_Group> to {STREAM_CONSUME} in compartment <Stream_Compartment> allow group <Host_User_Group> to {STREAM_CONSUME, STREAM_READ} in compartment <Stream_Compartment> allow group <Host_User_Group> to use loganalytics-object-collection-rule in compartment <Rule_Compartment> allow group <Host_User_Group> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <LogGroup_Compartment> allow group <Host_User_Group> to {LOG_ANALYTICS_SOURCE_READ} in tenancy
Definieren Sie optional diese Policy-Anweisung, wenn ObjectCollectionRule verknüpfte Entitys enthält:
allow group <Host_User_Group> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <Entity_Compartment>
Stream verfügbar unter Guest_Tenant
- Im Guest_Tenant hinzuzufügende Richtlinien:
define group <Host_User_Group> as <Host_User_Group_OCID> define tenancy <Host_Tenant> as <Host_Tenant_OCID> define DYNAMIC-GROUP <Host_Dynamic_Group> as <Dynamic_Group_OCID> admit group <Host_User_Group> of tenancy <Host_Tenant> to use buckets in compartment <Bucket_Compartment> admit group <Host_User_Group> of tenancy <Host_Tenant> to {STREAM_CONSUME, STREAM_READ} in compartment <Stream_Compartment> admit group <Host_User_Group> of tenancy <Host_Tenant> to {OBJECT_INSPECT, OBJECT_READ} in compartment <Bucket_Compartment> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to {STREAM_CONSUME} in compartment <Stream_Compartment> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to read buckets in compartment <Bucket_Compartment> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to read objects in compartment <Bucket_Compartment> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to manage cloudevents-rules in compartment <Bucket_Compartment> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to inspect compartments in tenancy <Guest_Tenant> admit DYNAMIC-GROUP <Host_Dynamic_Group> of tenancy <Host_Tenant> to use tag-namespaces in tenancy where all {target.tag-namespace.name = /oracle-tags /}
- Im Host_Tenant hinzuzufügende Richtlinien:
define tenancy <Guest_Tenant> as <Guest_Tenant_OCID> endorse group <Host_User_Group> to use buckets in compartment <Bucket_Compartment> endorse group <Host_User_Group> to {OBJECT_INSPECT, OBJECT_READ} in compartment <Bucket_Compartment> endorse group <Host_User_Group> to {STREAM_CONSUME, STREAM_READ} in compartment <Stream_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to read buckets in compartment <Bucket_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to read objects in compartment <Bucket_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to manage cloudevents-rules in compartment <Bucket_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to inspect compartments in compartment <Bucket_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to {STREAM_CONSUME} in compartment <Stream_Compartment> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to use tag-namespaces in tenancy <Guest_Tenant> where all {target.tag-namespace.name = /oracle-tags /} allow group <Host_User_Group> to use loganalytics-object-collection-rule in compartment <Rule_Compartment> allow group <Host_User_Group> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <LogGroup_Compartment> allow group <Host_User_Group> to {LOG_ANALYTICS_SOURCE_READ} in tenancy
Definieren Sie optional diese Policy-Anweisung, wenn ObjectCollectionRule verknüpfte Entitys enthält:
allow group <Host_User_Group> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <Entity_Compartment>
In den oben genannten Policys gilt Folgendes:
-
Rule_Compartment
: Das Compartment, in dem ObjectCollectionRule erstellt werden muss. -
LogGroup_Compartment
: Das Compartment der Oracle Logging Analytics-Loggruppe, in dem die Logs gespeichert werden müssen. -
Entity_Compartment
: Das Compartment der Oracle Logging Analytics-Entity. -
Stream_Compartment
: Das Compartment von OCI Stream.
Nachdem die erforderlichen Policys erstellt wurden, können Sie ObjectCollectionRule erstellen, um die Logs aus dem Objektspeicher des Gastmandantens zu erfassen. Geben Sie den Namespace osNamespace
und den Bucket-Namen osBucketName
des Gastmandanten in der JSON-Datei an, wie im folgenden Beispiel dargestellt:
{
"name": "<My_Rule>",
"compartmentId": "<Compartment_OCID>",
"osNamespace": "<Guest_Tenant_Namespace>", // Namespace of the guest tenant
"osBucketName": "<Guest_Tenant__Bucket1>", // Bucket in the guest tenant object store namespace
"logGroupId": "<Log_Group_OCID>",
"logSourceName": "<My_Log_Source>",
"streamId":"<Stream_OCID>"
}
Details zum Erstellen von ObjectCollectionRule finden Sie unter ObjectCollectionRule-Vorgänge.
ObjectCollectionRule-Konfiguration zur Verarbeitung bestimmter Objekte außer Kraft setzen
Wenn Sie bestimmte Objekte in einem Bucket mit einer anderen Konfiguration als der für ObjectCollectionRule definierten verarbeiten möchten, können Sie das Override-Feature verwenden. Mit dem Feature Überschreiben können Konfigurationseigenschaften basierend auf Objektnamen bereitgestellt werden, die bestimmten Mustern, Präfixen oder Verzeichnissen im Bucket entsprechen.
-
Die Eigenschaften, für die Sie Überschreibungen angeben können:
logSourceName
,charEncoding
,entityId
,timezone
-
Der Abgleichstyp, den Sie im Override verwenden können:
contains
-
Der Übereinstimmungswert wird immer auf den Objektnamen angewendet.
-
Sie können maximal 10 Overrides pro ObjectCollectionRule erstellen. Dies ist der Standardwert. Um diesen Standardwert zu ändern, legen Sie eine Serviceanfrage (SA) mit Begründung an. Die Anforderung wird geprüft.
Wenn Sie ObjectCollectionRule zum ersten Mal erstellen, kann eines der folgenden Beispiele für create.json verwendet werden, um den json für Ihren Anwendungsfall zu erstellen:
- Beispiel für create.json mit Overrides zur Verarbeitung von Objektnamen, die
audit
mit logSourceNamemyLOGANAuditSource
enthalten:{ "name":"testRule1", "compartmentId":"ocid1.compartment.oc1..aaa...", "osNamespace":"myObjectStorageNameSpace", "osBucketName":"myObjectStorageBucket", "logGroupId":"ocid1.loganalyticsloggroup.oc1..aaa...", "logSourceName":"myLOGANSourceName", "streamId":"ocid1.stream.oc1..aaa...", "overrides":{"items":[{"matchType":"contains","matchValue":"audit","propertyName":"logSourceName","propertyValue":"myLOGANAuditSource"}]} }
Mit der obigen Regel werden die Objekte, die
audit
enthalten, mit logSourceNamemyLOGANAuditSource
verarbeitet, während alle anderen Objekte im Bucket mit logSourceNamemyLOGANSourceName
verarbeitet werden. - Beispiel für create.json mit Overrides zur Verarbeitung von Objektnamen, die
audit
mit logSourceNamemyLOGANAuditSource
und die Objektnamen mitdir1/
mit charEncodingUTF-16
enthalten:{ "name":"testRule2", "compartmentId":"ocid1.compartment.oc1..aaa...", "osNamespace":"myObjectStorageNameSpace", "osBucketName":"myObjectStorageBucket", "logGroupId":"ocid1.loganalyticsloggroup.oc1..aaa...", "logSourceName":"myLOGANSourceName", "streamId":"ocid1.stream.oc1..aaa...", "overrides":{"items":[{"matchType":"contains","matchValue":"audit","propertyName":"logSourceName","propertyValue":"myLOGANAuditSource"}, {"matchType":"contains","matchValue":"dir1/","propertyName":"charEncoding","propertyValue":"UTF-16"}]} }
Nachdem Sie den Konfigurations-Json erstellt haben, geben Sie den Dateipfad an, wenn Sie die ObjectCollectionRule erstellen. Siehe Abschnitt Erstellen ObjectCollectionRule in ObjectCollectionRule-Vorgänge.
Wenn Sie die ObjectCollectionRule bereits erstellt haben, erstellen Sie eine Json mit den Details des Override, und aktualisieren Sie die ObjectCollectionRule, um sie einzuschließen. Siehe Abschnitt Überschreibungen zu ObjectCollectionRule hinzufügen in ObjectCollectionRule-Vorgänge.
Wenn Sie alle Override-Bedingungen entfernen möchten, erstellen Sie einen Json wie im Abschnitt Overrides aus ObjectCollectionRule entfernen angegeben, und aktualisieren Sie die ObjectCollectionRule. Siehe ObjectCollectionRule-Vorgänge.
Ausgewählte Objekterfassung durch Anwenden von Filtern auf Objektnamen ausführen
Mit dem Feature "Sammlung selektiver Objekte" können Sie nur eine Teilmenge von Objekten in einem bestimmten Objektspeicher-Bucket erfassen. Das Feature wird mit Filtern nach Objektnamen unterstützt. Wenn die Filter angewendet werden, werden nur die Objekte, die mit den Filtern übereinstimmen, zur Verarbeitung erfasst.
Die Eigenschaft matchType
unterstützt nur eine exakte Übereinstimmung zusammen mit dem Platzhalter *
. Im Folgenden finden Sie einige Beispiele für Filter, die den Platzhalter verwenden:
- Filter objectName* gibt Objekte mit dem Präfix objectName an.
- Filter *objectName gibt Objekte mit dem Suffix objectName an.
- Filter *objectName* gibt Objekte an, die den Text objectName enthalten.
Weitere Informationen zu Filtern finden Sie unter Ereignisse mit Filtern vergleichen.
Wenn Sie ObjectCollectionRule zum ersten Mal erstellen, kann eines der folgenden Beispiele für create.json verwendet werden, um den json für Ihren Anwendungsfall zu erstellen:
- Beispiel für create.json mit objectNameFilters, um Objektnamen mit dem Präfix
a/
und dem Textaudit
zu verarbeiten:{ "name":"testRule1", "compartmentId":"ocid1.compartment.oc1..aaa...", "osNamespace":"myObjectStorageNameSpace", "osBucketName":"myObjectStorageBucket", "logGroupId":"ocid1.loganalyticsloggroup.oc1..aaa...", "logSourceName":"myLOGANSourceName", "streamId":"ocid1.stream.oc1..aaa...", "objectNameFilters":["a/*","*audit*"] }
- Bei Bedarf können Sie mit der Überschreibungsfunktion auch eine andere Konfiguration für jeden Filter angeben. Für das obige Beispiel können Sie zusätzlich angeben, dass alle Objekte, die den Text
audit
enthalten, die QuellemyLOGANAuditSource
verwenden müssen:{ "name":"testRule2", "compartmentId":"ocid1.compartment.oc1..aaa...", "osNamespace":"myObjectStorageNameSpace", "osBucketName":"myObjectStorageBucket", "logGroupId":"ocid1.loganalyticsloggroup.oc1..aaa...", "logSourceName":"myLOGANSourceName", "streamId":"ocid1.stream.oc1..aaa...", "objectNameFilters":["a/*","*audit*"], "overrides":{"items":[{"matchType":"contains","matchValue":"audit","propertyName":"logSourceName","propertyValue":"myLOGANAuditSource"}]} }
Weitere Informationen zu Überschreibungen finden Sie unter Konfiguration von ObjectCollectionRule zur Verarbeitung bestimmter Objekte überschreiben.
Nachdem Sie den Konfigurations-Json erstellt haben, geben Sie den Dateipfad an, wenn Sie die ObjectCollectionRule erstellen. Siehe Abschnitt Erstellen ObjectCollectionRule in ObjectCollectionRule-Vorgänge.
Wenn Sie die ObjectCollectionRule bereits erstellt haben, erstellen Sie eine Json mit den Details der Filter, und aktualisieren Sie die ObjectCollectionRule, um sie einzuschließen. Siehe Abschnitt objectNameFilters zu ObjectCollectionRule hinzufügen in ObjectCollectionRule-Vorgänge.
Die veralteten Schritte zum Erfassen von Logs aus Ihrem Objektspeicher-Bucket finden Sie unter Logs aus Ihrem OCI-Objektspeicher-Bucket - Veraltete Schritte erfassen.