Руководство. Подключение к локальной службе Prometheus в кластере AKS с помощью управляемой частной конечной точки

В этом руководстве описаны шаги по установке Prometheus, набора средств мониторинга и оповещений с открытым кодом в кластере Служба Azure Kubernetes (AKS). Затем вы используете управляемую частную конечную точку Azure 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, которые будут использоваться в последующих командах. Измените приведенный ниже синтаксис, если вы используете другую оболочку.

    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-operator, который обеспечивает собственное развертывание Kubernetes и управление prometheus и связанных компонентов мониторинга. В этом руководстве мы используем диаграммы Helm kube-prometheus-stack Helm для развертывания оператора prometheus-operator.

  1. Добавьте репозиторий helm-chart и обновите список репозитория.

    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 запрашивает проверка состояние развернутых модулей pod. Выполните следующую команду.

    kubectl --namespace monitoring get pods
    
  4. Перед продолжением убедитесь, что модули pod все "Запущены". Если в маловероятном случае они не достигают состояния выполнения, их может потребоваться устранить.

Служба Azure Приватный канал позволяет использовать службу Kubernetes через приватный канал между различными виртуальными сетями Azure. AKS имеет встроенную интеграцию со службой Приватный канал Azure и помогает создать соответствующую службу приватного канала в 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 и перейдите в раздел "Создание управляемой частной конечной точки>сети".>

    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. В разделе Параметры перейдите к подключениям к частной конечной точке, выберите подключение с помощью поля проверка box и утвердить.

    Screenshot of the Azure platform showing the Approve connection action.

  6. После утверждения подключения к частной конечной точке вернитесь к ресурсу Azure Managed Grafana и нажмите кнопку "Обновить " на вкладке "Управляемая частная конечная точка", чтобы синхронизировать этот 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 Labs.

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

Следующий шаг

Узнайте, как использовать учетные записи служб.