Raccogli log dal bucket di storage degli oggetti OCI
Puoi raccogliere continuamente i dati di log dallo storage degli oggetti Oracle Cloud Infrastructure (OCI). Per abilitare la raccolta dei log, creare la risorsa ObjectCollectionRule utilizzando l'API REST o l'interfaccia CLI. Dopo la creazione riuscita di questa risorsa e la disponibilità dei criteri IAM necessari, verrà avviata la raccolta dei log.
Puoi utilizzare questo metodo di raccolta dei log per includere qualsiasi tipo di log memorizzato in un bucket di storage degli oggetti.
Puoi raccogliere i log dal bucket di storage degli oggetti in uno dei modi riportati di seguito.
-
LIVE: per la raccolta continua di oggetti dal momento della creazione della regola ObjectCollectionRule. Questo è il metodo predefinito.
-
HISTORIC: per la raccolta occasionale di oggetti per un intervallo di tempo specificato.
-
HISTORIC_LIVE: per la raccolta di tutti i log cronologici nel bucket e, successivamente, per la raccolta continua di tutti gli oggetti appena creati contenenti i log.
Oracle Log Analytics utilizza i servizi di eventi e streaming di OCI insieme allo storage degli oggetti per raccogliere ed elaborare gli oggetti (tipi LIVE o HISTORIC). Quando si configura un bucket per la raccolta dei log, Oracle Log Analytics crea una regola Eventi per emettere la notifica dell'evento per ogni nuovo oggetto caricato nel bucket. Le notifiche vengono consegnate a un flusso specificato.
Per le regole di raccolta degli oggetti di tipo LIVE o HISTORIC_LIVE è necessario un OCID flusso. Utilizzato da Oracle Log Analytics per creare una regola evento e utilizzare le notifiche evento create dallo storage degli oggetti. Per impostazione predefinita, il messaggio meno recente disponibile nel flusso viene utilizzato per primo durante l'elaborazione dei messaggi nel flusso. In caso contrario, viene utilizzata la posizione del cursore esistente, se già impostata.
Oracle Log Analytics offre i seguenti suggerimenti per la creazione del flusso:
- Impostare il periodo di conservazione di 48 ore.
- Considera le partizioni in base al throughput. Ogni partizione può gestire 1000 oggetti al secondo (tra tutti i bucket che utilizzano lo stesso flusso). Per ulteriori dettagli sui limiti di streaming, vedere Limiti sulle risorse di streaming.
- Facoltativamente, prendere in considerazione la possibilità di disporre di un singolo flusso per una tenancy.
- Utilizzare questo flusso solo ai fini della raccolta degli oggetti per evitare problemi durante l'elaborazione del log.
Oltre a streamId, è possibile fornire streamCursorType per specificare la posizione nel flusso da cui iniziare a utilizzare. È possibile disporre di quattro tipi di cursori per recuperare i messaggi dal flusso. Vedere Consuming Messages.
- DEFAULT: utilizza la posizione del cursore esistente se già impostata da uno o più ObjectCollectionRule precedenti utilizzando lo stesso flusso. In caso contrario, inizia a utilizzare il messaggio meno recente disponibile nel flusso (simile a TRIM_HORIZON).
- TRIM_HORIZON: avvia il consumo dal messaggio meno recente disponibile nel flusso.
- LATEST: avvia i messaggi di consumo pubblicati dopo la creazione di questa regola.
- AT_TIME: avvia l'utilizzo dei messaggi da un'ora specificata.
Se streamCursorType è impostato su AT_TIME, è necessario anche un parametro streamCursorTime per indicare l'ora a partire dalla quale utilizzare gli oggetti.
Nota:
-
Per il corretto funzionamento della raccolta di log dallo storage degli oggetti, assicurarsi che le regole di evento create da Oracle Log Analytics non vengano manomesse.
-
Per ogni bucket, è possibile disporre di un solo ObjectCollectionRule di tipo LIVE o HISTORIC_LIVE.
-
È possibile creare fino a 1000 regole di raccolta oggetti univoche per tenancy in un'area.
-
L'oggetto può essere un singolo file di log raw o qualsiasi file di archivio (
.zip
,.gz
,.tgz
,.tar
) contenente più file di log. Il numero dei file all'interno di un archivio deve essere inferiore a 2000, incluse le directory, se presenti. -
La dimensione massima dell'oggetto (file singolo o file di archivio) è 1 GB. La dimensione non compressa dell'oggetto deve essere inferiore a 10 GB.
-
Per il corretto funzionamento della raccolta dei log, Oracle consiglia di utilizzare questo flusso solo ai fini della raccolta degli oggetti.
Prerequisiti: prima di abilitare la raccolta di log utilizzando questo approccio, assicurarsi di:
- Creare una nuova origine log o utilizzare un'origine log definita da Oracle che corrisponda al formato di log. Vedere Crea un'origine.
- Creare un gruppo di log o utilizzare un gruppo di log esistente in cui memorizzare questi log per controllare il controllo dell'accesso utente ai log e prendere nota dell'OCID del gruppo di log. Vedere Creare gruppi di log per memorizzare i log.
- Facoltativamente, se si desidera mappare i log che si stanno caricando, creare un'entità o utilizzare un'entità esistente e annotare l'OCID dell'entità. Vedere Creare un'entità per rappresentare la risorsa che emette log.
- Per i tipi di raccolta LIVE o HISTORIC_LIVE, creare un nuovo flusso o utilizzare un flusso esistente (utilizzato solo per la raccolta di oggetti). Vedere Creare un flusso.
Per arrestare la raccolta di oggetti dal bucket, eliminare la regola ObjectCollectionRule. Questa operazione eliminerà solo la configurazione associata al bucket, ma non avrà alcun effetto sui dati di log già raccolti o sugli oggetti nel bucket.
Consenti raccolta log dallo storage degli oggetti
Le seguenti istruzioni dei criteri IAM devono essere incluse nel criterio per fornire l'autorizzazione al gruppo di utenti per l'esecuzione delle operazioni necessarie su ObjectCollectionRule:
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>
Se si stanno creando criteri IAM a livello di risorse aggregate di Oracle Log Analytics, per utilizzare la raccolta di oggetti è necessario includere le istruzioni dei criteri riportate di seguito.
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>
D'altra parte, se si creano criteri IAM a livello di singoli tipi di risorsa, per utilizzare la raccolta di oggetti sono necessarie le istruzioni dei criteri riportate di seguito.
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
in tutte le istruzioni dei criteri precedenti fa riferimento al gruppo di utenti a cui devono essere assegnate le autorizzazioni necessarie.
Per impostazione predefinita, lo storage degli oggetti disabilita l'emissione automatica di eventi a livello di oggetto. È possibile abilitare l'emissione di eventi o disporre delle autorizzazioni necessarie durante la creazione di ObjectCollectionRule. Per abilitare l'emissione di eventi, vedere Gestione degli oggetti. Inoltre, quando si elimina e si crea di nuovo un bucket, affinché la regola di raccolta log esistente funzioni, impostare il flag Emetti eventi oggetti per il bucket dopo che è stato ricreato.
Affinché la raccolta dei log funzioni, insieme alle autorizzazioni precedenti per Creazione di ObjectCollectionRule, è inoltre necessario concedere a Oracle Log Analytics l'autorizzazione per leggere gli oggetti dal bucket nella tenancy, utilizzare il flusso per recuperare i messaggi e gestire le regole degli eventi cloud nel compartimento o nella tenancy corrispondente in cui si trova il bucket di storage degli oggetti. Il processo di raccolta oggetti utilizza il principal risorsa per la risorsa loganalyticsobjectcollectionrule per accedere agli oggetti all'interno del bucket. Di seguito sono riportate le istruzioni dei criteri IAM aggiuntive necessarie.
Creare un gruppo dinamico Dynamic_Group_Name con la regola di corrispondenza seguente:
ALL {resource.type='loganalyticsobjectcollectionrule'}
Aggiungere le seguenti istruzioni dei criteri IAM aggiuntive:
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>
Alcune delle istruzioni dei criteri di cui sopra sono incluse nei modelli di criteri definiti da Oracle immediatamente disponibili. Si consiglia di prendere in considerazione l'utilizzo del modello per il caso d'uso. Vedere Modelli di criteri definiti da Oracle per casi d'uso comuni.
ObjectCollectionRule
Operazioni
Utilizzando l'API REST o l'interfaccia CLI, è possibile eseguire operazioni quali Create
, Update
, Delete
, List
e Get
nella risorsa ObjectCollectionRule.
Per informazioni sull'uso dell'API REST e delle richieste di firma, vedere API REST e Credenziali di sicurezza.
Per comunicare con i servizi cloud OCI, creare una chiave di firma API e registrarla nell'account utente in OCI. Per generare e registrare la chiave e raccogliere l'OCID della tenancy e l'OCID dell'utente, vedere Credenziali di sicurezza - Chiave di firma API.
Per informazioni sugli SDK, vedere Software Development Kits and Command Line Interface.
Uso dell'API REST
Utilizzare le seguenti operazioni API per gestire ObjectCollectionRule:
Uso della CLI
Per informazioni sull'uso dell'interfaccia CLI, vedere Command Line Interface (CLI, interfaccia a riga di comando).
Per un elenco completo dei flag e delle opzioni disponibili per i comandi CLI, vedere Command Line Reference.
Eseguire i comandi CLI riportati di seguito per gestire ObjectCollectionRule.
-
Crea ObjectCollectionRule:
oci log-analytics object-collection-rule create --from-json <json_file_name> --namespace-name <namespace_name>
Esempio:
oci log-analytics object-collection-rule create --from-json file://create.json --namespace-name MyNamespace
Nel comando di esempio precedente, l'esempio di riferimento
create.json
:{ "name": "<Rule_Name>", "compartmentId": "<Compartment_OCID>", "osNamespace": "<Namespace>", "osBucketName": "<Bucket_Name>", "logGroupId": "<Log_Group_OCID>", "logSourceName": "<Log_Source>", "streamId":"<Stream_OCID>" }
Nel json devono essere fornite le seguenti proprietà obbligatorie:
- nome: nome univoco assegnato al ObjectCollectionRule. Il nome deve essere univoco all'interno della tenancy e non può essere modificato.
- compartmentId: l'OCID del compartimento in cui si trova ObjectCollectionRule.
- osNamespace: lo spazio di nomi dello storage degli oggetti.
- osBucketName: il nome del bucket di storage degli oggetti.
- logGroupId: OCID del gruppo di log di Log Analytics a cui associare i log elaborati.
- logSourceName: nome dell'origine di Log Analytics da utilizzare per l'elaborazione.
- streamId: è necessario un OCID flusso per le regole di raccolta degli oggetti di tipo LIVE o HISTORIC_LIVE.
Oltre alle proprietà obbligatorie, è inoltre possibile specificare facoltativamente le seguenti proprietà:
- collectionType: il tipo di raccolta. I valori consentiti sono
LIVE
,HISTORIC
eHISTORIC_LIVE
. - charEncoding: valori di esempio
ISO_8859_1
,UTF-16
- definedTags: tag definite per questa risorsa. Ogni chiave è predefinita e applicata a uno spazio di nomi. Ad esempio,
{"foo-namespace": {"bar-key": "value"}}
- descrizione: stringa che descrive i dettagli della regola con una lunghezza non superiore a 400 caratteri.
- entityId: OCID dell'entità Log Analytics a cui verranno associati i log raccolti.
- freeformTags: semplice coppia chiave-valore applicata senza alcun nome, tipo o ambito predefinito. Esiste solo per la compatibilità incrociata. Ad esempio,
{"bar-key": "value"}
- isEnabled: l'impostazione predefinita è
true
. - objectNameFilters: per alcuni esempi, vedere Eseguire la raccolta di oggetti selettivi applicando filtri ai nomi degli oggetti.
- override: per alcuni esempi, vedere Sostituire la configurazione ObjectCollectionRule per elaborare oggetti specifici.
- pollSince: l'ora meno recente del file nel bucket da considerare per la raccolta HISTORIC o HISTORIC_LIVE. I valori accettati sono la stringa data/ora formattata BEGINNING, CURRENT_TIME o RFC3339. Ad esempio,
2019-10-12T07:20:50.52Z
in formato RFC3339. - pollTill: l'ora più recente del file nel bucket da considerare per la raccolta HISTORIC o HISTORIC_LIVE. I valori accettati sono la stringa data/ora formattata CURRENT_TIME o RFC3339. Ad esempio,
2019-10-12T07:20:50.52Z
in formato RFC3339. - streamCursorType: tipo di cursore utilizzato per recuperare i messaggi dal flusso.
- isForceHistoricCollection: flag per consentire la raccolta cronologica se il periodo di polling si sovrappone alla regola di raccolta ACTIVE esistente.
False
, per impostazione predefinita. - streamCursorTime: l'ora da cui utilizzare gli oggetti, se streamCursorType è AT_TIME. Il valore accettato deve essere una stringa data/ora formattata RFC3339. Ad esempio,
2019-10-12T07:20:50.52Z
.
Per ulteriori informazioni sulle proprietà di ObjectCollectionRule e sui relativi valori accettati, vedere ObjectCollectionRule API Reference.
Esempio di risposta del comando di esempio precedente:
{ "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" }
-
Aggiorna ObjectCollectionRule:
Di seguito è riportato un comando di esempio per aggiornare un'origine log. Analogamente, è possibile aggiornare anche il gruppo di log, l'entità o qualsiasi altra risorsa.
oci log-analytics object-collection-rule update --namespace-name <namespace_name> --object-collection-rule-id <object-collection-rule-OCID> --log-source-name <Log-Source>
Ad esempio:
oci log-analytics object-collection-rule update --namespace-name MyNamespace --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID --log-source-name MyLogSource
-
Elimina ObjectCollectionRule :
oci log-analytics object-collection-rule delete --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>
Esempio:
oci log-analytics object-collection-rule delete --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID
-
Elenco ObjectCollectionRule:
oci log-analytics object-collection-rule list --namespace-name <Namespace> --compartment-id <compartment-OCID>
Esempio:
oci log-analytics object-collection-rule list --namespace-name “My Namespace” --compartment-id ocid.compartment.oc1..exampleuniqueID
-
Ottieni ObjectCollectionRule:
oci log-analytics object-collection-rule get --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>
Esempio:
oci log-analytics object-collection-rule get --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID
-
Aggiunta di override a ObjectCollectionRule:
Se ObjectCollectionRule esiste già, creare un json di override, ad esempio
update_override.json
, con le condizioni di override che si desidera aggiungere a ObjectCollectionRule:{ "overrides":{"items":[{"matchType":"contains","matchValue":"audit","propertyName":"logSourceName","propertyValue":"myLOGANAuditSource"}]} }
Ora aggiornare ObjectCollectionRule per includere la sostituzione:
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/file
Esempio:
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
Per ulteriori informazioni sugli override in ObjectCollectionRule, vedere Sostituisci configurazione ObjectCollectionRule per elaborare oggetti specifici.
-
Rimuovere le sostituzioni da ObjectCollectionRule:
Se si desidera rimuovere tutte le condizioni di override da ObjectCollectionRule, creare un json, ad esempio
remove_overrides.json
, che dettagli la proprietà di override come indicato di seguito.{ "overrides":{"items":[]} }
Ora aggiorna il file 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
Esempio:
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
Per ulteriori informazioni sugli override in ObjectCollectionRule, vedere Sostituisci configurazione ObjectCollectionRule per elaborare oggetti specifici.
-
Aggiungere objectNameFilters a ObjectCollectionRule:
Se ObjectCollectionRule esiste già, creare un json di filtri, ad esempio
filters.json
, con i filtri sui nomi degli oggetti che si desidera aggiungere a ObjectCollectionRule:{ "objectNameFilters":["a/*","*audit*"] }
Nota
È possibile aggiornare un ObjectCollectionRule esistente con ObjectNameFilters solo se il tipo èLIVE
oHISTORIC_LIVE
. Il tipoHISTORIC
non è supportato per questa operazione.Ora aggiornare ObjectCollectionRule per includere i filtri:
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/file
Esempio:
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
Per ulteriori dettagli sui filtri in ObjectCollectionRule, vedere Eseguire la raccolta di oggetti selettivi applicando filtri ai nomi degli oggetti.
Consenti raccolta log cross-tenancy da storage degli oggetti
Impostare i criteri riportati di seguito per configurare la regola di raccolta degli oggetti per la raccolta dei log da un bucket in un tenant guest.
Lascia che Guest_Tenant
sia il tenant guest e Bucket_Compartment
il compartimento in quel tenant guest in cui sono presenti i bucket di storage degli oggetti da cui devono essere raccolti i log. Lascia che Host_Tenant
sia il tenant sottoscritto a Oracle Log Analytics.
Per ulteriori informazioni sulla scrittura dei criteri che consentono alla tenancy di accedere alle risorse di storage degli oggetti in altre tenancy, vedere Accessing Object Storage Resources Across Tenancy nella documentazione di Oracle Cloud Infrastructure.
Creare un gruppo dinamico <Dynamic_Group_Name> con la regola di corrispondenza seguente:
ALL {resource.type='loganalyticsobjectcollectionrule'}
Il flusso può essere disponibile in Host_Tenant o in Guest_Tenant. Seguire uno dei flussi di lavoro a seconda di dove è disponibile il flusso:
Flusso disponibile in Host_Tenant
- Criteri da aggiungere in Guest_Tenant
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 /}
- Criteri da aggiungere nel documento Host_Tenant:
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
Se si desidera, definire questa istruzione criterio se a ObjectCollectionRule sono associate entità:
allow group <Host_User_Group> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <Entity_Compartment>
Flusso disponibile in Guest_Tenant
- Criteri da aggiungere nel documento Guest_Tenant:
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 /}
- Criteri da aggiungere nel documento Host_Tenant:
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
Se si desidera, definire questa istruzione criterio se a ObjectCollectionRule sono associate entità:
allow group <Host_User_Group> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <Entity_Compartment>
Nelle politiche di cui sopra,
-
Rule_Compartment
: compartimento in cui è necessario creare ObjectCollectionRule. -
LogGroup_Compartment
: il compartimento del gruppo di log di Oracle Log Analytics in cui devono essere memorizzati i log. -
Entity_Compartment
: il compartimento dell'entità Oracle Log Analytics. -
Stream_Compartment
: il compartimento di OCI Stream.
Dopo aver creato i criteri necessari, è possibile creare ObjectCollectionRule per raccogliere i log dallo storage degli oggetti della tenancy guest. Fornire lo spazio di nomi osNamespace
e il nome bucket osBucketName
del tenant guest nel file JSON, come mostrato nell'esempio riportato di seguito.
{
"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>"
}
Per informazioni dettagliate sulla creazione di ObjectCollectionRule, vedere Operazioni ObjectCollectionRule.
Eseguire l'override della configurazione di ObjectCollectionRule per elaborare oggetti specifici
Quando si desidera elaborare oggetti specifici all'interno di un bucket utilizzando una configurazione diversa da quella definita per ObjectCollectionRule, è possibile utilizzare la funzione di override. La funzione di override facilita la fornitura di proprietà di configurazione in base ai nomi oggetto che corrispondono a pattern o prefissi o directory specifici all'interno del bucket.
-
Le proprietà per le quali è possibile specificare gli override:
logSourceName
,charEncoding
,entityId
,timezone
-
Il tipo di corrispondenza che è possibile utilizzare nell'override:
contains
-
Il valore di corrispondenza viene sempre applicato nel nome oggetto.
-
È possibile creare al massimo 10 sostituzioni per ObjectCollectionRule, che è il valore predefinito. Per modificare questo valore predefinito, generare una richiesta di servizio (SR) con giustificazione. La richiesta verrà esaminata.
Se si sta creando il file ObjectCollectionRule per la prima volta, è possibile utilizzare uno degli esempi seguenti di create.json per creare il file json per il proprio caso d'uso:
- Esempio di create.json con override per elaborare i nomi oggetto contenenti
audit
con logSourceNamemyLOGANAuditSource
:{ "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"}]} }
Utilizzando la regola precedente, gli oggetti contenenti
audit
vengono elaborati con logSourceNamemyLOGANAuditSource
, mentre tutti gli altri oggetti nel bucket vengono elaborati con logSourceNamemyLOGANSourceName
. - Esempio di create.json con override per elaborare i nomi di oggetto contenenti
audit
con logSourceNamemyLOGANAuditSource
e i nomi di oggetto contenentidir1/
con charEncodingUTF-16
:{ "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"}]} }
Dopo aver creato il file json di configurazione, specificare il percorso del file quando si crea il file ObjectCollectionRule. Vedere la sezione Crea ObjectCollectionRule in Operazioni ObjectCollectionRule.
Se è già stato creato il file ObjectCollectionRule, creare un file json con i dettagli dell'override e aggiornare il file ObjectCollectionRule per includerlo. Vedere la sezione Aggiungi override a ObjectCollectionRule in ObjectCollectionRule Operations.
Se si desidera rimuovere tutte le condizioni di override, creare un json come specificato nella sezione Rimuovi sostituzioni da ObjectCollectionRule e aggiornare ObjectCollectionRule. Vedere Operazioni ObjectCollectionRule.
Esegui raccolta di oggetti selettivi applicando filtri ai nomi oggetto
Utilizzare la funzione Raccolta di oggetti selettivi per raccogliere solo un subset di oggetti in un determinato bucket di storage degli oggetti. La funzione è supportata con filtri sui nomi oggetto. Quando vengono applicati i filtri, vengono raccolti per l'elaborazione solo gli oggetti corrispondenti ai filtri.
La proprietà matchType
supporta solo la corrispondenza esatta insieme al carattere jolly *
. Di seguito sono riportati alcuni esempi di filtri che utilizzano il carattere jolly:
- Il filtro objectName* specifica gli oggetti con il prefisso objectName.
- Il filtro *objectName specifica gli oggetti con il suffisso objectName.
- Il filtro *objectName* specifica gli oggetti che contengono il testo objectName.
Per ulteriori informazioni sui filtri, vedere Corrispondenza di eventi con filtri.
Se si sta creando il file ObjectCollectionRule per la prima volta, è possibile utilizzare uno degli esempi seguenti di create.json per creare il file json per il proprio caso d'uso:
- Esempio di create.json con objectNameFilters per elaborare i nomi oggetto con prefisso
a/
e che contengono il testoaudit
:{ "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*"] }
- Se necessario, è inoltre possibile utilizzare la funzione di override per specificare una configurazione diversa per ciascuno dei filtri. Per l'esempio precedente, è inoltre possibile specificare che tutti gli oggetti contenenti il testo
audit
devono utilizzare l'originemyLOGANAuditSource
:{ "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"}]} }
Per ulteriori informazioni sugli override, vedere Sostituire la configurazione ObjectCollectionRule per elaborare oggetti specifici.
Dopo aver creato il file json di configurazione, specificare il percorso del file quando si crea il file ObjectCollectionRule. Vedere la sezione Crea ObjectCollectionRule in Operazioni ObjectCollectionRule.
Se è già stato creato il file ObjectCollectionRule, creare un file json con i dettagli dei filtri e aggiornare il file ObjectCollectionRule per includerlo. Vedere la sezione Aggiungere objectNameFilters a ObjectCollectionRule in Operazioni ObjectCollectionRule.
Per i passi non più validi per raccogliere i log dal bucket di storage degli oggetti, consulta la sezione Raccogliere i log dal bucket di storage degli oggetti - Passi non più validi.
Interrompi raccolta dei log dal bucket di storage degli oggetti OCI
Se desideri interrompere la raccolta dei log dal bucket di storage degli oggetti OCI, identifica ObjectCollectionRule impostato in precedenza per la raccolta dei log ed eliminalo.
-
Eseguire il comando CLI
List
riportato di seguito per elencare prima tutte le regole nel compartimento specifico.oci log-analytics object-collection-rule list --namespace-name <Namespace> --compartment-id <compartment-OCID>
Esempio:
oci log-analytics object-collection-rule list --namespace-name “My Namespace” --compartment-id ocid.compartment.oc1..exampleuniqueID
Per il riferimento all'API REST equivalente, vedere Elenco ObjectCollectionRule.
-
Eseguire il seguente comando CLI
Delete
in modo iterativo su ogni regola che si desidera eliminare:oci log-analytics object-collection-rule delete --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>
Ad esempio:
oci log-analytics object-collection-rule delete --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID
Per il riferimento all'API REST equivalente, vedere Elimina ObjectCollectionRule.