Monitoramento para cluster do MongoDB no AKS (Serviço de Kubernetes do Azure)

Neste artigo, você aprenderá a monitorar um cluster do MongoDB no AKS (Serviço de Kubernetes do Azure) usando o PMM (Monitoramento e Gerenciamento de Percona). O monitoramento é essencial para garantir a integridade e o desempenho do cluster do MongoDB. Monitorando as principais métricas, você poderá identificar problemas antecipadamente e executar ações corretivas para evitar tempo de inatividade e perda de dados.

Configurar o PMM (Monitoramento e Gerenciamento de Percona) para MongoDB

O PMM opera como um aplicativo cliente/servidor, consistindo em um servidor de PMM e vários clientes de PMM instalados em cada nó do banco de dados que você deseja monitorar. Os clientes de PMM coletam métricas essenciais e transmitem esses dados para o servidor de PMM. Em seguida, você poderá se conectar ao servidor de PMM para exibir métricas de banco de dados em vários painéis.

Habilitar o monitoramento do Percona Server para MongoDB com o PMM

  1. Para habilitar o monitoramento do Percona Server para MongoDB, verifique se o campo pmm.enabled está definido como true no recurso personalizado PerconaServerMongoDB. Verifique essa configuração usando o comandokubectl describe.

    kubectl describe PerconaServerMongoDB ${AKS_MONGODB_CLUSTER_NAME} -n ${AKS_MONGODB_NAMESPACE}
    

    Exemplo de saída:

    Name:         cluster-aks-mongodb
    Namespace:    mongodb
    ...
    Spec:
      ...
      Pmm:
        Enabled:      true
        Image:        <your-acr-name>.azurecr.io/pmm-client:2.41.2
        Server Host:  monitoring-service
      ...
    
  2. Se o campo pmm.enabled estiver definido como false, você poderá habilitá-lo usando o comando kubectl patch.

    kubectl patch PerconaServerMongoDB ${AKS_MONGODB_CLUSTER_NAME} -n ${AKS_MONGODB_NAMESPACE} --type='merge' -p '{"spec":{"pmm":{"enabled":true}}}'
    

Criar um pool de nós para o servidor de PMM

  • Crie um pool de nós dedicado para o servidor de PMM usando o comando az aks nodepool add.

    az aks nodepool add \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --cluster-name $MY_CLUSTER_NAME \
    --name pmmserver \
    --node-vm-size Standard_DS4_v2 \
    --node-count 3 \
    --zones 1 2 3 \
    --mode User \
    --output table
    

Instalar o servidor de PMM

  1. Adicione e atualize o repositório Percona Helm usando os comandos helm repo add e helm repo update.

    helm repo add percona https://percona.github.io/percona-helm-charts/
    helm repo update
    
  2. Instale o servidor de PMM usando o comando helm install.

    helm install pmm --namespace mongodb \
      --set nodeSelector."kubernetes\.azure\.com/agentpool"="pmmserver" \
      --set service.type="LoadBalancer" \
      percona/pmm
    
  3. Obtenha o endereço IP externo do servidor de PMM usando o comando kubectl get svc.

    export SERVICE_IP=$(kubectl get svc --namespace mongodb monitoring-service -o jsonpath="{.status.loadBalancer.ingress[0].ip}")
      echo https://$SERVICE_IP:
    
  4. Obtenha a senha do usuário administrador usando o comando kubectl get secret.

      export ADMIN_PASS=$(kubectl get secret pmm-secret --namespace mongodb -o jsonpath='{.data.PMM_ADMIN_PASSWORD}' | base64 --decode)
      echo $ADMIN_PASS
    
  5. Agora você poderá acessar o servidor de PMM usando o endereço IP externo e a senha do usuário "administrador". Você também poderá acessar o servidor de PMM em seu computador local usando o comando kubectl port-forward.

    kubectl port-forward svc/monitoring-service -n mongodb 8080:80
    
  6. Depois que o encaminhamento de porta estiver habilitado, você poderá acessar o servidor de PMM navegando até http://localhost:8080.

Configurar o servidor de PMM

  1. Acesse o servidor de PMM usando o usuário administrador e a senha obtida anteriormente.

  2. No menu lateral, selecione Configuração>API chaves.

    Captura de tela de uma página da Web mostrando o menu do painel de PMM do Mongodb.

  3. Na página Configuração, selecione Adicionar Chave de API.

  4. Insira as seguintes informações:

    • Nome da chave (você pode dar qualquer nome desejado)
    • Selecione a Função na lista suspensa
    • Insira um valor na caixa de texto Vida útil (focalize na dica de ferramenta para obter mais informações)

    Captura de tela de uma página da Web mostrando o painel de PMM do Mongodb com a chave de API gerada.

  5. Selecione Adicionar.

  6. Copie sua chave da janela Criada pela Chave de API e mantenha-a segura.

Definir a chave de API como segredo e atualizá-la

  1. Defina a chave de API como um segredo no Azure Key Vault usando o comando az keyvault secret set. Certifique-se de substituir $MY_KEYVAULT_NAME e $API_KEY por seus valores.

    az keyvault secret set --vault-name $MY_KEYVAULT_NAME --name PMM-SERVER-API-KEY --value $API_KEY --output table
    
  2. Atualize o segredo no recurso ExternalSecret com a nova chave secreta usando o comando kubectl annotate.

    kubectl annotate es ${AKS_MONGODB_SECRETS_NAME} force-sync=$(date +%s) --overwrite -n ${AKS_MONGODB_NAMESPACE}
    

Testar servidor de PMM

Após configurar o servidor de PMM, você poderá gerar dados de teste usando o Locust, conforme descrito em Validar resiliência do cluster MongoDB no AKS (Serviço de Kubernetes do Azure). Após gerar dados de teste, você poderá monitorar o desempenho do cluster do MongoDB no servidor de PMM.

Captura de tela de uma página da Web mostrando o painel de PMM do Mongodb.

Captura de tela de outra página da Web mostrando o painel de PMM do Mongodb.

Próximas etapas

Neste artigo, você aprendeu a monitorar um cluster do MongoDB no AKS (Serviço de Kubernetes do Azure) usando o PMM (Monitoramento e Gerenciamento de Percona). Para saber mais sobre como implantar cargas de trabalho com estado no AKS, confira os seguintes artigos: