O Operador Prometheus fornece implantação nativa do Kubernetes e gerenciamento do Prometheus e componentes de monitoramento relacionados. O objetivo deste projeto é simplificar e automatizar a configuração de uma pilha de monitoramento baseada em Prometheus para clusters Kubernetes.
O operador Prometheus inclui, mas não está limitado aos seguintes recursos:
Recursos personalizados do Kubernetes : use recursos personalizados do Kubernetes para implantar e gerenciar Prometheus, Alertmanager e componentes relacionados.
Configuração de implantação simplificada : configure os fundamentos do Prometheus, como versões, persistência, políticas de retenção e réplicas de um recurso nativo do Kubernetes.
Configuração de destino do Prometheus : gera automaticamente configurações de destino de monitoramento com base em consultas de rótulos familiares do Kubernetes; não há necessidade de aprender uma linguagem de configuração específica do Prometheus.
Para obter uma introdução ao Operador Prometheus, consulte o guia de primeiros passos.
O próprio operador é considerado pronto para produção. Consulte as versões da Definição de Recursos Personalizados (CRD) para saber o status de cada CRD:
monitoring.coreos.com/v1
: CRDs e API estáveis , as alterações são feitas de maneira compatível com versões anteriores.
monitoring.coreos.com/v1beta1
: CRDs e API instáveis , mudanças podem acontecer, mas a equipe está focada em evitá-las. Incentivamos o uso em produção para usuários que aceitam o risco de alterações significativas.
monitoring.coreos.com/v1alpha1
: CRDs e APIs instáveis , mudanças podem acontecer com frequência e sugerimos evitar seu uso em ambientes de missão crítica.
O Operador Prometheus usa recursos personalizados do Kubernetes para simplificar a implantação e configuração do Prometheus, Alertmanager e componentes de monitoramento relacionados.
kube-prometheus fornece exemplos de configurações para uma pilha completa de monitoramento de cluster baseada no Prometheus e no Operador Prometheus. Isso inclui a implantação de várias instâncias do Prometheus e do Alertmanager, exportadores de métricas, como o node_exporter para coletar métricas do nó, configuração de destino de raspagem vinculando o Prometheus a vários endpoints de métricas e exemplos de regras de alerta para notificação de possíveis problemas no cluster.
O gráfico Helm prometheus-community/kube-prometheus-stack fornece um conjunto de recursos semelhante ao kube-prometheus. Este gráfico é mantido pela comunidade Prometheus. Para obter mais informações, consulte o leia-me do gráfico
O Operador Prometheus requer pelo menos a versão 1.16.0
do Kubernetes. Se você está apenas começando com o Operador Prometheus, é altamente recomendável usar a versão estável mais recente.
Um recurso principal do Operador Prometheus é monitorar o servidor API Kubernetes em busca de alterações em objetos específicos e garantir que as implantações atuais do Prometheus correspondam a esses objetos. O Operador atua nas seguintes Definições de Recursos Personalizados (CRDs):
Prometheus
, que define uma implantação desejada do Prometheus.
PrometheusAgent
, que define uma implantação desejada do Prometheus, mas em execução no modo Agente.
Alertmanager
, que define uma implantação desejada do Alertmanager.
ThanosRuler
, que define uma implantação desejada do Thanos Ruler.
ServiceMonitor
, que especifica declarativamente como grupos de serviços Kubernetes devem ser monitorados. O Operador gera automaticamente a configuração de raspagem do Prometheus com base no estado atual dos objetos no servidor API.
PodMonitor
, que especifica declarativamente como o grupo de pods deve ser monitorado. O Operador gera automaticamente a configuração de raspagem do Prometheus com base no estado atual dos objetos no servidor API.
Probe
, que especifica declarativamente como grupos de ingressos ou alvos estáticos devem ser monitorados. O Operador gera automaticamente a configuração de raspagem do Prometheus com base na definição.
ScrapeConfig
, que especifica declarativamente as configurações de scrape a serem adicionadas ao Prometheus. Este CustomResourceDefinition ajuda a extrair recursos fora do cluster Kubernetes.
PrometheusRule
, que define um conjunto desejado de regras de alerta e/ou gravação do Prometheus. O Operador gera um arquivo de regras, que pode ser usado pelas instâncias do Prometheus.
AlertmanagerConfig
, que especifica declarativamente subseções da configuração do Alertmanager, permitindo o roteamento de alertas para receptores personalizados e definindo regras de inibição.
O operador Prometheus detecta automaticamente alterações no servidor API Kubernetes para qualquer um dos objetos acima e garante que as implantações e configurações correspondentes sejam mantidas sincronizadas.
Para saber mais sobre os CRDs introduzidos pelo Operador Prometheus, dê uma olhada na página de design.
Para evitar que regras inválidas de alerta e gravação do Prometheus causem falhas em uma instância implantada do Prometheus, um webhook de admissão é fornecido para validar os recursos PrometheusRule
na criação ou atualização inicial.
Para obter mais informações sobre esse recurso, consulte o guia do usuário.
Observação: este guia de início rápido não provisiona uma pilha de monitoramento inteira; se é isso que você está procurando, consulte o projeto kube-prometheus. Se você deseja a pilha inteira, mas já aplicou o bundle.yaml
, exclua o pacote primeiro ( kubectl delete -f bundle.yaml
).
Para testar rapidamente apenas o Operador Prometheus dentro de um cluster, escolha uma versão e execute o seguinte comando que implanta o operador no namespace default
:
kubectl criar -f pacote.yaml
Se quiser implantar o operador Prometheus em um namespace diferente, você também precisará kustomize
:
NAMESPACE=my_namespace kustomize edit set namespace $NAMESPACE && kubectl create -k .
Observação: certifique-se de adaptar o namespace no ClusterRoleBinding se estiver implantando em um namespace diferente do namespace padrão.
Para executar o Operador fora de um cluster:
fazer scripts/run-external.sh
Para remover o operador e o Prometheus, primeiro exclua todos os recursos personalizados criados em cada namespace. O operador desligará e removerá automaticamente os pods Prometheus e Alertmanager e os ConfigMaps associados.
para n em $(kubectl get namespaces -o jsonpath={..metadata.name}); fazer kubectl delete --all --namespace=$n prometheus,servicemonitor,podmonitor,alertmanagerdone
Depois de alguns minutos, você pode remover o próprio operador.
kubectl excluir -f pacote.yaml
O operador cria automaticamente serviços em cada namespace onde você criou recursos do Prometheus ou Alertmanager e define três definições de recursos customizados. Você pode limpar isso agora.
para n em $(kubectl get namespaces -o jsonpath={..metadata.name}); fazer kubectl delete --ignore-not-found --namespace=$n serviço operado por prometheus alertmanager-operateddonekubectl delete --ignore-not-found customresourcedefinitions prometheuses.monitoring.coreos.com servicemonitors.monitoring.coreos.com podmonitors.monitoring.coreos.com alertmanagers.monitoring.coreos.com prometheusrules.monitoring.coreos.com alertmanagerconfigs.monitoring.coreos.com scrapeconfigs.monitoring.coreos.com
Veja TESTE
Consulte CONTRIBUINDO.
Se você encontrar uma vulnerabilidade de segurança relacionada ao Operador Prometheus, não a relate abrindo um problema no GitHub, mas envie um e-mail para os mantenedores do projeto encontrado no arquivo MAINTAINERS.md.
Verifique a documentação de solução de problemas para problemas comuns e perguntas frequentes (FAQ).
O logotipo da organização prometheus-operator foi criado e contribuído por Bianca Cheng Costanzo.