Raccogli log dal bucket di storage degli oggetti OCI
Puoi raccogliere i dati di log in modo continuo dallo storage degli oggetti Oracle Cloud Infrastructure (OCI). Per abilitare la raccolta di log, creare la risorsa ObjectCollectionRule utilizzando l'API o l'interfaccia CLI REST. Dopo la creazione riuscita di questa risorsa e la disponibilità dei criteri IAM necessari, la raccolta di log verrà avviata.
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, la raccolta continua di tutti gli oggetti appena creati contenenti 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 garantire la corretta raccolta dei log dallo storage degli oggetti, evitare di modificare le regole evento create da Oracle Log Analytics.
-
Ogni bucket può avere 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 un file di archivio (
.zip,.gz,.tgz,.tar) contenente più file di log. Il numero totale di file (directory incluse) all'interno di un archivio non deve essere superiore a 2000. -
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.
-
La raccolta di log dallo storage degli oggetti supporta solo i flussi che dispongono di endpoint pubblici. I flussi configurati con endpoint privati non sono supportati.
-
Per ottenere prestazioni ottimali di raccolta dei log, Oracle consiglia di utilizzare un flusso dedicato esclusivamente per la raccolta degli oggetti.
Prerequisiti: prima di abilitare la raccolta dei log utilizzando questo approccio, assicurarsi di:
- Creare una nuova origine log o utilizzare un'origine log definita da Oracle corrispondente 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 Creazione di gruppi di log per memorizzare i log.
- Facoltativamente, se si desidera mappare i log in fase di caricamento, creare un'entità o utilizzare un'entità esistente e prendere nota dell'OCID dell'entità. Vedere Creare un'entità per rappresentare la risorsa che invia il 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 da storage degli oggetti
Creare un criterio IAM con il gruppo di utenti e le istruzioni dei criteri dei gruppi dinamici riportati di seguito.
-
Fornire le autorizzazioni ai gruppi di utenti utilizzando una delle tre opzioni riportate di seguito in base alle esigenze.
-
Le istruzioni dei criteri IAM riportate di seguito devono essere incluse nel criterio per fornire l'autorizzazione al gruppo di utenti per l'esecuzione delle operazioni richieste in 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 stanno creando criteri IAM a livello di singoli tipi di risorse, 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_namein tutte le istruzioni dei criteri sopra riportate fa riferimento al gruppo di utenti a cui devono essere assegnate le autorizzazioni necessarie. -
-
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 per fornire l'autorizzazione alla risorsa di raccolta oggetti utilizzando un gruppo dinamico.
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 sopra riportate 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 i casi d'uso comuni.
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.
Operazioni ObjectCollectionRule
Utilizzando l'API REST o l'interfaccia CLI, è possibile eseguire operazioni quali Create, Update, Delete, List e Get sulla risorsa ObjectCollectionRule.
Per informazioni sull'utilizzo dell'API REST e sulle 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 Kit and Command Line Interface (interfaccia a riga di comando e kit di sviluppo software).
Utilizzo dell'API REST
Utilizzare le operazioni API riportate di seguito per gestire ObjectCollectionRule.
Uso dell'interfaccia CLI
Per informazioni sull'uso dell'interfaccia CLI, vedere Command Line Interface (CLI).
Per un elenco completo dei flag e delle opzioni disponibili per i comandi CLI, vedere Riferimento per la riga di comando.
Eseguire i comandi CLI riportati di seguito per gestire ObjectCollectionRule.
-
Creare ObjectCollectionRule:
oci log-analytics object-collection-rule create --from-json <json_file_name> --namespace-name <namespace_name>Ad esempio:
oci log-analytics object-collection-rule create --from-json file://create.json --namespace-name MyNamespaceNel comando dell'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>" }È necessario fornire le seguenti proprietà obbligatorie nel file json:
- nome: nome univoco assegnato al file 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,HISTORICeHISTORIC_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: coppia semplice chiave-valore applicata senza nome, tipo o ambito predefiniti. Esiste solo per la compatibilità incrociata. Ad esempio,
{"bar-key": "value"} - isEnabled:
trueper impostazione predefinita. - objectNameFilters: per esempi, vedere Eseguire la raccolta oggetti selettiva applicando filtri ai nomi degli oggetti.
- override: per esempi, vedere Sostituire la configurazione di 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.52Zin 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.52Zin 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.
Risposta di esempio 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>Ad 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>Ad 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>Ad esempio:
oci log-analytics object-collection-rule get --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID -
Aggiungi sostituzioni a ObjectCollectionRule:
Se ObjectCollectionRule esiste già, creare un json di sostituzione, ad esempio
update_override.json, con le condizioni di sostituzione che si desidera aggiungere a ObjectCollectionRule:{ "overrides":{"items":[{"matchType":"contains","matchValue":"audit","propertyName":"logSourceName","propertyValue":"myLOGANAuditSource"}]} }Aggiornare ora ObjectCollectionRule per includere l'override:
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/fileAd 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.jsonPer ulteriori dettagli sulle sostituzioni in ObjectCollectionRule, vedere Sostituisci configurazione ObjectCollectionRule per elaborare oggetti specifici.
-
Rimuovi sostituzioni da ObjectCollectionRule:
Se si desidera rimuovere tutte le condizioni di sostituzione da ObjectCollectionRule, creare un json, ad esempio
remove_overrides.json, che dettagli la proprietà di sostituzione come indicato di seguito.{ "overrides":{"items":[]} }Aggiornare ora ObjectCollectionRule:
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/fileAd 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.jsonPer ulteriori dettagli sulle sostituzioni in ObjectCollectionRule, vedere Sostituisci configurazione ObjectCollectionRule per elaborare oggetti specifici.
-
Aggiungere objectNameFilters a ObjectCollectionRule:
Se ObjectCollectionRule esiste già, creare un json dei 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 è di tipoLIVEoHISTORIC_LIVE. Il tipoHISTORICnon è supportato per questa operazione.Aggiornare ora 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/fileAd 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.jsonPer ulteriori dettagli sui filtri in ObjectCollectionRule, vedere Esecuzione della raccolta oggetti selettiva mediante l'applicazione di filtri sui nomi oggetto.
Consenti raccolta log cross-tenancy dallo 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 di criteri che consentono alla tenancy di accedere alle risorse di storage degli oggetti in altre tenancy, vedere Accesso alle risorse di storage degli oggetti tra 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 /} endorse any-user to {STREAM_PRODUCE} in tenancy <Host_Tenant> where request.principal.type = 'eventrule' - Criteri da aggiungere nel documento Host_Tenant:
define tenancy <Guest_Tenant> as <Guest_Tenant_OCID> define compartment <Bucket_Compartment> as <Bucket_Compartment_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> of tenancy <Guest_Tenant> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to read buckets in compartment <Bucket_Compartment> of tenancy <Guest_Tenant> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to read objects in compartment <Bucket_Compartment> of tenancy <Guest_Tenant> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to manage cloudevents-rules in compartment <Bucket_Compartment> of tenancy <Guest_Tenant> 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 /} admit any-user of tenancy <Guest_Tenant> to {STREAM_PRODUCE} in tenancy where request.principal.type = 'eventrule' 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 tenancySe 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 /} admit any-user of tenancy <Host_Tenant> to {STREAM_PRODUCE} in tenancy where request.principal.type = 'eventrule' - Criteri da aggiungere nel documento Host_Tenant:
define tenancy <Guest_Tenant> as <Guest_Tenant_OCID> define compartment <Bucket_Compartment> as <Bucket_Compartment_OCID> define compartment <Stream_Compartment> as <Stream_Compartment_OCID> endorse group <Host_User_Group> to use buckets in compartment <Bucket_Compartment> of tenancy <Guest_Tenant> endorse group <Host_User_Group> to {OBJECT_INSPECT, OBJECT_READ} in compartment <Bucket_Compartment> of tenancy <Guest_Tenant> endorse group <Host_User_Group> to {STREAM_CONSUME, STREAM_READ} in compartment <Stream_Compartment> of tenancy <Guest_Tenant> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to read buckets in compartment <Bucket_Compartment> of tenancy <Guest_Tenant> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to read objects in compartment <Bucket_Compartment> of tenancy <Guest_Tenant> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to manage cloudevents-rules in compartment <Bucket_Compartment> of tenancy <Guest_Tenant> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to inspect compartments in compartment <Bucket_Compartment> of tenancy <Guest_Tenant> endorse DYNAMIC-GROUP <Host_Dynamic_Group> to {STREAM_CONSUME} in compartment <Stream_Compartment> of 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 /} endorse any-user to {STREAM_PRODUCE} in tenancy <Guest_Tenant> where request.principal.type = 'eventrule' 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 tenancySe 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: il compartimento della tenancy host in cui deve essere creato 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, puoi 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": "<Host_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 ObjectCollectionRule Operations.
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 basate su nomi di oggetti che corrispondono a pattern o prefissi o directory specifici all'interno del bucket.
-
Le proprietà per le quali è possibile specificare le sostituzioni:
logSourceName,charEncoding,entityId,timezone -
Il tipo di corrispondenza che è possibile utilizzare nella sostituzione:
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 dei seguenti esempi del file create.json per creare il file json per lo use case:
- Esempio di create.json con override per l'elaborazione dei nomi oggetto contenenti
auditcon 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
auditvengono elaborati con logSourceNamemyLOGANAuditSource, mentre tutti gli altri oggetti nel bucket vengono elaborati con logSourceNamemyLOGANSourceName. - Esempio di create.json con sostituzioni per elaborare i nomi oggetto contenenti
auditcon logSourceNamemyLOGANAuditSourcee i nomi 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 ObjectCollectionRule. Vedere la sezione Creare ObjectCollectionRule in ObjectCollectionRule Operations.
Se è già stato creato il file ObjectCollectionRule, creare un file json con i dettagli della sostituzione e aggiornare il file ObjectCollectionRule per includerlo. Vedere la sezione Aggiungi sostituzioni a ObjectCollectionRule in ObjectCollectionRule Operations.
Se si desidera rimuovere tutte le condizioni di sostituzione, creare un json come specificato nella sezione Rimuovi sostituzioni da ObjectCollectionRule e aggiornare ObjectCollectionRule. Vedere ObjectCollectionRule Operations.
Esegui raccolta oggetti selettivi applicando filtri ai nomi oggetto
Utilizzare la funzione Raccolta oggetti selettivi per raccogliere solo un subset di oggetti in un determinato bucket di storage degli oggetti. La funzione è supportata con filtri sui nomi degli oggetti. 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 dei seguenti esempi del file create.json per creare il file json per lo use case:
- Esempio di create.json con objectNameFilters per elaborare i nomi oggetto con prefisso
a/e contenente 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, è anche 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
auditdevono 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 sulle sostituzioni, vedere Sostituisci configurazione ObjectCollectionRule per elaborare oggetti specifici.
Dopo aver creato il file json di configurazione, specificare il percorso del file quando si crea ObjectCollectionRule. Vedere la sezione Creare ObjectCollectionRule in ObjectCollectionRule Operations.
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 ObjectCollectionRule Operations.
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
Listriportato 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>Ad esempio:
oci log-analytics object-collection-rule list --namespace-name “My Namespace” --compartment-id ocid.compartment.oc1..exampleuniqueIDPer il riferimento all'API REST equivalente, vedere Elenco ObjectCollectionRule.
-
Eseguire il seguente comando CLI
Deletein 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..exampleuniqueIDPer il riferimento all'API REST equivalente, vedere Elimina ObjectCollectionRule.