Delen via


Bewaking voor MongoDB-cluster in Azure Kubernetes Service (AKS)

In dit artikel leert u hoe u een MongoDB-cluster bewaakt in Azure Kubernetes Service (AKS) met behulp van PMM (Percona Monitoring and Management). Bewaking is essentieel voor het waarborgen van de status en prestaties van uw MongoDB-cluster. Door belangrijke metrische gegevens te bewaken, kunt u problemen vroegtijdig identificeren en corrigerende maatregelen nemen om downtime en gegevensverlies te voorkomen.

Percona Monitoring and Management (PMM) instellen voor MongoDB

PMM werkt als een client-/servertoepassing, bestaande uit een PMM-server en meerdere PMM-clients die zijn geïnstalleerd op elk knooppunt van de database die u wilt bewaken. De PMM-clients verzamelen essentiële metrische gegevens en verzenden deze gegevens naar de PMM-server. Vervolgens kunt u verbinding maken met de PMM-server om metrische databasegegevens over verschillende dashboards weer te geven.

Bewaking percona-server inschakelen voor MongoDB met PMM

  1. Als u bewaking voor Percona Server voor MongoDB wilt inschakelen, moet u ervoor zorgen dat het pmm.enabled veld is ingesteld true op in de aangepaste Resource PerconaServerMongoDB. U kunt deze instelling controleren met behulp van de kubectl describe opdracht.

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

    Voorbeelduitvoer:

    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. Als het pmm.enabled veld is ingesteld op false, kunt u dit inschakelen met behulp van de kubectl patch opdracht.

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

Een knooppuntgroep maken voor PMM-server

  • Maak een toegewezen knooppuntgroep voor de PMM-server met behulp van de az aks nodepool add opdracht.

    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
    

PMM-server installeren

  1. Voeg de Percona Helm-opslagplaats toe en werk deze bij met behulp van de helm repo add en helm repo update opdrachten.

    helm repo add percona https://percona.github.io/percona-helm-charts/
    helm repo update
    
  2. Installeer de PMM-server met behulp van de helm install opdracht.

    helm install pmm --namespace mongodb \
      --set nodeSelector."kubernetes\.azure\.com/agentpool"="pmmserver" \
      --set service.type="LoadBalancer" \
      percona/pmm
    
  3. Haal het externe IP-adres van de PMM-server op met behulp van de kubectl get svc opdracht.

    export SERVICE_IP=$(kubectl get svc --namespace mongodb monitoring-service -o jsonpath="{.status.loadBalancer.ingress[0].ip}")
      echo https://$SERVICE_IP:
    
  4. Haal het wachtwoord voor de gebruiker met beheerdersrechten op met behulp van de kubectl get secret opdracht.

      export ADMIN_PASS=$(kubectl get secret pmm-secret --namespace mongodb -o jsonpath='{.data.PMM_ADMIN_PASSWORD}' | base64 --decode)
      echo $ADMIN_PASS
    
  5. U kunt nu toegang krijgen tot de PMM-server met behulp van het externe IP-adres en het gebruikerswachtwoord van de beheerder. U hebt ook toegang tot de PMM-server op uw lokale computer met behulp van de kubectl port-forward opdracht.

    kubectl port-forward svc/monitoring-service -n mongodb 8080:80
    
  6. Zodra port forwarding is ingeschakeld, hebt u toegang tot de PMM-server door naar http://localhost:8080te navigeren.

PMM-server configureren

  1. Open de PMM-server met behulp van de gebruiker met beheerdersrechten en het wachtwoord dat u eerder hebt verkregen.

  2. Selecteer configuratie-API-sleutels> in het zijmenu.

    Schermopname van een webpagina met het PMM Mongodb-dashboardmenu.

  3. Selecteer API-sleutel toevoegen op de pagina Configuratie.

  4. Voer de volgende informatie in:

    • Sleutelnaam (u kunt elke gewenste naam geven)
    • Selecteer de rol in de vervolgkeuzelijst
    • Voer een waarde in het tekstvak Time to live in (beweeg de muisaanwijzer over de knopinfo voor meer informatie)

    Schermopname van een webpagina met het PMM Mongodb-dashboard waarin de API-sleutel is gegenereerd.

  5. Selecteer Toevoegen.

  6. Kopieer uw sleutel uit het venster API-sleutel gemaakt en houd deze veilig.

API-sleutel instellen als geheim en vernieuwen

  1. Stel de API-sleutel in als een geheim in Azure Key Vault met behulp van de az keyvault secret set opdracht. Zorg ervoor dat u de waarden vervangt $MY_KEYVAULT_NAME en $API_KEY vervangt.

    az keyvault secret set --vault-name $MY_KEYVAULT_NAME --name PMM-SERVER-API-KEY --value $API_KEY --output table
    
  2. Vernieuw het geheim in de ExternalSecret-resource met de nieuwe geheime sleutel met behulp van de kubectl annotate opdracht.

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

PMM-server testen

Zodra u de PMM-server hebt geconfigureerd, kunt u testgegevens genereren met Behulp van Locust, zoals beschreven in Validatietolerantie van MongoDB-cluster in Azure Kubernetes Service (AKS). Nadat u testgegevens hebt gegenereerd, kunt u de prestaties van uw MongoDB-cluster op de PMM-server bewaken.

Schermopname van een webpagina met het PMM Mongodb-dashboard.

Schermopname van een andere webpagina met het PMM Mongodb-dashboard.

Volgende stappen

In dit artikel hebt u geleerd hoe u een MongoDB-cluster in Azure Kubernetes Service (AKS) bewaakt met behulp van PMM (Percona Monitoring and Management). Zie de volgende artikelen voor meer informatie over het implementeren van stateful workloads op AKS: