Recopilación de logs del cubo de almacenamiento de objetos de OCI
Puede recopilar datos de logs de forma continua desde Oracle Cloud Infrastructure (OCI) Object Storage. Para activar la recopilación de logs, cree el recurso ObjectCollectionRule mediante la API o la CLI de REST. Después de crear correctamente este recurso y tener las políticas de IAM necesarias, se iniciará la recopilación de logs.
Puede utilizar este método de recopilación de logs para realizar la ingesta de cualquier tipo de log almacenado en un cubo de almacenamiento de objetos.
Puede recopilar logs del cubo de Object Storage de una de las siguientes maneras:
-
Activada: para la recopilación continua de objetos desde el momento de la creación de la regla ObjectCollectionRule. Éste es el método por defecto.
-
HISTÓRICO: para la recopilación puntual de los objetos para un rango de tiempo especificado.
-
HISTORIC_LIVE: para la recopilación de todos los logs históricos del cubo y, después, la recopilación continua de todos los objetos recién creados que contengan logs.
Oracle Logging Analytics utiliza los servicios de Eventos y flujos de OCI junto con Object Storage para recopilar y procesar objetos (tipos LIVE o HISTORIC). Al configurar un cubo para la recopilación del log, Oracle Logging Analytics crea una regla de los eventos para emitir la notificación de evento para cada carga del objeto nuevo en el cubo. Las notificaciones se envían a un conjunto especificado.
Se necesita un OCID de flujo para las reglas de recopilación de objetos de tipo LIVE o HISTORIC_LIVE. Oracle Logging Analytics lo utiliza para crear la regla de evento y consumir las notificaciones de eventos creadas por Object Storage. Por defecto, el mensaje más antiguo disponible en el flujo se consume primero al procesar mensajes en el flujo. De lo contrario, se utiliza la posición del cursor existente, si ya está definida.
Oracle Logging Analytics ofrece las siguientes recomendaciones para crear flujos:
- Defina el período de retención de 48 horas.
- Considere las particiones en función del rendimiento global. Cada partición puede manejar 1000 objetos por segundo (en todos los cubos que utilizan el mismo flujo). Para obtener más información sobre los límites de flujo, consulte Límites de los recursos de flujo.
- Opcionalmente, considere tener un único flujo para un arrendamiento.
- Utilice este flujo sólo para la recopilación de objetos con el fin de evitar problemas durante el procesamiento de logs.
Además de streamId, puede proporcionar streamCursorType para especificar la posición en el flujo desde la que se iniciará el consumo. Puede tener cuatro tipos de cursores para recuperar mensajes del flujo. Consulte Consumo de mensajes.
- DEFAULT: utiliza la posición del cursor existente si ya la han definido los ObjectCollectionRule anteriores que utilizan el mismo flujo. De lo contrario, empieza a consumir desde el mensaje más antiguo disponible en el flujo (similar a TRIM_HORIZON).
- TRIM_HORIZON: comienza a consumir desde el mensaje más antiguo disponible del flujo.
- ÚLTIMO: inicia el consumo de mensajes que se publican después de la creación de esta regla.
- AT_TIME: inicia el consumo de mensajes desde un tiempo especificado.
Si streamCursorType está definido en AT_TIME, también necesita un parámetro streamCursorTime para indicar el tiempo a partir del cual se consumen los objetos.
Nota:
-
Para un funcionamiento adecuado de la recopilación de logs desde el almacenamiento de objetos, asegúrese de que las reglas de evento creadas por Oracle Logging Analytics no se alteren.
-
Por cubo, solo puede tener un valor ObjectCollectionRule del tipo LIVE o HISTORIC_LIVE.
-
Puede crear hasta 1.000 reglas únicas de recopilación de objetos por arrendamiento en una región.
-
El objeto puede ser un único archivo log raw o cualquier archivo de almacenamiento (
.zip
,.gz
,.tgz
,.tar
) que contenga varios archivos log. El número de archivos dentro de un archivo de almacenamiento debe ser menor de 2000, incluidos los directorios, si los hay. -
El tamaño máximo del objeto (archivo único o archivo de almacenamiento) es de 1 GB. El tamaño sin comprimir del objeto debe ser inferior a 10 GB.
-
Para un correcto funcionamiento de la recopilación de logs, Oracle recomienda utilizar este flujo solo para la recopilación de objetos.
Requisitos: antes de activar la recopilación de logs con este enfoque, asegúrese de lo siguiente:
- Cree un nuevo origen de log o utilice un origen de log definido por Oracle que coincida con el formato de log correspondiente. Consulte Creación de un origen.
- Cree un grupo de logs o utilice un grupo de logs existente donde almacenará estos logs para controlar el control de acceso del usuario a los logs y anote el OCID del grupo de logs. Consulte Creación de grupos de logs para almacenar los logs.
- Opcionalmente, si desea asignar los logs que está cargando, cree la entidad o utilice una entidad existente y anote el OCID de la entidad. Consulte Creación de una entidad que represente su recurso emisor de logs.
- Para los tipos de recopilación LIVE o HISTORIC_LIVE, cree un nuevo flujo o utilice un flujo existente (que solo se utilice para la recopilación de objetos). Consulte Creación de un flujo.
Si desea parar la recopilación de objetos del cubo, suprima la regla ObjectCollectionRule. De esta forma solo se suprimirá la configuración asociada al cubo, pero no tendrá ningún efecto en los datos de log ya recopilados o en los objetos del cubo.
Permitir recopilación de logs de Object Storage
Las siguientes sentencias de política de IAM se deben incluir en la política para proporcionar el permiso al grupo de usuarios para realizar las operaciones necesarias en 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 está creando políticas de IAM en el nivel de recursos agregados de Oracle Logging Analytics, se deben incluir las siguientes sentencias de política para utilizar la recopilación de objetos:
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>
Por otro lado, si está creando políticas de IAM en el nivel de tipos de recursos individuales, se necesitan las siguientes sentencias de política para utilizar la recopilación de objetos:
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
en todas las sentencias de política anteriores hace referencia al grupo de usuarios al que se deben otorgar los permisos necesarios.
Por defecto, Object Storage desactiva la emisión automática de eventos a nivel de objeto. Puede activar la emisión de eventos o tener los permisos necesarios al crear ObjectCollectionRule. Para activar la emisión de eventos, consulte Gestión de objetos. Además, al suprimir y volver a generar un cubo, para el funcionamiento de la regla para la recopilación de logs existente, defina el indicador Emitir eventos de objetos para el cubo después de volver a hacerlo.
Para que la recopilación de logs funcione, junto con los permisos anteriores para crear ObjectCollectionRule, también debe otorgar permiso a Oracle Logging Analytics para leer los objetos del cubo de su arrendamiento, utilizar el flujo para recuperar los mensajes y gestionar las reglas de eventos en la nube en el compartimento o arrendamiento correspondiente donde se encuentra el cubo de almacenamiento de objetos. El proceso de recopilación de objetos utiliza la entidad de recurso en el recurso loganalyticsobjectcollectionrule para acceder a los objetos del cubo. A continuación, se muestran las sentencias de política de IAM adicionales necesarias:
Cree un grupo dinámico Dynamic_Group_Name con la siguiente regla coincidente:
ALL {resource.type='loganalyticsobjectcollectionrule'}
Agregue las siguientes sentencias de política de IAM adicionales:
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>
Algunas de las sentencias de política anteriores se incluyen en las plantillas de políticas definidas por Oracle fácilmente disponibles. Puede que desee considerar el uso de la plantilla para su caso de uso. Consulte Plantillas de políticas definidas por Oracle para casos de uso comunes.
Operaciones de ObjectCollectionRule
Mediante la API o la CLI de REST, puede realizar operaciones como Create
, Update
, Delete
, List
y Get
en el recurso ObjectCollectionRule.
Para obtener información sobre el uso de la API de REST y las solicitudes de firma, consulte API de REST y Credenciales de seguridad.
Para comunicarse con los servicios en la nube de OCI, cree una clave de firma de API y regístrela en su cuenta de usuario en OCI. Para generar y registrar la clave y recopilar el OCID del modo de conexión y del usuario, consulte Credenciales del modo de seguridad - Clave de firma de API.
Para obtener información sobre los SDK, consulte Software development kits e interfaz de línea de comandos.
Uso de la API de REST
Utilice las siguientes operaciones de API para gestionar ObjectCollectionRule:
Uso de la CLI
Para obtener información sobre el uso de la CLI, consulte Interfaz de línea de comandos (CLI).
Para obtener una lista completa de los indicadores y las opciones disponibles para los comandos de la CLI, consulte Referencia de la línea de comandos.
Ejecute los siguientes comandos de la CLI para gestionar ObjectCollectionRule:
-
Creación de ObjectCollectionRule:
oci log-analytics object-collection-rule create --from-json <json_file_name> --namespace-name <namespace_name>
Por ejemplo:
oci log-analytics object-collection-rule create --from-json file://create.json --namespace-name MyNamespace
En el comando del ejemplo anterior, el ejemplo mencionado
create.json
:{ "name": "<Rule_Name>", "compartmentId": "<Compartment_OCID>", "osNamespace": "<Namespace>", "osBucketName": "<Bucket_Name>", "logGroupId": "<Log_Group_OCID>", "logSourceName": "<Log_Source>", "streamId":"<Stream_OCID>" }
Se deben proporcionar las siguientes propiedades obligatorias en json:
- nombre: nombre único proporcionado a ObjectCollectionRule. El nombre debe ser único en el arrendamiento y no se puede modificar.
- compartmentId: OCID del compartimento en el que se encuentra ObjectCollectionRule.
- osNamespace: espacio de nombres de almacenamiento de objetos.
- osBucketName: nombre del cubo de almacenamiento de objetos.
- logGroupId: OCID de grupo de logs de Logging Analytics al que asociar los logs procesados.
- logSourceName: nombre del origen de Logging Analytics que se utilizará para el procesamiento.
- streamId: se necesita un OCID de flujo para las reglas de recopilación de objetos de tipo LIVE o HISTORIC_LIVE.
Además de las propiedades obligatorias, también puede especificar opcionalmente las siguientes propiedades:
- collectionType: tipo de recopilación. Los valores permitidos son
LIVE
,HISTORIC
yHISTORIC_LIVE
. - charEncoding: valores de ejemplo
ISO_8859_1
,UTF-16
- definedTags: etiquetas definidas para este recurso. Cada clave está predefinida y su ámbito es un espacio de nombre. Por ejemplo,
{"foo-namespace": {"bar-key": "value"}}
- descripción: cadena que describe los detalles de la regla, con una longitud no superior a 400 caracteres.
- entityId: OCID de la entidad de Logging Analytics a la que se asociarán los logs recopilados.
- freeformTags: par clave-valor simple que se aplica sin ningún nombre, tipo o ámbito predefinido. Existe solo para compatibilidad cruzada. Por ejemplo,
{"bar-key": "value"}
- isEnabled:
true
por defecto. - objectNameFilters: para ver ejemplos, consulte Realizar recopilación selectiva de objetos mediante la aplicación de filtros en nombres de objeto.
- Sustituciones: para obtener ejemplos, consulte Sustitución de la configuración de ObjectCollectionRule a objetos específicos del proceso.
- pollSince: la hora más antigua del archivo en el cubo que se debe tener en cuenta para la recopilación HISTORIC o HISTORIC_LIVE. Los valores aceptados son BEGINNING, CURRENT_TIME o cadena de fecha y hora con formato RFC3339. Por ejemplo,
2019-10-12T07:20:50.52Z
en formato RFC3339. - pollTill: hora más reciente del archivo en el cubo que se debe tener en cuenta para la recopilación HISTORIC o HISTORIC_LIVE. Los valores aceptados son una cadena de fecha y hora con formato CURRENT_TIME o RFC3339. Por ejemplo,
2019-10-12T07:20:50.52Z
en formato RFC3339. - streamCursorType: tipo de cursor utilizado para recuperar mensajes del flujo.
- isForceHistoricCollection: indicador para permitir la recopilación histórica si el período de sondeo se superpone con la regla de recopilación ACTIVE existente.
False
, por defecto. - streamCursorTime: tiempo desde el que se consumen los objetos, si streamCursorType es AT_TIME. El valor aceptado debe ser una cadena de fecha y hora con formato RFC3339. Por ejemplo,
2019-10-12T07:20:50.52Z
.
Para obtener más información sobre las propiedades de ObjectCollectionRule y sus valores aceptados, consulte Referencia de API de ObjectCollectionRule.
Respuesta de ejemplo del comando de ejemplo anterior:
{ "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" }
-
Actualizar ObjectCollectionRule:
A continuación se muestra un comando de ejemplo para actualizar un origen de log. Del mismo modo, también se puede actualizar el grupo de logs, la entidad o cualquier otro recurso.
oci log-analytics object-collection-rule update --namespace-name <namespace_name> --object-collection-rule-id <object-collection-rule-OCID> --log-source-name <Log-Source>
Por ejemplo:
oci log-analytics object-collection-rule update --namespace-name MyNamespace --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID --log-source-name MyLogSource
-
Supresión de ObjectCollectionRule :
oci log-analytics object-collection-rule delete --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>
Por ejemplo:
oci log-analytics object-collection-rule delete --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID
-
Visualización de ObjectCollectionRule:
oci log-analytics object-collection-rule list --namespace-name <Namespace> --compartment-id <compartment-OCID>
Por ejemplo:
oci log-analytics object-collection-rule list --namespace-name “My Namespace” --compartment-id ocid.compartment.oc1..exampleuniqueID
-
Obtención de ObjectCollectionRule:
oci log-analytics object-collection-rule get --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID>
Por ejemplo:
oci log-analytics object-collection-rule get --namespace-name “My Namespace” --object-collection-rule-id ocid1.loganalyticsobjectcollectionrule.oc1..exampleuniqueID
-
Agregue sustituciones a ObjectCollectionRule:
Si ObjectCollectionRule ya existe, cree un json de sustitución, por ejemplo
update_override.json
, con las condiciones de sustitución que desea agregar a ObjectCollectionRule:{ "overrides":{"items":[{"matchType":"contains","matchValue":"audit","propertyName":"logSourceName","propertyValue":"myLOGANAuditSource"}]} }
Ahora actualice ObjectCollectionRule para incluir la sustitución:
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/file
Por ejemplo:
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
Para obtener más información sobre las sustituciones en ObjectCollectionRule, consulte Sustitución de la configuración de ObjectCollectionRule a objetos específicos de proceso.
-
Elimine las sustituciones de ObjectCollectionRule:
Si desea eliminar todas las condiciones de sustitución de ObjectCollectionRule, cree un json, por ejemplo
remove_overrides.json
, que detalle la propiedad de sustitución de la siguiente manera:{ "overrides":{"items":[]} }
Ahora actualice 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
Por ejemplo:
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
Para obtener más información sobre las sustituciones en ObjectCollectionRule, consulte Sustitución de la configuración de ObjectCollectionRule a objetos específicos de proceso.
-
Agregue objectNameFilters a ObjectCollectionRule:
Si ObjectCollectionRule ya existe, cree un filtro json, por ejemplo
filters.json
, con los filtros en los nombres de objeto que desea agregar a ObjectCollectionRule:{ "objectNameFilters":["a/*","*audit*"] }
Nota
Puede actualizar un ObjectCollectionRule existente con ObjectNameFilters solo si es del tipoLIVE
oHISTORIC_LIVE
. El tipoHISTORIC
no está soportado para esta operación.Ahora actualice ObjectCollectionRule para incluir los filtros:
oci log-analytics object-collection-rule update --namespace-name <Namespace> --object-collection-rule-id <object-collection-rule-OCID> --from-json file://path-to/file
Por ejemplo:
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
Para obtener más información sobre los filtros en ObjectCollectionRule, consulte Realización de recopilación selectiva de objetos mediante la aplicación de filtros en nombres de objetos.
Permitir recopilación de logs entre arrendamientos desde Object Storage
Defina las siguientes políticas para configurar la regla de recopilación de objetos para recopilar logs de un cubo en un inquilino invitado.
Deje que el inquilino invitado sea Guest_Tenant
y Bucket_Compartment
el compartimento de dicho inquilino invitado que tenga los cubos de almacenamiento de objetos de los que se deben recopilar los logs. Deje que Host_Tenant
sea el inquilino suscrito a Oracle Logging Analytics.
Para obtener información adicional sobre la escritura de políticas que permitan al arrendamiento acceder a los recursos de Object Storage de otros arrendamientos, consulte Acceso a recursos de Object Storage entre arrendamientos en la documentación de Oracle Cloud Infrastructure.
Cree el grupo dinámico <Dynamic_Group_Name> con la siguiente regla de coincidencia:
ALL {resource.type='loganalyticsobjectcollectionrule'}
El flujo puede estar disponible en Host_Tenant o en Guest_Tenant. Siga uno de los flujos de trabajo en función de dónde esté disponible el flujo:
Flujo disponible en Host_Tenant
- Políticas que se agregarán en el 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 /}
- Políticas para agregar en 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
De manera opcional, defina esta sentencia de política si ObjectCollectionRule tiene entidades asociadas:
allow group <Host_User_Group> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <Entity_Compartment>
Flujo disponible en Guest_Tenant
- Políticas que desea agregar en 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 /}
- Políticas para agregar en 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
De manera opcional, defina esta sentencia de política si ObjectCollectionRule tiene entidades asociadas:
allow group <Host_User_Group> to {LOG_ANALYTICS_ENTITY_UPLOAD_LOGS} in compartment <Entity_Compartment>
En las políticas anteriores,
-
Rule_Compartment
: compartimento en el que se debe crear ObjectCollectionRule. -
LogGroup_Compartment
: compartimento del grupo de logs de Oracle Logging Analytics en el que se deben almacenar los logs. -
Entity_Compartment
: compartimento de la entidad Oracle Logging Analytics. -
Stream_Compartment
: compartimento de OCI Stream.
Después de crear las políticas necesarias, puede crear ObjectCollectionRule para recopilar los logs del almacenamiento de objetos del arrendamiento invitado. Proporcione el espacio de nombre osNamespace
y el nombre de cubo osBucketName
del inquilino invitado en el archivo JSON, como se muestra en el siguiente ejemplo:
{
"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>"
}
Para obtener detalles sobre la creación de ObjectCollectionRule, consulte Operaciones ObjectCollectionRule.
Sustituir la configuración de ObjectCollectionRule para procesar objetos específicos
Si desea procesar objetos específicos dentro de un cubo mediante una configuración diferente de la definida para ObjectCollectionRule, puede utilizar la función de sustitución. La función sustituir facilita proporcionar propiedades de configuración basadas en nombres de objeto que coincidan con patrones o prefijos o directorios específicos dentro del cubo.
-
Las propiedades para las que puede especificar sustituciones:
logSourceName
,charEncoding
,entityId
,timezone
-
Tipo de coincidencia que puede utilizar en la sustitución:
contains
-
El valor de coincidencia siempre se aplica en el nombre de objeto.
-
Puede crear un máximo de 10 sustituciones por ObjectCollectionRule, que es el valor predeterminado. Para cambiar este valor por defecto, genere una solicitud de servicio (solicitud de servicio) con justificación. La solicitud se revisará.
Si está creando ObjectCollectionRule por primera vez, se puede utilizar uno de los siguientes ejemplos de create.json para crear el json para su caso de uso:
- Ejemplo de create.json con sustituciones para procesar nombres de objetos que contienen
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"}]} }
Mediante la regla anterior, los objetos que contienen
audit
se procesan con logSourceNamemyLOGANAuditSource
mientras que el resto de objetos del cubo se procesan con logSourceNamemyLOGANSourceName
. - Ejemplo de create.json con sustituciones para procesar nombres de objeto que contienen
audit
con logSourceNamemyLOGANAuditSource
y aquellos nombres de objeto que contienendir1/
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"}]} }
Después de crear la configuración json, especifique la ruta de archivo al crear ObjectCollectionRule. Consulte la sección Creación de ObjectCollectionRule en Operaciones ObjectCollectionRule.
Si ya ha creado ObjectCollectionRule, cree un json con los detalles de la sustitución y actualice ObjectCollectionRule para incluirlo. Consulte la sección Agregar sustituciones a ObjectCollectionRule en Operaciones ObjectCollectionRule.
Si desea eliminar todas las condiciones de sustitución, cree un json como se especifica en la sección Eliminar sustituciones de ObjectCollectionRule y actualice ObjectCollectionRule. Consulte ObjectCollectionRule Operations.
Realizar recopilación selectiva de objetos mediante la aplicación de filtros en nombres de objeto
Utilice la función Recopilación de objetos selectivos para recopilar solo un subjuego de objetos en un cubo de almacenamiento de objetos determinado. La función se admite con filtros en los nombres de objeto. Cuando se aplican los filtros, solo se recopilan para su procesamiento los objetos que coinciden con los filtros.
La propiedad matchType
solo soporta la coincidencia exacta junto con el comodín *
. A continuación, se presentan algunos ejemplos de filtros que utilizan el comodín:
- El filtro objectName* especifica objetos con el prefijo objectName.
- El filtro *objectName especifica objetos con el sufijo objectName.
- El filtro *objectName* especifica los objetos que contienen el texto objectName.
Para obtener más información sobre los filtros, consulte Colocación de eventos con filtros.
Si está creando ObjectCollectionRule por primera vez, se puede utilizar uno de los siguientes ejemplos de create.json para crear el json para su caso de uso:
- Ejemplo de create.json con objectNameFilters para procesar nombres de objetos que tienen un prefijo
a/
y contienen el textoaudit
:{ "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 es necesario, también puede utilizar la función de sustitución para especificar una configuración diferente para cada uno de los filtros. En el ejemplo anterior, también puede especificar que todos los objetos que contienen el texto
audit
deben utilizar el origenmyLOGANAuditSource
:{ "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"}]} }
Para obtener más información sobre las sustituciones, consulte Sustitución de la configuración de ObjectCollectionRule a objetos específicos de proceso.
Después de crear la configuración json, especifique la ruta de archivo al crear ObjectCollectionRule. Consulte la sección Creación de ObjectCollectionRule en Operaciones ObjectCollectionRule.
Si ya ha creado ObjectCollectionRule, cree un json con los detalles de los filtros y actualice ObjectCollectionRule para incluirlo. Consulte la sección Agregar objectNameFilters a ObjectCollectionRule en Operaciones ObjectCollectionRule.
Para conocer los pasos en desuso para recopilar logs del cubo de Object Storage, consulte Recopilación de logs del cubo de almacenamiento de objetos deOCI: pasos en desuso.