Creación de un programa para ejecutar automáticamente una consulta de búsqueda guardada
Después de crear una búsqueda guardada, puede programar la ejecución de la consulta en la búsqueda guardada periódicamente y redirigir el resultado de la ejecución de la consulta al servicio Monitoring.
Más temas para tareas programadas:
-
Permitir a los usuarios realizar todas las operaciones en tareas programadas
-
Visualización de todas las tareas programadas en un compartimento mediante la API
Los siguientes pasos se muestran con el servicio Monitoring como destino para supervisar la tarea programada. Las métricas emitidas por Oracle Log Analytics se almacenan mediante el servicio Monitoring.
-
Abra el menú de navegación y haga clic en Observación y gestión. En Log Analytics, haga clic en Administración.
Los recursos de administración se muestran en el panel en Administración en la izquierda. Haga clic en Reglas de detección.
Se abre la página Reglas de detección. Haga clic en Crear regla.
Se abre el cuadro de diálogo Crear regla de detección.
-
Haga clic en Regla de detección de búsquedas programadas.
-
Especifique un nombre de regla para la tarea programada.
-
En Seleccionar una búsqueda guardada:
Especifique la búsqueda guardada para la que desea crear un programa. En primer lugar, seleccione el compartimento en el que se guarda la búsqueda guardada.
A continuación, en el menú, seleccione la búsqueda guardada.
Esto muestra los detalles de la búsqueda guardada, como la consulta y su descripción.
-
En Frecuencia de configuración:
Especifique Intervalo, la ventana de agregación. Puede optimizar el programa para que se ejecute en los minutos, horas, días o semanas seleccionados. Además, al seleccionar agregaciones más grandes, por ejemplo Días, puede especificar la agregación más detallada dentro del rango, por ejemplo, la hora del día en la que se debe ejecutar la consulta.
Puede especificar la frecuencia de la ejecución de la consulta, como
Run indefinitely,Run onceoCustom.También puede incluir Recuento de repeticiones en la especificación de frecuencia para el número de veces que se debe ejecutar la consulta.
-
En Seleccionar un servicio de destino que configurar:
-
Seleccione el servicio de destino donde se publican los resultados de la ejecución de la consulta, por ejemplo,
Monitoring.En el servicio Monitoring se almacenan las métricas para el resultado de la ejecución de la consulta en un programa.
-
Seleccione Compartimento de métricas, el compartimento en el que se creará la métrica. Por defecto, Oracle Log Analytics selecciona un compartimento.
-
Seleccione Espacio de nombre de métrica, el espacio de nombre de métrica en el que desea colocar la nueva métrica. El ámbito de las opciones disponibles para seleccionar el espacio de nombre se define mediante la selección del compartimento de métricas en el paso anterior. Si las opciones no están disponibles, también puede introducir un nuevo valor para el espacio de nombre.
Nota
Al especificar un nuevo valor para el espacio de nombres, seleccione un nombre que no empiece pororacle_yoci_. Son prefijos reservados. Consulte Publicación de métricas personalizadas. -
Si lo desea, seleccione Grupo de recursos, el grupo al que pertenece la métrica. Un grupo de recursos es una cadena personalizada con una métrica personalizada.
-
Introduzca Nombre de métrica, el nombre de la métrica, utilizada en el explorador del servicio Monitoring para ver las métricas. Solo se puede especificar una métrica.
Para facilitar la identificación en el explorador de métricas, se recomienda incluir el nombre de la búsqueda guardada en el nombre de la métrica, por ejemplo, <nombremibúsquedaguardada><nombre_métrica>.
-
-
Opcionalmente, amplíe la sección Mostrar opciones avanzadas y agregue etiquetas a la regla de detección.
-
Si las políticas de IAM necesarias aún no se han definido, se muestra una notificación que enumera las políticas para:
- Crear un grupo dinámico
- Aplicar las políticas al grupo dinámico para permitir que se ejecuten las tareas programadas
Anote las políticas mostradas y créelas.
-
Haga clic en Crear regla de detección.
La consulta está programada ahora para ejecutarse en un intervalo normal y las métricas resultantes se emiten al servicio Monitoring.
-
En la página de lista de reglas de detección de búsqueda programada, haga clic en el nombre de la búsqueda programada. En la página de detalles de búsqueda programada y haga clic en Ver en explorador de métricas para ver las métricas en el servicio Monitoring.
Permitir a los usuarios realizar todas las operaciones en tareas programadas
Para crear tareas programadas, primero configure los permisos adecuados mediante la creación de las siguientes políticas de IAM:
-
Cree un grupo dinámico para permitir que las tareas programadas publiquen métricas en el servicio de supervisión desde un compartimento específico:
ALL {resource.type='loganalyticsscheduledtask', resource.compartment.id='<compartment ocid>'}Como alternativa, para permitir que las métricas se publiquen desde todos los compartimentos:
ALL {resource.type='loganalyticsscheduledtask'} -
Cree políticas para permitir que el grupo dinámico realice operaciones de tarea programada en el arrendamiento:
allow group <group_name> to use loganalytics-scheduled-task in tenancy allow dynamic-group <dynamic_group_name> to use metrics in tenancy allow dynamic-group <dynamic_group_name> to read management-saved-search in tenancy allow dynamic-group <dynamic_group_name> to {LOG_ANALYTICS_QUERY_VIEW} in tenancy allow dynamic-group <dynamic_group_name> to {LOG_ANALYTICS_QUERYJOB_WORK_REQUEST_READ} in tenancy allow dynamic-group <dynamic_group_name> to READ loganalytics-log-group in tenancy allow dynamic-group <dynamic_group_name> to {LOG_ANALYTICS_LOOKUP_READ} in tenancy allow dynamic-group <dynamic_group_name> to read compartments in tenancy
-
Algunas de las sentencias de política anteriores se incluyen en las plantillas de política definidas por Oracle 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.
-
Para obtener información sobre los grupos dinámicos y las políticas de IAM, consulte Documentación de OCI: gestión de grupos dinámicos y Documentación de OCI: gestión de políticas.
-
Para obtener información sobre la política, consulte Creación de consultas de métricas - Requisitos en la documentación de Oracle Cloud Infrastructure.
-
Para conocer la referencia de la API de ScheduledTask, consulte Referencia de ScheduledTask en la documentación de la API de Oracle Cloud Infrastructure.
Visualización de todas las tareas programadas en un compartimento mediante la API
Para ver las tareas programadas para una búsqueda guardada específica, puede visitar la página de detalles de búsqueda guardada. Sin embargo, si desea mostrar todas las tareas programadas en un compartimento específico sin hacer referencia a las búsquedas guardadas para las que se hayan creado las tareas programadas, utilice la API para consultar la lista de tareas programadas. Consulte ListScheduledTasks.
Especifique los siguientes parámetros en el comando GET:
taskType=SAVED_SEARCHcompartmentId=<compartment_OCID>limit=1000sortOrder=DESCsortBy=timeUpdated
Para ejecutar el comando, necesitará:
- Espacio de nombre: espacio de nombre de Log Analytics que ha especificado al crear las tareas programadas.
- OCID de compartimento: OCID del compartimento que desea consultar para obtener la lista de tareas programadas creadas en él.
Supervise las tareas programadas de búsqueda guardada
Puede supervisar el estado de las tareas programadas de la búsqueda guardada mediante las métricas Estado de ejecución de tarea programada en el servicio Monitoring. En caso de ejecución fallida u omitida de una tarea debido a una anomalía de infraestructura o si se modifica un recurso o configuración dependiente, la métrica proporciona detalles del fallo para ayudarle a rectificarlo.
Para obtener más información sobre los pasos para acceder a la métrica Estado de ejecución de tarea programada, consulte Supervisión de Log Analytics mediante métricas de servicio.
Cada tarea programada de búsqueda guardada tiene su propio intervalo según lo especificado en su programa de tareas. Se emite una métrica a su arrendamiento para cada ejecución de tarea programada. Pase el cursor por los puntos de datos del gráfico para ver más detalles sobre la tarea. Puede filtrar los datos de métrica según una de las dimensiones Status, DisplayName o ResourceId.
- Abra el menú de navegación y haga clic en Observación y gestión. En Log Analytics, haga clic en Administración.
-
Los recursos de administración se muestran en el panel en Administración en la izquierda. Haga clic en Reglas de detección. En la página de lista de reglas de detección, haga clic en el nombre de la regla de detección de búsqueda guardada que desea abrir. Se abre la página de detalles de la regla de detección.
-
En los enlaces de la izquierda, haga clic en Métricas.

-
Haga clic en el menú Opciones de la esquina superior derecha de la métrica Estado de ejecución de tarea programada y seleccione Ver consulta en el explorador de métricas.

La métrica se muestra ahora en el explorador de métricas. Aquí, puede ver el gráfico con más detalle.

Deslice el botón Mostrar tabla de datos para ver los detalles de las métricas:

-
Haga clic en Editar consultas y seleccione Nombre de la dimensión y Valor de la dimensión para la métrica. Puede filtrar los datos de métrica según
taskResultcomo resultado de la ejecución de la tarea programada,Statusde la ejecución de la tarea,DisplayNamede la tarea,queryExecTimeRangeo suResourceId.Nota
Para ver gráficos y datos tabulares desde el explorador de métricas especificando un nombre de dimensión y un valor de dimensión, evite utilizar campos que tengan paréntesis u otros caracteres especiales en el nombre. Si el campo seleccionado para el nombre de dimensión tiene caracteres especiales, cree un campo virtual con el comando
evalo cambie el nombre del campo existente con el comandorenamepara eliminar los paréntesis o caracteres especiales. Por ejemplo, si el campo utilizado para el nombre de dimensión esHost Name (Server), puede crear un campo virtualhostnamecon| eval hostname=“Host Name (Server)”.La dimensión
queryExecTimeRangees útil para determinar el tiempo que se tarda en ejecutar la consulta de tarea programada. Los valores disponibles son< 5s,>= 5s and < 10s,>= 10s and < 30sy> 30s. Normalmente, las consultas que tardan más de 30 segundos en ejecutarse se consideran costosas en términos de tiempo de ejecución. Consulte Cómo hacer que las consultas sean eficaces.La dimensión
taskResultpuede tener los valoresSucceeded,FailedyPaused. La dimensiónStatusproporciona más detalles detaskResult. Por ejemplo, si el valor detaskResultesPaused, el valor deStatuspuede serPaused by User.Haga clic en Actualizar gráfico para refrescar la visualización del gráfico. El gráfico ahora mostrará solo los puntos de datos para los que haya aplicado el filtro.
Puede cambiar a la vista Tabla de datos para ver una representación tabular de los puntos de datos recopilados.
-
Cambie el nombre de la dimensión para ver diferentes perspectivas en el gráfico.
Puede configurar alertas para notificarle el estado a través de correo electrónico, SMS, Slack, PagerDuty, URL de punto final HTTPS o Función. Consulte Creación de alertas para eventos detectados.
A continuación se muestran los distintos valores de la dimensión status que se han notificado mediante esta métrica para valores taskResult específicos:
Valor taskResult
|
Valor Status
|
Descripción | Corrección recomendada |
|---|---|---|---|
|
|
|
La ejecución de la tarea es normal |
N/D |
|
|
La ejecución de la tarea programada se ha realizado correctamente, pero la contabilización de las métricas en el servicio de supervisión se ha truncado debido a los límites de datos de métricas. |
Asegúrese de que las métricas permanecen en los límites especificados. Consulte Referencia de comandos de la CLI de OCI: datos de métricas del servicio Monitoring. |
|
|
|
Cuando la ejecución de la tarea programada se realiza correctamente, pero la consulta no devuelve ningún resultado. Por lo tanto, no hay datos de métricas publicados en el servicio de supervisión. |
Compruebe la consulta de búsqueda guardada. Además, es posible que este estado no implique un error. Solo sugiere que no se ha producido el evento para el que se escribe la consulta. Por ejemplo, si la consulta va a contar el número de errores en los logs en los últimos 5 minutos y si los logs que llegaron en los últimos 5 minutos no tienen errores, se muestra |
|
|
|
Resultados parciales debido a consultas costosas que tardan más de dos minutos en completarse o a una anomalía en la infraestructura. |
Póngase en contacto con los Servicios de Soporte Oracle con la información de Estado. |
|
|
|
Resultados parciales debido a consultas costosas que tardan más de dos minutos en completarse o a una anomalía en la infraestructura. |
Póngase en contacto con los Servicios de Soporte Oracle con la información de Estado. |
|
|
|
|
La ejecución de la tarea ha fallado debido a una anomalía de infraestructura o a un fallo recuperable. |
Póngase en contacto con los Servicios de Soporte Oracle con la información de Estado. |
|
|
|
Los filtros de ámbito o cadena de consulta de búsqueda guardada no son válidos. |
Compruebe si la búsqueda guardada se editó después de crear la tarea programada y corríjala. |
|
|
La búsqueda guardada se suprime o la política de IAM que proporciona el permiso READ para la búsqueda guardada ha cambiado. |
Asegúrese de que se restaura la política de IAM. |
|
|
|
La consulta de búsqueda guardada no es válida para generar la métrica. |
Compruebe si la búsqueda guardada se editó después de crear la tarea programada y corríjala. |
|
|
|
Si la tarea programada es para depurar datos de log y se suprime el compartimento de depuración o si la política de IAM para la depuración ha cambiado después de crear la tarea programada, se muestra este estado. |
Compruebe si se suprime el compartimento de depuración y restaurarlo. Asegúrese de que se restaura la política de IAM. |
|
|
|
Cualquiera de los dos motivos siguientes puede disparar el estado:
|
Si los detalles de métrica están incompletos o no son válidos, actualice los detalles de métrica en la definición de tarea programada. Si la columna de métrica no es numérica o el valor de dimensión no es cardinal, actualice la búsqueda guardada para generar una métrica y una dimensión válidas. |
|
|
|
Cuando el valor de |
Identifique la acción de usuario que pausó la ejecución de la tarea programada y ejecute la tarea programada. |
Factores importantes para la creación de tareas programadas
Tome nota de los siguientes factores para crear tareas programadas:
-
Requisitos para componer consultas:
Al redactar consultas para crear tareas programadas, asegúrese de cumplir con los siguientes requisitos:
- Tenga en cuenta estas limitaciones para las consultas de reglas de detección:
-
No realice búsquedas con comodines en el campo Contenido de log original de la consulta de tarea programada. Para obtener más información sobre las búsquedas con comodines, consulte Uso de palabras clave, frases y comodines.
-
El comando
timestatsno puede ir seguido deeval,extract,jsonextract,xmlextractylookup. -
El comando
regexno se debe utilizar en campos grandes comoMessagepara evitar que las consultas sean costosas para su procesamiento.La comparación
likey los comandosextract,jsonextractyxmlextractno están soportados en campos grandes comoMessage.Los campos de enlace o los campos utilizados en la cláusula
BYno se pueden utilizar en campos grandes comoMessage. -
The commands which are not supported in the queries for scheduled tasks are
cluster,clustercompare,clusterdetails,clustersplit,compare,createview,delta,fieldsummary,highlightgroups,geostats,linkdetails,map,nlpandtimecompare.
-
- Límites máximos:
El número máximo de campos soportados para la cláusula
byes 3.El número máximo de campos admitidos para el comando
timestatses 3.El número máximo de funciones de agregación admitidas en una consulta de tarea programada es 1.
- Utilice los valores de los campos
linkcomo dimensiones para publicar métricas:Seleccione hasta tres campos de dimensión y una métrica numérica para publicar en el servicio de supervisión. Para indicar qué campos se deben publicar en la supervisión, las consultas deben terminar con:
... | link ... | fields -*, dim1, dim2, dim3, metric1El comando
linktiene varias columnas en la salida, como Hora de inicio, Hora de finalización, Recuento, etc., por defecto. Utilice-*en el comandofieldspara eliminar estos campos y especificar opcionalmente hasta tres campos de dimensión y un campo de métrica obligatorio.Puede tener varias sentencias
evaldespués del comandostatsy varias funcionesstatspara calcular los resultados intermedios. Sin embargo, la consulta debe terminar confields -*, dim1, dim2, dim3, metric1, que indica qué dimensiones y métricas se deben publicar. Utilice las siguientes directrices para consultas de reglas de detección:- Utilice hasta el comando 2
addfields. - Utilice hasta 3 funciones
stats. - Las sentencias
evalson necesarias para calcular los resultados intermedios y finales.
Ejemplos de consultas:
'Log Source' = 'OCI Email Delivery' | link 'Entity' | addfields [ * | where deliveryEventType = r and bounceType = hard | stats count as 'hard bounces' ], [ * | where deliveryEventType = e and length(ipPoolName) > 0 | stats count as 'total sent messages' ] | eval 'Total Rate' = ('hard bounces' / 'total sent messages') * 100 | fields -*, 'Entity', 'Total Rate''Log Source' = 'My Network Logs' | stats sum(Success) as TotalSuccess, sum(Failure) as TotalFailure | eval SuccessRate = (TotalSuccess / (TotalSuccess + TotalFailure)) * 100 | fields -*, SuccessRate - Utilice hasta el comando 2
- Tenga en cuenta estas limitaciones para las consultas de reglas de detección:
-
Larga de logs:
Si las tareas programadas se ejecutan antes de la llegada de los logs, es posible que las tareas programadas no devuelvan los resultados como se esperaba. Para evitar que falten estos logs en las tareas programadas debido a su llegada tardía, la consulta debe contabilizarla mediante un ajuste en el rango de tiempo.
Por ejemplo, si la tarea programada se ejecuta cada 5 minutos para comprobar el número de errores de autenticación y si hay un retraso de 3 minutos entre el tiempo en que se generan los logs y el tiempo en que llegan a Oracle Log Analytics, la tarea programada no detectará los logs. Tenga en cuenta que la tarea programada se ejecuta cada 5 minutos, por ejemplo, a las 01:00, 01:05, 01:10, etc. Si el registro de log L1 que se genera a las 01:04 alcanza Oracle Log Analytics a las 01:07. No se ha detectado L1 en la tarea programada que se ha ejecutado a las 1:05 porque el log no ha llegado a Oracle Log Analytics en este momento. Durante la siguiente ejecución a las 01:10, la consulta busca logs con registros de hora entre las 01:05 y las 01:10. También en este ciclo, no se detecta L1 porque tiene un registro de hora de 01:04. Es posible que la siguiente consulta no vea todos los registros de logs si los logs llegan tarde:
Label = 'Authentication Error' | stats count as logrecords by 'Log Source'Para determinar el retraso en la llegada de los logs a Oracle Log Analytics, calcule la diferencia entre el registro de hora mencionado en el registro de log y la hora de contabilización del procesador de logs. La siguiente consulta de ejemplo se puede utilizar para comprobar si hay un retraso:
Label = 'Authentication Error' and 'Log Processor Posting Time (OMC INT)' != null | fields 'Agent Collection Time (OMC INT)', 'Data Services Load Time', 'Process Time', 'Log Processor Posting Time (OMC INT)'La siguiente consulta utiliza la función
dateRelativepara ajustar el retraso de 3 minutos en una tarea que se ejecuta en un intervalo de 5 minutos:Label = 'Authentication Error' and Time between dateRelative(8minute, minute) and dateRelative(3minute, minute) | stats count as logrecords by 'Log Source' -
Otros factores:
-
Para saber cómo se crean las consultas en el servicio Monitoring, consulte Creación de consultas de métricas en la documentación de Oracle Cloud Infrastructure.
-
Observe los límites de la información para publicar los datos de métricas en el servicio Monitoring. Los límites corresponden a las métricas de una tarea programada. Consulte
PostMetricData APIen la documentación de Oracle Cloud Infrastructure.Cuando la búsqueda guardada puede generar más de 200 valores únicos por campo, los resultados parciales se contabilizan debido a los límites impuestos por el servicio Monitoring. En estos casos, para ver los resultados de top o bottom 200, utilice el comando sort.
-
Ejemplo de consultas para tareas programadas
Ejemplo de consultas para ver métricas
-
Considere un ejemplo en el que desee saber el número de errores de autenticación en una ejecución programada cada 5 minutos:
Label = 'Authentication Error' | stats count as 'Number of Authentication Errors'Cuando se selecciona la visualización de la tabla de resumen en el explorador de logs, se muestra la siguiente salida:

Siempre que la tarea programada ejecute una métrica como la anterior, se publicará lo mismo en el servicio Monitoring.
En el explorador de métricas, la métrica publicada anterior se puede ver de la siguiente manera:

Haga clic en Mostrar tabla de datos para ver la métrica en formato tabular:

-
Si desea conocer el desglose de errores de autenticación en cada host:
Label = 'Authentication Error' | stats count as 'Number of Authentication Errors' by 'Host IP Address (Client)'Utilice la visualización de resumen para obtener una vista previa del aspecto de una salida de métrica para la consulta.

En la página Metric Explorer, el mismo gráfico de métricas por IP de host tiene el siguiente aspecto:

Para ver el número por IP de host, especifique el nombre de dimensión de métrica como Host_IP_Address_Client y desactive la casilla de control Agregar flujos de métricas:

Cómo hacer que tus consultas sean eficaces
Algunas de las consultas generan tiempos de ejecución elevados o, en algunos casos, un timeout y, finalmente, provocan ejecuciones retrasadas de sus propias tareas. En tales casos, se recomienda crear campos ampliados (EFD) o etiquetas y utilizarlos en los filtros de las consultas programadas para que las consultas sean menos costosas.
Por ejemplo, si desea publicar el número de timeouts de conexión en los logs de alertas de la base de datos cada 5 minutos, la siguiente consulta es una de las formas de ejecutarla:
'Log Source' = 'Database Alert Logs' and 'TNS-12535' | stats count as 'Number of Timeouts'
La consulta anterior busca la cadena TNS-12535 en Contenido de log original. Sin embargo, esta no es la forma más eficaz de buscar los timeouts, especialmente cuando la tarea está programada para ejecutarse cada 5 minutos escaneando millones de registros.
En su lugar, utilice el campo en el que se extrae dicho ID de error y redacte la consulta como se muestra a continuación:
'Log Source' = 'Database Alert Logs' and 'Error ID' = 'TNS-12535' | stats count as 'Number of Timeouts'
También puede filtrar mediante la etiqueta:
'Log Source' = 'Database Alert Logs' and Label = Timeout | stats count as 'Number of Timeouts'
Los orígenes de log definidos por Oracle tienen muchos EFD y etiquetas definidos en ellos. Para los logs personalizados, se recomienda definir sus propias etiquetas y EFD y utilizarlas en las consultas programadas en lugar de buscar en Contenido de log original. Consulte Creación de una etiqueta y Uso de campos ampliados en orígenes.