Collecte de journaux à partir du bucket OCI Object Storage
Vous pouvez collecter les données de journal en continu à partir d'Oracle Cloud Infrastructure (OCI) Object Storage. Pour activer la collecte de journal, créez une ressource ObjectCollectionRule à l'aide de l'API REST ou de l'interface de ligne de commande. Une fois cette ressource et les stratégies IAM requises créées, la collecte de journal est lancée.
Vous pouvez appliquer cette méthode de collecte des journaux afin d'inclure tout type de journal stocké dans un bucket de stockage d'objet.
Vous pouvez collecter des journaux à partir du bucket Object Storage de l'une des manières suivantes :
-
Actif : collecte continue des objets à partir de la création de la règle ObjectCollectionRule. Il s'agit de la méthode par défaut.
-
HISTORIQUE : collecte ponctuelle des objets sur une période donnée.
-
HISTORIC_LIVE : collectez tous les journaux historiques dans le bucket, puis collectez en continu de tous les objets nouvellement créés contenant les journaux.
Oracle Log Analytics utilise les services Events et Streaming d'OCI conjointement avec Object storage pour collecter et traiter les objets (types LIVE ou HISTORIC). Lorsque vous configurez un bucket pour la collecte de journal, Oracle Log Analytics crée une règle Events afin d'émettre la notification d'événement pour chaque nouveau téléchargement d'objet vers le bucket. Les notifications sont transmises à un flux que vous avez indiqué.
Un OCID de flux de données est requis pour les règles de collecte d'objets de type LIVE ou HISTORIC_LIVE. Utilisé par Oracle Log Analytics pour créer une règle d'événement et utiliser les notifications d'événement créées par Object Storage. Par défaut, le message disponible le plus ancien du flux est utilisé en premier lors du traitement des messages du flux. Sinon, la position du curseur existant est utilisée, si elle est déjà définie.
Oracle Log Analytics propose les recommandations suivantes pour la création de flux :
- Définissez la période de conservation de 48 heures.
- Considérez les partitions en fonction du débit. Chaque partition peut gérer 1000 objets par seconde (sur tous les buckets qui utilisent le même flux). Pour plus de détails sur les limites de transmission en continu, reportez-vous à Limites relatives aux ressources de transmission en continu.
- Vous pouvez éventuellement envisager d'avoir un flux unique pour une location.
- Utilisez ce flux uniquement à des fins de collecte d'objets afin d'éviter les problèmes lors du traitement du journal.
En plus de streamId, vous pouvez indiquer streamCursorType pour indiquer la position du flux à partir de laquelle commencer à consommer. Vous pouvez utiliser quatre types de curseur pour extraire des messages du flux. Reportez-vous à Consommation de messages.
- DEFAULT : utilise la position de curseur existante si elle est déjà définie par des ObjectCollectionRule précédents utilisant le même flux. Sinon, il commence à consommer à partir du message disponible le plus ancien du flux (similaire à TRIM_HORIZON).
- TRIM_HORIZON : début d'utilisation à partir du plus ancien message disponible dans le flux.
- DERNIER : commence à consommer les messages qui sont publiés après la création de cette règle.
- AT_TIME : démarre l'utilisation des messages à partir d'une période donnée.
Si streamCursorType est défini sur AT_TIME, un paramètre streamCursorTime est également requis pour indiquer l'heure à laquelle les objets doivent être consommés.
Remarque :
-
Pour garantir une collecte de journaux appropriée à partir d'Object Storage, évitez de modifier les règles d'événement créées par Oracle Log Analytics.
-
Chaque bucket ne peut avoir qu'un seul élément ObjectCollectionRule de type Actif ou HISTORIC_LIVE.
-
Vous pouvez créer jusqu'à 1 000 règles uniques de collecte d'objets par location dans une région.
-
L'objet peut être un fichier journal brut unique ou un fichier d'archive (
.zip,.gz,.tgz,.tar) contenant plusieurs fichiers journaux. Le nombre total de fichiers (y compris les répertoires) dans un fichier d'archive ne doit pas dépasser 2000. -
La taille maximale de l'objet (fichier unique ou fichier d'archive) est de 1 Go. La taille non compressée de l'objet doit être inférieure à 10 Go.
-
La collecte de journaux à partir d'Object Storage ne prend en charge que les flux ayant des adresses publiques. Les flux configurés avec des adresses privées ne sont pas pris en charge.
-
Pour des performances optimales de collecte de journaux, Oracle recommande d'utiliser un flux dédié exclusivement pour la collecte d'objets.
Prérequis : avant d'activer la collecte de journal via cette approche, effectuez les opérations suivantes :
- Créez une source de journal ou utilisez une source de journal définie par Oracle correspondant à votre format de journal. Reportez-vous à Création d'une source.
- Créez un groupe de journaux ou utilisez un groupe existant dans lequel vous allez stocker ces journaux pour assurer le contrôle d'accès utilisateur aux journaux, et notez l'OCID du groupe de journaux. Reportez-vous à Création de groupes de journaux pour stocker vos journaux.
- (Facultatif) Si vous voulez mettre en correspondance les journaux que vous téléchargez, créez une entité ou utilisez une entité existante, et notez l'OCID de l'entité. Reportez-vous à Création d'une entité pour représenter votre ressource émettrice de journal.
- Pour les types de collection LIVE ou HISTORIC_LIVE, créez un flux ou utilisez un flux existant (utilisé uniquement pour la collection d'objets). Reportez-vous à Création d'un flux.
Pour arrêter la collecte d'objets à partir du bucket, supprimez la règle ObjectCollectionRule. Cette opération supprime uniquement la configuration associée au bucket, sans effet sur les données de journal déjà collectées ou sur les objets du bucket.
Autoriser la collecte de journaux à partir d'Object Storage
Les instructions de stratégie IAM suivantes doivent être incluses dans votre stratégie afin de fournir le droit d'accès au groupe d'utilisateurs pour l'exécution des opérations requises sur 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>Si vous créez des stratégies IAM au niveau des ressources agrégées Oracle Log Analytics, les instructions de stratégie suivantes doivent être incluses pour utiliser la collection d'objets :
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>En revanche, si vous créez des stratégies IAM au niveau des types de ressource individuels, les instructions de stratégie suivantes sont requises pour utiliser la collection d'objets :
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>Dans toutes les instructions de stratégie ci-dessus, group_name fait référence au groupe d'utilisateurs auquel les droits d'accès requis doivent être accordés.
Par défaut, Object Storage désactive l'émission automatique d'événements au niveau de l'objet. Vous pouvez activer l'émission d'événements ou disposer des droits d'accès requis lors de la création de la règle ObjectCollectionRule. Pour activer l'émission d'événements, reportez-vous à Gestion des objets. Par ailleurs, lorsque vous supprimez et recréez un bucket, pour que la règle d'ensemble de journaux existante fonctionne, définissez l'indicateur Emettre des événements d'objet du bucket après sa recréation.
Pour que la collecte de journaux fonctionne, ainsi que les droits d'accès ci-dessus pour Création de ObjectCollectionRule, vous devez également accorder à Oracle Log Analytics le droit de lire les objets du bucket dans votre location, d'utiliser le flux de données pour extraire les messages et de gérer les règles d'événement cloud dans le compartiment ou la location correspondant où se trouve le bucket de stockage d'objet. Le processus de collecte d'objets utilise le principal de ressource par rapport à la ressource loganalyticsobjectcollectionrule pour accéder aux objets à l'intérieur du bucket. Les instructions de stratégie IAM supplémentaires requises sont les suivantes :
Créez un groupe dynamique Dynamic_Group_Name avec la règle de correspondance ci-dessous :
ALL {resource.type='loganalyticsobjectcollectionrule'}Ajoutez les instructions de stratégie IAM supplémentaires suivantes :
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>Certaines des instructions de stratégie ci-dessus sont incluses dans les modèles de stratégie facilement disponibles définis par Oracle. Vous pouvez envisager d'utiliser le modèle pour votre cas d'emploi. Reportez-vous à Modèles de stratégie définis par Oracle pour les cas d'utilisation courants.
Opérations sur ObjectCollectionRule
A l'aide de l'API REST ou de l'interface de ligne de commande, vous pouvez effectuer des opérations telles que Create, Update, Delete, List et Get sur la ressource ObjectCollectionRule.
Pour plus d'informations sur l'utilisation de l'API REST et la signature des demandes, reportez-vous à API REST et à Informations d'identification de sécurité.
Pour communiquer avec les services cloud OCI, créez une clé de signature d'API et inscrivez-la dans votre compte utilisateur dans OCI. Pour générer et inscrire la clé, et pour collecter l'OCID de la Location et l'OCID de l'utilisateur, reportez-vous àInformations d'identification de sécurité - Clé de signature d'API.
Pour plus d'informations sur les kits SDK, reportez-vous à Kits SDK et interface de ligne de commande.
Utilisation de l'API REST
Utilisez les opérations d'API suivantes pour gérer ObjectCollectionRule :
Utilisation de l'interface de ligne de commande
Pour plus d'informations sur l'utilisation de l'interface de ligne de commande, reportez-vous à Interface de ligne de commande (CLI).
Afin d'obtenir la liste complète des indicateurs et des options disponibles pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande.
Exécutez les commandes d'interface de ligne de commande suivantes pour gérer ObjectCollectionRule :
-
Create ObjectCollectionRule :
oci log-analytics object-collection-rule create --from-json <json_file_name> --namespace-name <namespace_name>Par exemple :
oci log-analytics object-collection-rule create --from-json file://create.json --namespace-name MyNamespaceDans l'exemple de commande ci-dessus, l'exemple de fichier référencé est
create.json:{ "name": "<Rule_Name>", "compartmentId": "<Compartment_OCID>", "osNamespace": "<Namespace>", "osBucketName": "<Bucket_Name>", "logGroupId": "<Log_Group_OCID>", "logSourceName": "<Log_Source>", "streamId":"<Stream_OCID>" }Les propriétés obligatoires suivantes doivent être fournies dans le fichier json :
- nom : nom unique donné à ObjectCollectionRule. Le nom doit être unique dans la location et ne peut pas être modifié.
- compartmentId : OCID du compartiment dans lequel se trouve ObjectCollectionRule.
- osNamespace : espace de noms de stockage d'objet.
- osBucketName : nom du bucket de stockage d'objet.
- logGroupId : OCID de groupe de journaux Log Analytics auquel associer les journaux traités.
- logSourceName : nom de la source Log Analytics à utiliser pour le traitement.
- streamId : un OCID de flux de données est requis pour les règles de collecte d'objets de type LIVE ou HISTORIC_LIVE.
Outre les propriétés obligatoires, vous pouvez également spécifier les propriétés suivantes :
- collectionType : type de collection. Les valeurs autorisées sont
LIVE,HISTORICetHISTORIC_LIVE. - charEncoding : exemples de valeurs
ISO_8859_1,UTF-16 - definedTags : balises définies pour cette ressource. Chaque clé est prédéfinie et ciblée sur un espace de noms. Par exemple,
{"foo-namespace": {"bar-key": "value"}} - Description : chaîne qui décrit les détails de la règle (400 caractères maximum).
- entityId : OCID de l'entité Log Analytics à laquelle les journaux collectés seront associés.
- freeformTags : paire clé-valeur simple appliquée sans nom, type ou portée prédéfinis. Existe uniquement pour la compatibilité croisée. Par exemple,
{"bar-key": "value"} - isEnabled : par défaut,
true. - objectNameFilters : pour obtenir des exemples, reportez-vous à Exécution d'une collecte sélective d'objets en appliquant des filtres aux noms d'objet.
- Remplacement : pour obtenir des exemples, reportez-vous à Remplacement de la configuration ObjectCollectionRule pour traiter des objets spécifiques.
- pollSince : heure la plus ancienne du fichier dans le bucket à prendre en compte pour la collection HISTORIC ou HISTORIC_LIVE. Les valeurs acceptées sont BEGINNING, CURRENT_TIME ou la chaîne datetime au format RFC3339. Par exemple,
2019-10-12T07:20:50.52Zau format RFC3339. - pollTill : heure la plus récente du fichier dans le bucket à prendre en compte pour la collection HISTORIC ou HISTORIC_LIVE. Les valeurs acceptées sont la chaîne de date/heure au format CURRENT_TIME ou RFC3339. Par exemple,
2019-10-12T07:20:50.52Zau format RFC3339. - streamCursorType : type de curseur utilisé pour extraire les messages du flux de données.
- isForceHistoricCollection : indicateur permettant d'autoriser la collecte historique si la période d'interrogation chevauche la règle de collecte ACTIVE existante.
False, par défaut. - streamCursorTime : heure à partir de laquelle consommer les objets, si streamCursorType est AT_TIME. La valeur acceptée doit être une chaîne de date/heure au format RFC3339. Par exemple,
2019-10-12T07:20:50.52Z.
Pour plus d'informations sur les propriétés de ObjectCollectionRule et leurs valeurs acceptées, reportez-vous à Référence d'API ObjectCollectionRule.
Exemple de réponse à l'exemple de commande ci-dessus :
{ "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" } -
Mettre à jour ObjectCollectionRule :
Voici un exemple de commande permettant de mettre à jour une source de journal. De même, vous pouvez également mettre à jour le groupe de journaux, l'entité ou toute autre ressource.
oci log-analytics object-collection-rule update --namespace-name <namespace_name> --object-collection-rule-id <object-collection-rule-OCID> --log-source-name <Log-Source>Par exemple :
oci log-analytics object-collection-rule update --namespace-name MyNamespace --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID --log-source-name MyLogSource -
Delete ObjectCollectionRule :
oci log-analytics object-collection-rule delete --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>Par exemple :
oci log-analytics object-collection-rule delete --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID -
List ObjectCollectionRule :
oci log-analytics object-collection-rule list --namespace-name <Namespace> --compartment-id <compartment-OCID>Par exemple :
oci log-analytics object-collection-rule list --namespace-name “My Namespace” --compartment-id ocid.compartment.oc1..exampleuniqueID -
Get ObjectCollectionRule :
oci log-analytics object-collection-rule get --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>Par exemple :
oci log-analytics object-collection-rule get --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID -
Ajouter des remplacements à ObjectCollectionRule :
Si ObjectCollectionRule existe déjà, créez un json de remplacement, par exemple
update_override.json, avec les conditions de remplacement que vous souhaitez ajouter à ObjectCollectionRule :{ "overrides":{"items":[{"matchType":"contains","matchValue":"audit","propertyName":"logSourceName","propertyValue":"myLOGANAuditSource"}]} }Maintenant, mettez à jour le fichier ObjectCollectionRule pour inclure le remplacement :
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/filePar exemple :
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.jsonPour plus d'informations sur les remplacements dans ObjectCollectionRule, reportez-vous à Remplacement de la configuration ObjectCollectionRule pour traiter des objets spécifiques.
-
Supprimer les remplacements de ObjectCollectionRule :
Si vous souhaitez supprimer toutes les conditions de remplacement du fichier ObjectCollectionRule, créez un fichier json, par exemple
remove_overrides.json, qui détaille la propriété de remplacement comme suit :{ "overrides":{"items":[]} }Maintenant, mettez à jour ObjectCollectionRule :
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/filePar exemple :
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.jsonPour plus d'informations sur les remplacements dans ObjectCollectionRule, reportez-vous à Remplacement de la configuration ObjectCollectionRule pour traiter des objets spécifiques.
-
Ajoutez objectNameFilters à ObjectCollectionRule :
Si ObjectCollectionRule existe déjà, créez un filtre json, par exemple
filters.json, avec les filtres sur les noms d'objet que vous souhaitez ajouter à ObjectCollectionRule :{ "objectNameFilters":["a/*","*audit*"] }Remarque
Vous ne pouvez mettre à jour un fichier ObjectCollectionRule existant avec ObjectNameFilters que s'il est de typeLIVEouHISTORIC_LIVE. Le typeHISTORICn'est pas pris en charge pour cette opération.Mettez à jour le fichier ObjectCollectionRule pour inclure les filtres :
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/filePar exemple :
oci log-analytics object-collection-rule update --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID --from-json file:///scratch/filters.jsonPour plus d'informations sur les filtres dans ObjectCollectionRule, reportez-vous à Exécution d'une collection d'objets sélectifs en appliquant des filtres aux noms d'objet.
Autoriser la collecte de journaux inter-location à partir d'Object Storage
Définissez les stratégies suivantes pour configurer la règle de collecte d'objets afin de collecter les journaux d'un bucket dans un locataire invité.
Soit Guest_Tenant le locataire invité et Bucket_Compartment le compartiment du locataire invité qui contient les buckets de stockage d'objet à partir desquels les journaux doivent être collectés. Host_Tenant est le locataire abonné à Oracle Log Analytics.
Pour plus d'informations sur l'écriture de stratégies permettant à la location d'accéder aux ressources Object Storage d'autres locations, reportez-vous à Accès aux ressources Object Storage dans des locations dans la documentation Oracle Cloud Infrastructure.
Créez le groupe dynamique <Dynamic_Group_Name> avec la règle de mise en correspondance suivante :
ALL {resource.type='loganalyticsobjectcollectionrule'}Le flux peut être disponible dans Host_Tenant ou Guest_Tenant. Suivez l'un des flux de travail en fonction de l'emplacement du flux :
Flux disponible dans Host_Tenant
- Stratégies à ajouter dans le répertoire 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' - Stratégies à ajouter dans le fichier 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 tenancyDéfinissez éventuellement cette instruction de stratégie si des entités sont associées à ObjectCollectionRule :
allow group <Host_User_Group> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <Entity_Compartment>
Flux disponible dans Guest_Tenant
- Stratégies à ajouter dans le fichier 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 /} - Stratégies à ajouter dans le fichier 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 /} 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 tenancyDéfinissez éventuellement cette instruction de stratégie si des entités sont associées à ObjectCollectionRule :
allow group <Host_User_Group> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <Entity_Compartment>
Dans les stratégies ci-dessus :
-
Rule_Compartment: compartiment de la location d'hôte dans lequel ObjectCollectionRule doit être créé. -
LogGroup_Compartment: compartiment du groupe de journaux Oracle Log Analytics dans lequel les journaux doivent être stockés. -
Entity_Compartment: compartiment de l'entité Oracle Log Analytics. -
Stream_Compartment: compartiment d'OCI Stream.
Une fois les stratégies requises créées, vous pouvez créer ObjectCollectionRule pour collecter les journaux à partir d'Object Storage dans la location d'invité. Indiquez l'espace de noms osNamespace et le nom de bucket osBucketName du locataire invité dans le fichier JSON, comme dans l'exemple suivant :
{
"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>"
}Pour plus d'informations sur la création de la règle ObjectCollectionRule, reportez-vous à Opérations sur ObjectCollectionRule.
Remplacer la configuration ObjectCollectionRule pour traiter des objets spécifiques
Lorsque vous souhaitez traiter des objets spécifiques à l'intérieur d'un bucket à l'aide d'une configuration différente de celle définie pour ObjectCollectionRule, vous pouvez utiliser la fonctionnalité de remplacement. La fonctionnalité de remplacement permet de fournir des propriétés de configuration basées sur des noms d'objet correspondant à des modèles, préfixes ou répertoires spécifiques à l'intérieur du bucket.
-
Propriétés pour lesquelles vous pouvez indiquer des remplacements :
logSourceName,charEncoding,entityId,timezone -
Type de correspondance que vous pouvez utiliser dans le remplacement :
contains -
La valeur de correspondance est toujours appliquée sur le nom d'objet.
-
Vous pouvez créer un maximum de 10 remplacements par ObjectCollectionRule, qui est la valeur par défaut. Pour modifier cette valeur par défaut, créez une demande de service (SR) avec justification. La demande sera vérifiée.
Si vous créez le fichier ObjectCollectionRule pour la première fois, l'un des exemples suivants du fichier create.json peut être utilisé pour créer le fichier json pour votre cas d'emploi :
- Exemple create.json avec des remplacements pour traiter les noms d'objet contenant
auditavec 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"}]} }A l'aide de la règle ci-dessus, les objets contenant
auditsont traités avec logSourceNamemyLOGANAuditSourcetandis que tous les autres objets du bucket sont traités avec logSourceNamemyLOGANSourceName. - Exemple create.json avec des remplacements pour traiter les noms d'objet contenant
auditavec logSourceNamemyLOGANAuditSourceet les noms d'objet contenantdir1/avec 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"}]} }
Une fois la configuration json créée, indiquez le chemin d'accès au fichier lors de la création de ObjectCollectionRule. Reportez-vous à la section Créer ObjectCollectionRule dans ObjectCollectionRule Opérations.
Si vous avez déjà créé le fichier ObjectCollectionRule, créez un fichier json avec les détails du remplacement et mettez à jour le fichier ObjectCollectionRule pour l'inclure. Reportez-vous à la section Ajouter des remplacements à ObjectCollectionRule dans ObjectCollectionRule Operations.
Si vous souhaitez enlever toutes les conditions de remplacement, créez un fichier json tel qu'indiqué dans la section Supprimer les remplacements de ObjectCollectionRule et mettez à jour le fichier ObjectCollectionRule. Reportez-vous à ObjectCollectionRule Operations.
Effectuer une collecte sélective d'objets en appliquant des filtres aux noms d'objet
Utilisez la fonctionnalité Collection d'objets sélectifs pour collecter uniquement un sous-ensemble d'objets dans un bucket de stockage d'objets donné. La fonctionnalité est prise en charge avec des filtres sur les noms d'objet. Lorsque les filtres sont appliqués, seuls les objets correspondant aux filtres sont collectés pour traitement.
La propriété matchType prend uniquement en charge la correspondance exacte avec le caractère générique *. Voici quelques exemples de filtres utilisant le caractère générique :
- Le filtre objectName* spécifie les objets avec le préfixe objectName.
- Le filtre *objectName spécifie les objets avec le suffixe objectName.
- Le filtre *objectName* indique les objets qui contiennent le texte objectName.
Pour plus d'informations sur les filtres, reportez-vous à Correspondance d'événements avec des filtres.
Si vous créez le fichier ObjectCollectionRule pour la première fois, l'un des exemples suivants du fichier create.json peut être utilisé pour créer le fichier json pour votre cas d'emploi :
- Exemple create.json avec objectNameFilters pour traiter les noms d'objet qui ont un préfixe
a/et contiennent le texteaudit:{ "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*"] } - Si nécessaire, vous pouvez également utiliser la fonction de remplacement pour spécifier une configuration différente pour chacun des filtres. Pour l'exemple ci-dessus, vous pouvez également indiquer que tous les objets contenant le texte
auditdoivent utiliser la sourcemyLOGANAuditSource:{ "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"}]} }Pour plus d'informations sur les remplacements, voir Remplacer la configuration ObjectCollectionRule pour traiter des objets spécifiques.
Une fois la configuration json créée, indiquez le chemin d'accès au fichier lors de la création de ObjectCollectionRule. Reportez-vous à la section Créer ObjectCollectionRule dans ObjectCollectionRule Opérations.
Si vous avez déjà créé le fichier ObjectCollectionRule, créez un fichier json avec les détails des filtres et mettez à jour le fichier ObjectCollectionRule pour l'inclure. Reportez-vous à la section Ajouter objectNameFilters à ObjectCollectionRule dans ObjectCollectionRule Operations.
Pour connaître les étapes en phase d'abandon permettant de collecter des journaux à partir du bucket Object Storage, reportez-vous à Collecte de journaux à partir du bucket Object Storage - Etapes en phase d'abandon.
Arrêt de la collecte de journaux à partir du compartiment OCI Object Storage
Si vous souhaitez arrêter la collecte des journaux à partir du bucket OCI Object Storage, identifiez le fichier ObjectCollectionRule que vous avez configuré précédemment pour la collecte de journaux et supprimez-le.
-
Exécutez la commande d'interface de ligne de commande
Listsuivante pour répertorier d'abord toutes les règles du compartiment spécifique :oci log-analytics object-collection-rule list --namespace-name <Namespace> --compartment-id <compartment-OCID>Par exemple :
oci log-analytics object-collection-rule list --namespace-name “My Namespace” --compartment-id ocid.compartment.oc1..exampleuniqueIDPour obtenir la référence d'API REST équivalente, reportez-vous à Liste ObjectCollectionRule.
-
Exécutez la commande d'interface de ligne de commande
Deletesuivante itérativement sur chaque règle à supprimer :oci log-analytics object-collection-rule delete --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>Par exemple :
oci log-analytics object-collection-rule delete --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueIDPour obtenir la référence d'API REST équivalente, reportez-vous à Suppression de ObjectCollectionRule.