Partilhar via


Azure Monitor e Prometheus

O Prometheus é uma solução popular de monitoramento e alerta de código aberto que é amplamente utilizada no ecossistema nativo da nuvem. As organizações usam o Prometheus para monitorar e alertar sobre o desempenho da infraestrutura e das cargas de trabalho. É frequentemente usado em ambientes Kubernetes.

Você pode usar o Prometheus como um serviço gerenciado pelo Azure ou como um serviço autogerenciado para coletar métricas. As métricas do Prometheus podem ser coletadas de seus clusters do Serviço Kubernetes do Azure (AKS), clusters do Kubernetes habilitados para Azure Arc, máquinas virtuais e conjuntos de dimensionamento de máquinas virtuais.

As métricas do Prometheus são armazenadas em um espaço de trabalho do Azure Monitor. Você pode analisar e visualizar os dados em um espaço de trabalho usando o explorador de métricas com Prometheus Query Language (PromQL) e Azure Managed Grafana.

Importante

O uso do Azure Monitor para gerenciar e hospedar o Prometheus destina-se a armazenar informações sobre a integridade do serviço de máquinas e aplicativos do cliente. Não se destina a armazenar quaisquer dados pessoais. É altamente recomendável que você não envie informações confidenciais (por exemplo, nomes de usuário e números de cartão de crédito) para campos Prometheus hospedados pelo Azure Monitor, como nomes de métricas, nomes de rótulos ou valores de rótulos.

serviço gerido para Prometheus do Azure Monitor

O serviço gerenciado do Azure Monitor para Prometheus é um componente do Azure Monitor Metrics que fornece um ambiente totalmente gerenciado e escalável para executar o Prometheus. Ele simplifica a implantação, o gerenciamento e o dimensionamento do Prometheus no AKS, para que você possa se concentrar no monitoramento de seus aplicativos e infraestrutura.

Como um serviço totalmente gerenciado, o serviço gerenciado do Azure Monitor para Prometheus implanta automaticamente o Prometheus no AKS ou no Kubernetes habilitado para Azure Arc. O serviço oferece alta disponibilidade, garantias de contrato de nível de serviço (SLA) e atualizações automáticas de software. Ele fornece um armazenamento de métricas altamente escalável que retém dados por até 18 meses.

O serviço gerenciado do Azure Monitor para Prometheus fornece alertas, regras e painéis pré-configurados. Com painéis recomendados da comunidade Prometheus e integração nativa do Grafana, você pode obter um monitoramento abrangente imediatamente. O serviço gerenciado do Azure Monitor para Prometheus integra-se ao Azure Managed Grafana e também funciona com o Grafana autogerenciado.

O preço é baseado na ingestão e consulta sem custo adicional de armazenamento. Para obter mais informações, consulte a guia Métricas em Preços do Azure Monitor.

Habilitar o serviço gerenciado do Azure Monitor para Prometheus

O serviço gerenciado do Azure Monitor para Prometheus coleta dados do AKS e do Kubernetes habilitado para Azure Arc.

Para habilitar o serviço gerenciado do Azure Monitor para Prometheus, você deve criar um espaço de trabalho do Azure Monitor para armazenar as métricas. Em seguida, você pode integrar serviços que coletam métricas do Prometheus:

Para habilitar o Prometheus gerenciado para nuvens air-gapped do Microsoft Azure, entre em contato com o suporte.

Prometheus autogerenciado hospedado no Azure

Além do serviço gerenciado para Prometheus, você pode instalar e gerenciar sua própria instância do Prometheus e usar a gravação remota para armazenar métricas em um espaço de trabalho do Azure Monitor.

Usando a gravação remota, você pode coletar dados de servidores Prometheus autogerenciados em execução nos seguintes ambientes:

  • Máquinas virtuais do Azure
  • Conjuntos de dimensionamento de máquinas virtuais do Azure
  • Servidores compatíveis com o Azure Arc
  • Clusters Kubernetes autogeridos hospedados pelo Azure ou habilitados para Azure Arc

Serviços Kubernetes autogerenciados

Envie métricas do Prometheus autogerenciado em clusters Kubernetes. Para obter mais informações sobre gravação remota em espaços de trabalho do Azure Monitor para serviços Kubernetes, consulte os seguintes artigos:

Máquinas virtuais e conjuntos de dimensionamento de máquinas virtuais

Envie dados do Prometheus autogerenciado em máquinas virtuais e conjuntos de dimensionamento de máquinas virtuais. As máquinas virtuais podem estar em um ambiente gerenciado pelo Azure ou no local. Para obter mais informações, consulte Enviar métricas do Prometheus de máquinas virtuais, conjuntos de escala ou clusters do Kubernetes para um espaço de trabalho do Azure Monitor.

Armazenamento de dados

As métricas do Prometheus são armazenadas em um espaço de trabalho do Azure Monitor. Os dados são armazenados em um banco de dados de séries cronológicas que pode ser consultado via PromQL. Você pode armazenar dados de várias fontes de dados do Prometheus em um único espaço de trabalho do Azure Monitor. Para obter mais informações, consulte Arquitetura de espaço de trabalho do Azure Monitor.

Os espaços de trabalho do Azure Monitor retêm dados por 18 meses.

Consultando e analisando métricas do Prometheus

Os dados do Prometheus são recuperados via PromQL. Você pode escrever suas próprias consultas, usar consultas da comunidade de código aberto e usar painéis do Grafana que incluem consultas PromQL. Para obter mais informações, consulte o Querying Prometheus no site da Prometheus.

Os seguintes serviços do Azure oferecem suporte à consulta de métricas do Prometheus a partir de um espaço de trabalho do Azure Monitor:

Azure Monitor metrics explorer com PromQL

Use o explorador de métricas com o PromQL (visualização) para analisar e visualizar as métricas da plataforma e do Prometheus. O explorador de métricas com PromQL está disponível no painel Métricas no espaço de trabalho do Azure Monitor onde suas métricas do Prometheus são armazenadas. Para obter mais informações, consulte Azure Monitor metrics explorer with PromQL.

Captura de ecrã de uma consulta PromQL no explorador de métricas do Azure Monitor.

Pastas de trabalho do Azure

Crie gráficos e painéis com tecnologia do serviço gerenciado do Azure Monitor para Prometheus usando pastas de trabalho do Azure e consultas PromQL. Para obter mais informações, consulte Consultar métricas do Prometheus usando pastas de trabalho do Azure.

Integração com Grafana

Visualize métricas do Prometheus usando o Azure Managed Grafana. Conecte seu espaço de trabalho do Azure Monitor a um espaço de trabalho do Grafana para que você possa usá-lo como uma fonte de dados em um painel do Grafana. Em seguida, você tem acesso a vários painéis pré-construídos que usam métricas Prometheus. Você também tem a capacidade de criar qualquer número de painéis personalizados. Para obter mais informações, consulte Vincular um espaço de trabalho do Grafana.

API de consulta Prometheus

Use o PromQL por meio da API REST para consultar métricas do Prometheus armazenadas em um espaço de trabalho do Azure Monitor. Para obter mais informações, consulte Consultar métricas do Prometheus usando a API e o PromQL.

Regras e alertas

O Prometheus suporta regras de gravação e regras de alerta usando consultas PromQL. O serviço gerenciado do Azure Monitor para Prometheus implanta automaticamente regras e alertas. As métricas que as regras de gravação registram são armazenadas no espaço de trabalho do Azure Monitor. Painéis ou outras regras podem consultar as métricas.

Você pode criar e gerenciar regras de alerta e regras de registro usando o serviço gerenciado do Azure Monitor para grupos de regras do Prometheus. Para o seu cluster AKS, um conjunto de regras de alerta e regras de gravação do Prometheus predefinidas ajuda-o a começar rapidamente.

Os alertas acionados por regras de alerta podem disparar ações ou notificações, conforme definido nos grupos de ações configurados para a regra de alerta. Você também pode exibir alertas Prometheus disparados e resolvidos no portal do Azure, juntamente com outros tipos de alerta.

Limites e quotas de serviço

O serviço gerenciado do Azure Monitor para Prometheus tem limites padrão e cotas para ingestão. Quando atingir os limites de ingestão, pode ocorrer limitação. Pode solicitar um aumento destes limites. Para obter mais informações, consulte Limites de serviço do Azure Monitor.

Para monitorar e alertar sobre suas métricas de ingestão, consulte Monitorar a ingestão de métricas do espaço de trabalho do Azure Monitor.

Limitações

As limitações a seguir se aplicam ao serviço gerenciado do Azure Monitor para Prometheus:

  • A frequência mínima para raspar e armazenar métricas é de 1 segundo.
  • Durante as atualizações do nó, você pode enfrentar lacunas que duram de 1 a 2 minutos em algumas coleções de métricas do coletor no nível de cluster. Essa lacuna se deve a uma ação regular do Serviço Kubernetes do Azure para atualizar os nós em seu cluster. Esse comportamento não afeta as regras de alerta recomendadas.
  • O Prometheus gerenciado para nós do Windows não está habilitado automaticamente. Para habilitar o monitoramento de nós e pods do Windows em seus clusters, consulte Habilitar a coleta de métricas do Windows (visualização).

Sensível às maiúsculas e minúsculas

O serviço gerenciado do Azure Monitor para Prometheus é um sistema que não diferencia maiúsculas de minúsculas. Ele trata cadeias de caracteres (como nomes de métricas, nomes de rótulos ou valores de rótulo) como a mesma série temporal se elas diferirem de outra série temporal apenas pelo caso da cadeia de caracteres.

Nota

Esse comportamento é diferente do Prometheus nativo de código aberto, que é um sistema sensível a maiúsculas e minúsculas. As instâncias autogerenciadas do Prometheus em execução em máquinas virtuais do Azure, conjuntos de dimensionamento de máquinas virtuais ou clusters do Serviço Kubernetes do Azure são sistemas que diferenciam maiúsculas de minúsculas.

No serviço gerenciado para Prometheus, as seguintes séries temporais são consideradas as mesmas:

diskSize(cluster="eastus", node="node1", filesystem="usr_mnt")
diskSize(cluster="eastus", node="node1", filesystem="usr_MNT")

Os exemplos anteriores são uma única série temporal numa base de dados de séries temporais. As seguintes considerações são aplicáveis:

  • Todas as amostras ingeridas contra eles são armazenadas como se fossem raspadas ou ingeridas contra uma única série temporal.
  • Se os exemplos anteriores forem ingeridos com o mesmo carimbo de data/hora, um deles será descartado aleatoriamente.
  • O invólucro armazenado no banco de dados de séries temporais e retornado por uma consulta é imprevisível. A mesma série temporal pode retornar invólucros diferentes em momentos diferentes.
  • Qualquer nome de métrica ou correspondente de nome/valor de rótulo presente na consulta é recuperado do banco de dados de séries temporais por meio de uma comparação que não diferencia maiúsculas de minúsculas. Se houver um correspondente que diferencia maiúsculas de minúsculas em uma consulta, ele será automaticamente tratado como um correspondente que não diferencia maiúsculas de minúsculas em comparações de cadeia de caracteres.

É uma prática recomendada usar um único caso consistente para produzir ou raspar uma série temporal.

O Prometheus de código aberto trata os exemplos anteriores como duas séries temporais diferentes. Todas as amostras raspadas ou ingeridas contra eles são armazenadas separadamente.

Referências de Prometeu

Seguem-se ligações para a documentação do Prometheus: