Criar uma Programação para Executar Automaticamente uma Consulta de Pesquisa Salva
Depois de criar uma pesquisa salva, você poderá programar a execução da consulta na pesquisa salva periodicamente e rotear o resultado da execução da consulta para o serviço Monitoring.
Mais Tópicos para Tarefas Programadas:
-
Permitir que os Usuários Executem Todas as Operações em Tarefas Programadas
-
Exibir Todas as Tarefas Programadas em um Compartimento Usando a API
As etapas a seguir são demonstradas com o serviço Monitoring como destino para monitorar a tarefa programada. As métricas emitidas pelo Oracle Log Analytics são armazenadas pelo serviço Monitoring.
-
Abra o menu de navegação e clique em Observabilidade e Gerenciamento. Em Log Analytics, clique em Administração.
Os recursos administrativos são listados no painel esquerdo de navegação em Administração. Clique em Regras de detecção.
A página Regras de detecção é aberta. Clique em Criar regra.
A caixa de diálogo Criar Regra de Detecção é aberta.
-
Clique em Regra de detecção de pesquisa programada.
-
Especifique um Nome da regra para a tarefa programada.
-
Em Selecionar uma pesquisa salva:
Especifique a pesquisa salva para a qual deseja criar uma programação. Primeiro, selecione o compartimento no qual a pesquisa salva é salva.
Em seguida, no menu, selecione a Pesquisa Salva.
Isso exibe os detalhes da pesquisa salva, como a consulta e sua descrição.
-
Em Frequência de configuração:
Especifique Intervalo, a janela de agregação. Você pode otimizar a programação a ser executada nos Minutos, Horas, Dias ou Semanas selecionados. Além disso, ao selecionar agregações maiores, por exemplo, Dias, você pode especificar a agregação mais fina dentro do intervalo, por exemplo, o horário do dia em que a consulta deve ser executada.
Você pode especificar a Frequência da execução da consulta, como
Run indefinitely,Run onceouCustom.Você também pode incluir Contagem de Repetições na especificação de frequência para o número de vezes que a consulta deve ser executada.
-
Em Selecionar um serviço de destino a ser configurado:
-
Selecione o Serviço de Destino no qual os resultados da execução da consulta são postados, por exemplo,
Monitoring.O serviço Monitoring armazena as métricas do resultado da execução da consulta em uma programação.
-
Selecione Compartimento de Métricas, aquele no qual a métrica será criada. Por padrão, um compartimento é selecionado pelo Oracle Log Analytics.
-
Selecione Namespace de Métricas, aquele no qual você deseja colocar a nova métrica. O escopo das opções disponíveis para selecionar o namespace é definido pela seleção do Compartimento de Métricas na etapa anterior. Se as opções não estiverem disponíveis, você também poderá digitar um novo valor para o namespace.
Observação
Ao especificar um novo valor para o namespace, selecione um nome que não comece comoracle_eoci_. São prefixos reservados. Consulte Publicando Métricas Personalizadas. -
Se preferir, selecione Grupo de Recursos, aquele ao qual a métrica pertence. Grupo de recursos é uma string personalizada fornecida com uma métrica personalizada.
-
Digite o Nome da Métrica, aquele usado no explorador do serviço Monitoring para exibir as métricas. Apenas uma métrica poderá ser especificada.
Para facilitar a identificação no explorador de métricas, é recomendável incluir o nome da pesquisa salva no nome da métrica, por exemplo, <mysavedsearchname><metric_name>.
-
-
Opcionalmente, expanda a seção Mostrar Opções Avançadas e adicione tags à sua regra de detecção.
-
Se as políticas de IAM necessárias ainda não estiverem definidas, uma notificação será exibida listando as políticas para:
- Criar um grupo dinâmico
- Aplicar as políticas ao grupo dinâmico para permitir que as tarefas programadas sejam executadas
Anote as políticas listadas e crie-as.
-
Clique em Criar Regra de Detecção.
A consulta agora está programada para ser executada em um intervalo regular e as métricas resultantes são emitidas para o serviço Monitoring.
-
Na página de listagem de regras de detecção de pesquisa Programada, clique no nome da pesquisa programada. Na página de detalhes da pesquisa programada e clique em View in Metric Explorer para exibir as métricas no serviço Monitoring.
Permitir que os Usuários Executem Todas as Operações em Tarefas Programadas
Para criar Tarefas Programadas, primeiro configure as permissões corretas criando as seguintes políticas do IAM:
-
Crie um grupo dinâmico para permitir que Tarefas Programadas publiquem métricas no serviço de monitoramento de um compartimento específico:
ALL {resource.type='loganalyticsscheduledtask', resource.compartment.id='<compartment ocid>'}Como alternativa, para permitir que métricas sejam postadas em todos os compartimentos:
ALL {resource.type='loganalyticsscheduledtask'} -
Crie políticas para permitir que o grupo dinâmico execute operações de Tarefa Programada na tenancy:
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 tenancyVerifique se o grupo de usuários tem permissão de leitura/uso para o recurso de agregação management-dashboard-family na tenancy. Caso contrário, inclua a seguinte instrução de política na política criada:
allow group <group_name> to {MANAGEMENT_SAVED_SEARCH_READ} in tenancy
-
Algumas das instruções de política acima estão incluídas nos modelos de política definidos pela Oracle prontamente disponíveis. Talvez você queira considerar o uso do modelo para seu caso de uso. Consulte Modelos de Política definidos pela Oracle para Casos de Uso Comuns.
-
Para obter informações sobre grupos dinâmicos e políticas do IAM, consulte Documentação do OCI: Gerenciando Grupos Dinâmicos e Documentação do OCI: Gerenciando Políticas.
-
Para obter os detalhes da política, consulte Criando Consultas de Métricas - Pré-requisitos na Documentação do Oracle Cloud Infrastructure.
-
Para obter a referência da API de Tarefas Programadas, consulte Referência de Tarefa Programada na Documentação da API do Oracle Cloud Infrastructure.
Exibir Todas as Tarefas Programadas em um Compartimento Usando a API
Para exibir as tarefas programadas de uma pesquisa salva específica, você pode visitar a página de detalhes da pesquisa salva. No entanto, se você quiser listar todas as tarefas programadas em um compartimento específico sem fazer referência às pesquisas salvas para as quais as tarefas programadas foram criadas, use a API para consultar a listagem das tarefas programadas. Consulte ListScheduledTasks.
Especifique os seguintes parâmetros no comando GET:
taskType=SAVED_SEARCHcompartmentId=<compartment_OCID>limit=1000sortOrder=DESCsortBy=timeUpdated
Para executar o comando, você precisará:
- Namespace: O namespace do Log Analytics que você especificou ao criar as tarefas programadas.
- OCID do Compartimento: O OCID do compartimento que você deseja consultar para obter a lista de tarefas programadas criadas nele.
Monitore suas Tarefas Programadas de Pesquisa Salva
Você pode monitorar a integridade das tarefas programadas da sua pesquisa salva por meio das métricas Status de Execução de Tarefa Programada no serviço Monitoring. No caso de uma execução com falha ou ignorada de uma tarefa devido a uma anomalia de infraestrutura ou se um recurso ou configuração dependente for modificado, a métrica fornecerá detalhes da falha para ajudá-lo a retificá-la.
Para obter as etapas para acessar a métrica Status de Execução da Tarefa Programada, consulte Monitorar o Log Analytics Usando Métricas de Serviço.
Cada tarefa agendada de busca salva tem seu próprio intervalo, conforme especificado em sua programação de tarefa. Uma métrica é emitida para sua tenancy para cada execução de tarefa programada. Passe o cursor sobre os pontos de dados no gráfico para exibir mais detalhes sobre a tarefa. Você pode filtrar os dados da métrica com base em uma das dimensões Status, DisplayName ou ResourceId.
- Abra o menu de navegação e clique em Observabilidade e Gerenciamento. Em Log Analytics, clique em Administração.
-
Os recursos administrativos são listados no painel esquerdo de navegação em Administração. Clique em Regras de Detecção. Na página de listagem de regras de Detecção, clique no nome da regra de detecção de pesquisa salva que você deseja abrir. A página de detalhes da regra de detecção é aberta.
-
Clique em Métricas. A guia Métricas é aberta.
-
Clique no menu Opções no canto superior direito da métrica Status de Execução de Tarefa Programada e selecione Exibir no Explorador de Métrica.
A métrica agora é exibida no Explorador de Métricas. Aqui, você pode exibir o gráfico com mais detalhes.

Deslize o botão Mostrar Tabela de Dados para exibir os detalhes das métricas:

-
Clique em Editar Consultas e selecione Nome da Dimensão e Valor da Dimensão para a métrica. Você pode filtrar os dados da métrica com base em
taskResult, o resultado da execução da tarefa programada,Statusda execução da tarefa,DisplayNameda tarefa,queryExecTimeRangeou seuResourceId.Observação
Para exibir gráficos e dados tabulares do Explorador de Métricas especificando um nome de dimensão e um valor de dimensão, evite usar campos que tenham parênteses ou outros caracteres especiais no nome. Se o campo selecionado para o Nome da Dimensão tiver caracteres especiais, crie um campo virtual usando o comando
evalou renomeie o campo existente usando o comandorenamepara que os parênteses ou caracteres especiais sejam removidos. Por exemplo, se o campo usado para o Nome da Dimensão forHost Name (Server), você poderá criar um campo virtualhostnamecom| eval hostname=“Host Name (Server)”.A dimensão
queryExecTimeRangeé útil para determinar o tempo necessário para executar a consulta de tarefa programada. Os valores disponíveis são< 5s,>= 5s and < 10s,>= 10s and < 30se> 30s. Normalmente, as consultas que levam mais de 30 segundos para serem executadas são consideradas caras em termos de tempo de execução. Consulte Como Tornar Suas Consultas Executivas.A dimensão
taskResultpode ter os valoresSucceeded,FailedePaused. A dimensãoStatusfornece mais detalhes detaskResult. Por exemplo, se o valor detaskResultforPaused, o valor deStatuspoderá serPaused by User.Clique em Atualizar Gráfico para atualizar a visualização do gráfico. O gráfico agora exibirá apenas os pontos de dados para os quais você aplicou o filtro.
Você pode alternar para a exibição Tabela de Dados para obter uma representação tabular dos pontos dos dados coletados.
-
Altere o nome da dimensão para exibir diferentes perspectivas no gráfico.
Você pode configurar alertas para notificá-lo sobre o status por e-mail, SMS, Slack, PagerDuty, URL de ponto final HTTPS ou Função. Consulte Criar Alertas para Eventos Detectados.
A seguir estão os vários valores da dimensão status reportados por meio dessa métrica para valores taskResult específicos:
Valor taskResult
|
Valor Status
|
Descrição | Correção Recomendada |
|---|---|---|---|
|
|
|
A execução da tarefa é normal |
Não Aplicável |
|
|
A execução da tarefa programada foi bem-sucedida, mas a publicação das métricas no serviço de monitoramento foi truncada devido aos limites de dados da métrica. |
Certifique-se de que as métricas permaneçam nos limites especificados. Consulte Referência de Comando da CLI do OCI - Dados de Métrica de Serviço de Monitoramento. |
|
|
|
Quando a execução da tarefa programada é bem-sucedida, mas a consulta não retornou resultados. Portanto, não há dados de métrica publicados no serviço de monitoramento. |
Verifique sua consulta de pesquisa salva. Além disso, este status pode não implicar um erro. Ela só sugere que o evento para o qual a consulta foi gravada não ocorreu. Por exemplo, se a consulta for contar o número de Erros nos logs nos últimos 5 minutos e se os logs que chegaram nos últimos 5 minutos não tiverem erros, |
|
|
|
Resultados parciais devido a consultas caras que levam mais de dois minutos para serem concluídas ou devido a uma anomalia de infraestrutura. |
Entre em contato com o Suporte Técnico da Oracle com as informações de Status. |
|
|
|
Resultados parciais devido a consultas caras que levam mais de dois minutos para serem concluídas ou devido a uma anomalia de infraestrutura. |
Entre em contato com o Suporte Técnico da Oracle com as informações de Status. |
|
|
|
|
Falha na execução da tarefa em decorrência de anomalia de infraestrutura ou falha recuperável. |
Entre em contato com o Suporte Técnico da Oracle com as informações de Status. |
|
|
|
A string de consulta de pesquisa salva ou os filtros de escopo não são válidos. |
Verifique se a busca salva foi editada após a criação da tarefa agendada e corrija-a. |
|
|
A pesquisa salva foi excluída ou a política do IAM que fornece permissão READ para a pesquisa salva foi alterada. |
Certifique-se de que a política do IAM seja restaurada. |
|
|
|
A consulta de pesquisa salva não é válida para gerar a métrica. |
Verifique se a busca salva foi editada após a criação da tarefa agendada e corrija-a. |
|
|
|
Se a tarefa programada for para expurgar dados de log e o compartimento de expurgação for excluído ou se a política de IAM para expurgação tiver sido alterada após a criação da tarefa programada, esse status será exibido. |
Verifique se o compartimento de expurgação foi excluído e restaure-o. Certifique-se de que a política do IAM seja restaurada. |
|
|
|
Qualquer um dos dois motivos a seguir pode acionar o status:
|
Se os detalhes da métrica estiverem incompletos ou inválidos, atualize os detalhes da métrica na definição da tarefa programada. Se a coluna de métrica não for numérica ou o valor da dimensão não for cardinal, atualize a pesquisa salva para produzir métrica e dimensão válidas. |
|
|
|
Quando o valor de |
Identifique a ação do usuário que pausou a execução da tarefa programada e execute a tarefa programada. |
Fatores Importantes para Criar Tarefas Programadas
Anote os seguintes fatores para criar tarefas agendadas:
-
Requisitos para Compilar Consultas:
Ao criar consultas para criar Tarefas Programadas, certifique-se de cumprir os seguintes requisitos:
- Observe estas limitações para consultas de regra de detecção:
-
Evite executar pesquisa com curingas no campo Conteúdo do Log Original na consulta de tarefa programada. Para obter mais informações sobre pesquisas com curingas, consulte Usar Palavras-chave, Frases e Curingas.
-
O comando
timestatsnão pode ser seguido pelos comandoseval,extract,jsonextract,xmlextractelookup. -
O comando
regexnão deve ser usado em campos grandes comoMessagepara evitar que as consultas sejam caras para processamento.A comparação de
likee os comandosextract,jsonextractexmlextractnão são suportados em campos grandes comoMessage.Campos de link ou campos usados na cláusula
BYnão podem ser usados em 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.
-
- Limites máximos:
O número máximo de campos suportados para a cláusula
byé 3.O número máximo de campos suportados para o comando
timestatsé 3.O número máximo de funções de agregação suportadas em uma consulta de tarefa programada é 1.
- Usar os valores dos campos
linkcomo dimensões para postar métricas:Selecione até três campos de dimensão e uma métrica numérica para postar no serviço de monitoramento. Para indicar quais campos devem ser lançados no monitoramento, as consultas devem terminar com:
... | link ... | fields -*, dim1, dim2, dim3, metric1O comando
linktem várias colunas na saída, como Hora Inicial, Hora Final, Contagem etc., por padrão. Use-*no comandofieldspara remover esses campos e especificar opcionalmente até três campos de dimensão e um campo de métrica obrigatório.Você pode ter várias instruções
evalapós o comandostatse várias funçõesstatspara calcular resultados intermediários. No entanto, a consulta deve terminar comfields -*, dim1, dim2, dim3, metric1indicando quais dimensões e métricas devem ser postadas. Use as seguintes diretrizes para consultas de regras de detecção:- Use até o comando 2
addfields. - Use até 3 funções
stats. - As instruções
evalsão necessárias para calcular resultados intermediários e finais.
Exemplos 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 - Use até o comando 2
- Observe estas limitações para consultas de regra de detecção:
-
Chegada Atrasada de Logs:
Se as tarefas programadas forem executadas antes da chegada dos logs, as tarefas programadas poderão não retornar os resultados conforme esperado. Para evitar a falta desses logs nas tarefas programadas devido à sua chegada tardia, a consulta deve contabilizá-la usando um ajuste no intervalo de tempo.
Por exemplo, se a tarefa programada for executada a cada 5 minutos para verificar o número de erros de autenticação e se houver um atraso de 3 minutos entre o horário em que os logs são gerados e o horário em que eles chegam ao Oracle Log Analytics, a tarefa programada não detectará os logs. Considere que a tarefa agendada é executada a cada 5 minutos, por exemplo, 01:00, 01:05, 01:10, e assim por diante. Se o registro de log L1 que é gerado às 01:04 atingir o Oracle Log Analytics às 01:07. L1 não foi detectado na tarefa programada que foi executada às 1:05 porque o log não chegou ao Oracle Log Analytics no momento. Durante a próxima execução às 01:10, a consulta procura logs com timestamps entre 01:05 e 01:10. Neste ciclo também, L1 não é detectado porque tem um timestamp de 01:04. A consulta a seguir pode não ver todos os registros de logs se os logs chegarem atrasados:
Label = 'Authentication Error' | stats count as logrecords by 'Log Source'Para determinar o atraso na chegada dos logs no Oracle Log Analytics, calcule a diferença entre o timestamp mencionado no registro de log e o Tempo de Publicação do Processador de Log. O exemplo de consulta a seguir pode ser usado para verificar se há um atraso:
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)'A consulta a seguir usa a função
dateRelativepara ajustar o atraso de 3 minutos em uma tarefa executada em um intervalo de 5 minutos:Label = 'Authentication Error' and Time between dateRelative(8minute, minute) and dateRelative(3minute, minute) | stats count as logrecords by 'Log Source' -
Outros Fatores:
-
Para entender como as consultas são criadas no serviço Monitoring, consulte Criando Consultas de Métricas na Documentação do Oracle Cloud Infrastructure.
-
Observe as informações de limites para publicar os dados de métricas no serviço Monitoring. Os limites correspondem às métricas de uma tarefa programada. Consulte
PostMetricData APIna Documentação do Oracle Cloud Infrastructure.Quando a sua busca salva pode gerar mais de 200 valores exclusivos por campo, resultados parciais são publicados devido aos limites impostos pelo serviço Monitoring. Em tais casos, para visualizar os resultados top ou bottom 200, use o comando sort.
-
Consultas de Exemplo para Tarefas Programadas
Exemplos de Consultas para Exibição de Métricas
-
Considere um exemplo em que você deseja saber o número de erros de autenticação em uma execução programada a cada 5 minutos:
Label = 'Authentication Error' | stats count as 'Number of Authentication Errors'Quando a visualização Tabela de Resumo é selecionada no Log Explorer, a seguinte saída é exibida:

Sempre que a tarefa programada executar uma métrica como a acima, a mesma será postada no serviço Monitoring.
No Explorador de Métricas, a métrica postada acima pode ser exibida da seguinte forma:

Clique em Mostrar Tabela de Dados para exibir a métrica no formato tabular:

-
Se você quiser saber a divisão de erros de autenticação em cada Host:
Label = 'Authentication Error' | stats count as 'Number of Authentication Errors' by 'Host IP Address (Client)'Use a Visualização de Resumo para visualizar a aparência de uma saída de métrica para sua consulta.

Na página Metric Explorer, o mesmo gráfico de métrica por IP de Host tem esta aparência:

Para exibir o número por IP de Host, especifique o nome da Dimensão de Métrica como Host_IP_Address_Client e desmarque a caixa de seleção Agregar Streams de Métricas:

Como Tornar Suas Consultas Executivas
Algumas das consultas levam a altos tempos de execução ou, em alguns casos, tempo limite e, eventualmente, levam a execuções atrasadas de suas próprias tarefas. Nesses casos, é recomendável criar campos estendidos (EFD) ou rótulos e usá-los nos filtros em suas consultas agendadas para tornar as consultas mais baratas.
Por exemplo, se você quiser publicar o número de timeouts de conexão nos logs de alerta do banco de dados a cada 5 minutos, a seguinte consulta será uma das maneiras de executá-la:
'Log Source' = 'Database Alert Logs' and 'TNS-12535' | stats count as 'Number of Timeouts'
A consulta acima procura a string TNS-12535 em Conteúdo do Log Original. No entanto, essa não é a maneira mais eficiente de procurar os timeouts, especialmente quando a tarefa está programada para ser executada a cada 5 minutos, examinando milhões de registros.
Em vez disso, use o campo para o qual esse ID de erro é extraído e componha a consulta conforme mostrado abaixo:
'Log Source' = 'Database Alert Logs' and 'Error ID' = 'TNS-12535' | stats count as 'Number of Timeouts'
Como alternativa, você pode filtrar usando o rótulo:
'Log Source' = 'Database Alert Logs' and Label = Timeout | stats count as 'Number of Timeouts'
As origens de log definidas pela Oracle têm muitos EFDs e Labels definidos nelas. Para logs personalizados, é recomendável definir seus próprios labels e EFDs e usá-los nas consultas programadas em vez de pesquisar no Conteúdo do Log Original. Consulte Criar um Label e Usar Campos Estendidos em Origens.