البرنامج التعليمي: الاتصال بخدمة Prometheus المستضافة ذاتيا على مجموعة AKS باستخدام نقطة نهاية خاصة مدارة

يرشدك هذا الدليل خلال خطوات تثبيت Prometheus، وهي مجموعة أدوات مراقبة وتنبيه مفتوحة المصدر، على مجموعة Azure Kubernetes Service (AKS). ثم يمكنك استخدام نقطة النهاية الخاصة المدارة ل Azure Managed Grafana للاتصال بخادم Prometheus هذا وعرض بيانات Prometheus في لوحة معلومات Grafana.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء نظام مجموعة خدمة Azure Kubernetes
  • تثبيت Prometheus
  • إضافة خدمة ارتباط خاصة إلى خادم Prometheus
  • الاتصال مع نقطة نهاية خاصة مدارة
  • عرض بيانات Prometheus في لوحة معلومات Grafana

المتطلبات الأساسية

قبل البدء، تأكد من أن لديك ما يلي:

إنشاء نظام مجموعة خدمة Azure Kubernetes

  1. سجل الدخول إلى Azure CLI عن طريق تشغيل az login الأمر .

    az login
    

    إذا كان لديك العديد من اشتراكات Azure، فحدد اشتراك Azure الخاص بك باستخدام الأمر az account set -s <your-azure-subscription-id>.

  2. تثبيت kubectl أو تحديثه.

    az aks install-cli
    
  3. إنشاء متغيرين bash/zsh، والتي سنستخدمها في الأوامر اللاحقة. قم بتغيير بناء الجملة أدناه إذا كنت تستخدم shell آخر.

    RESOURCE_GROUP=myResourceGroup 
    AKS_NAME=myaks
    
  4. قم بإنشاء مجموعة موارد. في هذا المثال، نقوم بإنشاء مجموعة الموارد في منطقة غرب وسط الولايات المتحدة Azure.

    az group create --name $RESOURCE_GROUP --location westcentralus
    
  5. إنشاء نظام مجموعة AKS جديد باستخدام الأمر az aks create . هنا نقوم بإنشاء مجموعة من ثلاث عقد باستخدام نوع الجهاز الظاهري القابل للاندفاع من سلسلة B، وهو فعال من حيث التكلفة ومناسب لأحمال عمل الاختبار/التطوير الصغيرة مثل هذا.

    az aks create --resource-group $RESOURCE_GROUP \
      --name $AKS_NAME \
      --node-count 3 \
      --node-vm-size Standard_B2s \
      --generate-ssh-keys
    

    قد تستغرق هذه العملية بضع دقائق لإكمالها.

  6. المصادقة على نظام المجموعة الذي قمت بإنشائه.

    az aks get-credentials \
      --resource-group $RESOURCE_GROUP \
      --name $AKS_NAME
    

    يمكنك الآن الوصول إلى مجموعة Kubernetes باستخدام kubectl.

  7. استخدم kubectl لمشاهدة العقد التي قمت بإنشائها.

    kubectl get nodes
    

تثبيت Prometheus

إحدى الطرق الشائعة لتثبيت Prometheus هي من خلال مشغل prometheus، والذي يوفر توزيع Kubernetes الأصلي وإدارة Prometheus ومكونات المراقبة ذات الصلة. في هذا البرنامج التعليمي، نستخدم مخططات Helm kube-prometheus-stack لنشر عامل تشغيل prometheus.

  1. أضف مستودع helm-charts ثم قم بتحديث قائمة المستودع.

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
    
  2. تثبيت مخطط Helm في مساحة اسم تسمى المراقبة. يتم إنشاء مساحة الاسم هذه تلقائيا.

    helm install prometheus \
      prometheus-community/kube-prometheus-stack \
      --namespace monitoring \
      --create-namespace
    
  3. يطالبك الأمر helm بالتحقق من حالة pods المنشورة. قم بتشغيل الأمر التالي.

    kubectl --namespace monitoring get pods
    
  4. تأكد من أن القرون كلها "قيد التشغيل" قبل المتابعة. إذا لم يصلوا في الظروف غير المحتملة إلى حالة التشغيل، فقد ترغب في استكشاف الأخطاء وإصلاحها.

تتيح خدمة Azure Private Link استهلاك خدمة Kubernetes الخاصة بك من خلال ارتباط خاص عبر شبكات Azure الظاهرية المختلفة. لدى AKS تكامل أصلي مع Azure Private Link Service ويساعدك على إضافة تعليق توضيحي إلى كائن خدمة Kubernetes لإنشاء خدمة ارتباط خاصة مقابلة داخل Azure.

انظر أدناه محتوى ملف pls-prometheus-svc.yaml:

apiVersion: v1
kind: Service
metadata:
  name: prom-pls-svc
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true" # Use an internal LB with PLS
    service.beta.kubernetes.io/azure-pls-create: "true"
    service.beta.kubernetes.io/azure-pls-name: promManagedPls
    service.beta.kubernetes.io/azure-pls-proxy-protocol: "false"
    service.beta.kubernetes.io/azure-pls-visibility: "*"
spec:
  type: LoadBalancer
  selector:
    # app: myApp
    app.kubernetes.io/name: prometheus
    prometheus: prometheus-kube-prometheus-prometheus # note that this is related to the release name
  ports:
    - name: http-web
      protocol: TCP
      port: 9090
      targetPort: 9090
  1. قم بتشغيل الأمر التالي لإضافة خدمة الارتباط الخاص إلى خادم Prometheus.

    kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
    
  2. يتم إنشاء خدمة الارتباط الخاص بالاسم promManagedPls في مجموعة الموارد المدارة من AKS. وتستغرق هذه العملية بضع دقائق.

    Screenshot of the Azure platform: showing the created Private Link Service resource.

الاتصال بنقطة نهاية خاصة مدارة

  1. إذا لم يكن لديك مساحة عمل Azure Managed Grafana حتى الآن، قم بإنشاء مساحة عمل باتباع التشغيل السريع ل Azure Managed Grafana.

  2. افتح مساحة عمل Azure Managed Grafana وانتقل إلى Networking>Managed Private Endpoint>Create.

    Screenshot of the Azure platform showing the managed private endpoints page within an Azure Managed Grafana resource.

  3. أدخل اسما لنقطة النهاية الخاصة المدارة وحدد اشتراك Azure.

  4. بالنسبة إلى نوع المورد، حدد Microsoft.Network/privateLinkServices (خدمات الارتباط الخاص)، وبالنسبة للمورد الهدف، حدد خدمة الارتباط الخاص التي promManagedPls تم إنشاؤها في الخطوة أعلاه. تحصل كل نقطة نهاية خاصة مدارة على عنوان IP خاص. يمكنك أيضا توفير اسم مجال لنقطة النهاية الخاصة المدارة هذه. تضمن خدمة Azure Managed Grafana حل هذا المجال إلى IP الخاص بنقطة النهاية الخاصة المدارة داخل بيئة Azure Managed Grafana. على سبيل المثال، قم بتعيين المجال إلى *.prom.my-own-domain.com.

    Screenshot of the Azure platform showing Prometheus information entered for the new managed private endpoint.

  5. وافق على اتصال نقطة النهاية الخاصة بالانتقال إلى مورد promManagedPls. ضمن الإعدادات، انتقل إلى اتصالات نقطة النهاية الخاصة، وحدد الاتصال باستخدام خانة الاختيار والموافقة.

    Screenshot of the Azure platform showing the Approve connection action.

  6. بعد الموافقة على اتصال نقطة النهاية الخاصة، ارجع إلى مورد Azure Managed Grafana وحدد الزر Refresh في علامة التبويب Managed Private Endpoint لمزامنة Connection state. يجب أن تظهر الآن على أنها معتمدة.

    Screenshot of the Azure platform showing the Refresh button.

عرض بيانات Prometheus في لوحة معلومات Grafana

  1. أضف مصدر بيانات Prometheus إلى Grafana من مدخل Grafana. لمزيد من المعلومات، انتقل إلى إضافة مصدر بيانات. عنوان URL Prometheus الخاص بنا هو http://prom-service.prom.my-own-domain.com:9090.

    Screenshot of the Grafana platform showing adding Prometheus as a data source.

  2. للاستفادة من مصدر بيانات Prometheus المستضاف ذاتيا، حاول استخدام لوحة المعلومات الكاملة لمصدر العقدة، المعرف 1860. لمزيد من الإرشادات، انتقل إلى استيراد لوحة معلومات من مختبرات Grafana.

    Screenshot of the Azure Grafana platform showing the sample Prometheus dashboard.

الخطوة التالية

تعرف على كيفية استخدام حسابات الخدمة.