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:

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.

  1. 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.

  2. Clique em Regra de detecção de pesquisa programada.

  3. Especifique um Nome da regra para a tarefa programada.

  4. 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.

  5. 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 once ou Custom.

    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.

  6. Em Selecionar um serviço de destino a ser configurado:

    1. 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.

    2. Selecione Compartimento de Métricas, aquele no qual a métrica será criada. Por padrão, um compartimento é selecionado pelo Oracle Log Analytics.

    3. 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 com oracle_ e oci_. São prefixos reservados. Consulte Publicando Métricas Personalizadas.
    4. 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.

    5. 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>.

  7. Opcionalmente, expanda a seção Mostrar Opções Avançadas e adicione tags à sua regra de detecção.

  8. 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.

  9. 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.

  10. 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:

  1. 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'}
  2. 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 tenancy

    Verifique 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

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_SEARCH
  • compartmentId=<compartment_OCID>
  • limit=1000
  • sortOrder=DESC
  • sortBy=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.

  1. Abra o menu de navegação e clique em Observabilidade e Gerenciamento. Em Log Analytics, clique em Administração.
  2. 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.

  3. Clique em Métricas. A guia Métricas é aberta.

  4. 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.


    Métricas exibidas no explorador de métricas

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


    Métricas de status em formato tabular

  5. 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, Status da execução da tarefa, DisplayName da tarefa, queryExecTimeRange ou seu ResourceId.

    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 eval ou renomeie o campo existente usando o comando rename para que os parênteses ou caracteres especiais sejam removidos. Por exemplo, se o campo usado para o Nome da Dimensão for Host Name (Server), você poderá criar um campo virtual hostname com | 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 < 30s e > 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 taskResult pode ter os valores Succeeded, Failed e Paused. A dimensão Status fornece mais detalhes de taskResult. Por exemplo, se o valor de taskResult for Paused, o valor de Status poderá ser Paused 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.

  6. 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

Succeeded

Succeeded

A execução da tarefa é normal

Não Aplicável

SucceededPostingDataTruncated

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.

SucceededNoDataFound

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, SucceededNoDataFound será exibido.

SucceededPartialResults

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.

PartialResultsNoDataFound

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.

Failed

Skipped

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.

Paused

InvalidManagementSavedSearch

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.

NotAuthorizedOrNotFoundManagementSavedSearch

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.

InvalidQuery

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.

NotAuthorizedOrNotFoundPurgeResource

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.

MetricExtractionNotValid

Qualquer um dos dois motivos a seguir pode acionar o status:

  • Os detalhes da métrica especificados para a tarefa programada estão incompletos ou são inválidos.
  • O conjunto de resultados da métrica é inválido, ou seja, a coluna da métrica não é numérica ou o valor da dimensão não é cardinal.

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.

PausedByUser

Quando o valor de taskResult é Paused, esse valor do Status não é uma indicação da execução da tarefa programada. É uma indicação da ação do usuário por meio do console ou da API, que pausou a tarefa programada.

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 timestats não pode ser seguido pelos comandos eval, extract, jsonextract, xmlextract e lookup.

      • O comando regex não deve ser usado em campos grandes como Message para evitar que as consultas sejam caras para processamento.

        A comparação de like e os comandos extract, jsonextract e xmlextract não são suportados em campos grandes como Message.

        Campos de link ou campos usados na cláusula BY não podem ser usados em campos grandes como Message.

      • 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, nlp and timecompare.

    • 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 link como 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, metric1

      O comando link tem várias colunas na saída, como Hora Inicial, Hora Final, Contagem etc., por padrão. Use -* no comando fields para 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 eval após o comando stats e várias funções stats para calcular resultados intermediários. No entanto, a consulta deve terminar com fields -*, dim1, dim2, dim3, metric1 indicando 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 eval sã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
  • 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 dateRelative para 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 API na 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:


    Saída do Log Explorer para a consulta

    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:


    Saída de métrica para a tarefa programada

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


    Formato tabular da saída da métrica para a tarefa programada

  • 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.


    Saída da consulta na visualização resumida

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


    Saída da métrica pelo IP do Host

    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:


    Caixa de diálogo para selecionar o nome da dimensão da métrica

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.