Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Настройка подключения к Managed Service for PostgreSQL из контейнера Serverless Containers
    • Создать ВМ с Container Optimized Image
    • Создать ВМ с Container Optimized Image и дополнительным томом для Docker-контейнера
    • Создать группу ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Создать группу ВМ с Container Optimized Image
    • Создать ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Изменить ВМ с Container Optimized Image
    • Настройка вывода информации из Docker-контейнера в серийный порт
      • Создание нового Kubernetes-проекта
      • Создание кластера Kubernetes без доступа в интернет
      • Запуск рабочих нагрузок с GPU
      • Использование групп узлов c GPU без предустановленных драйверов
      • Установка Time-Slicing GPUs
      • Миграция ресурсов в другую зону доступности
      • Шифрование секретов
        • Мониторинг кластера с помощью Prometheus и Grafana
        • Мониторинг кластера Managed Service for Kubernetes с помощью Filebeat OSS

В этой статье:

  • Необходимые платные ресурсы
  • Перед началом работы
  • Установите Prometheus
  • Установите кеширующий прокси trickster
  • Установите Grafana
  • Настройте и проверьте работу Grafana
  • Удалите созданные ресурсы
  1. Контейнерная инфраструктура
  2. Managed Service for Kubernetes
  3. Мониторинг
  4. Мониторинг кластера с помощью Prometheus и Grafana

Мониторинг кластера Yandex Managed Service for Kubernetes с помощью Prometheus и Grafana

Статья создана
Yandex Cloud
Обновлена 9 апреля 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Установите Prometheus
  • Установите кеширующий прокси trickster
  • Установите Grafana
  • Настройте и проверьте работу Grafana
  • Удалите созданные ресурсы

Managed Service for Kubernetes позволяет выгружать метрики объектов кластера в системы мониторинга.

Из этой статьи вы узнаете, как настроить систему сбора метрик Prometheus и систему визуализации Grafana в кластере Managed Service for Kubernetes. Для ускорения передачи метрик будет установлен кеширующий прокси trickster.

Чтобы настроить систему мониторинга кластера Managed Service for Kubernetes:

  • Установите Prometheus.
  • Установите кеширующий прокси trickster.
  • Установите Grafana.
  • Настройте и проверьте работу Grafana.

Если созданные ресурсы вам больше не нужны, удалите их.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входят:

  • Плата за кластер Managed Service for Kubernetes: использование мастера и исходящий трафик (см. тарифы Managed Service for Kubernetes).
  • Плата за узлы кластера (ВМ): использование вычислительных ресурсов, операционной системы и хранилища (см. тарифы Compute Cloud).
  • Плата за публичный IP-адрес для узлов кластера (см. тарифы Virtual Private Cloud).

Перед началом работыПеред началом работы

  1. Создайте группы безопасности для кластера Managed Service for Kubernetes и входящих в него групп узлов.

    Важно

    От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.

  2. Создайте кластер Managed Service for Kubernetes и группу узлов любой подходящей конфигурации с доступом в интернет и с группами безопасности, подготовленными ранее.

  3. Установите kubectl и настройте его на работу с созданным кластером.

  4. Установите менеджер пакетов Helm версии не ниже 3.8.0.

Установите PrometheusУстановите Prometheus

Система мониторинга Prometheus сканирует объекты кластера Managed Service for Kubernetes и собирает их метрики в собственную базу данных. Собранные метрики доступны внутри кластера Managed Service for Kubernetes по протоколу HTTP.

  1. Добавьте репозиторий, содержащий дистрибутив Prometheus:

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts && \
    helm repo update
    
  2. Установите Prometheus:

    helm install my-prom prometheus-community/prometheus
    
  3. Убедитесь, что все поды перешли в состояние Running:

    kubectl get pods -l "app.kubernetes.io/instance=my-prom"
    

    Результат:

    NAME                                              READY  STATUS   RESTARTS  AGE
    my-prom-prometheus-alertmanager-7b********-xt6ws  2/2    Running  0         81s
    my-prom-prometheus-node-exporter-*****            1/1    Running  0         81s
    my-prom-prometheus-pushgateway-69********-swrfb   1/1    Running  0         81s
    my-prom-prometheus-server-7b********-m4v78        2/2    Running  0         81s
    

Установите кеширующий прокси tricksterУстановите кеширующий прокси trickster

Кеширующий прокси trickster ускоряет чтение из БД Prometheus, что позволяет отображать метрики Grafana практически в реальном времени, а также снизить нагрузку на Prometheus.

  1. Добавьте репозиторий, содержащий дистрибутив trickster:

    helm repo add tricksterproxy https://helm.tricksterproxy.io && \
    helm repo update
    
  2. Создайте конфигурационный файл trickster.yaml, содержащий настройки trickster:

    trickster.yaml
    frontend:
      listenAddress: ""
      tlsListenAddress: ""
      tlsListenPort: ""
      connectionsLimit: "0"
    origins:
      - name: default
        originType: prometheus
        originURL: http://my-prom-prometheus-server:80
    profiler:
      enabled: false
      port: 6060
    prometheusScrape: false
    prometheus:
      serviceMonitor:
        enabled: false
        interval: 30s
        labels: {}
    replicaCount: 1
    image:
      repository: tricksterproxy/trickster
      tag: "1.1"
      pullPolicy: IfNotPresent
    service:
      annotations: {}
      labels: {}
      clusterIP: ""
      externalIPs: []
      loadBalancerIP: ""
      loadBalancerSourceRanges: []
      metricsPort: 8481
      servicePort: 8480
      type: ClusterIP
    ingress:
      enabled: false
      annotations: {}
      extraLabels: {}
      hosts: []
      tls: []
    volumes:
      persistent:
        type: "persistentVolume"
        enabled: false
        mountPath: "/tmp/trickster"
        accessModes:
          - ReadWriteOnce
        annotations: {}
        existingClaim: ""
        size: 15Gi
      generic:
        type: "generic"
        enabled: true
        mountPath: "/tmp/trickster"
    podAnnotations: {}
    resources: {}
    securityContext: {}
    

    Вы можете изменить размер хранилища, отведенного для работы кеширующего прокси. Укажите нужное значение размера хранилища в параметре volumes.persistent.size.

  3. Установите trickster:

    helm install trickster tricksterproxy/trickster --namespace default -f trickster.yaml
    
  4. Убедитесь, что под trickster перешел в состояние Running:

    kubectl get pods -l "app=trickster"
    

Кеширующий прокси доступен внутри кластера Managed Service for Kubernetes по адресу http://trickster:8480. Grafana будет обращаться по этому URL для получения метрик.

Установите GrafanaУстановите Grafana

При развертывании приложения будут созданы:

  • Deployment приложения Grafana.
  • PersistentVolumeClaim для резервирования внутреннего хранилища.
  • Service типа LoadBalancer для организации сетевого доступа к консоли управления Grafana.

Чтобы установить Grafana:

  1. Создайте конфигурационный файл grafana.yaml.

    grafana.yaml
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: grafana-pvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: grafana
      name: grafana
    spec:
      selector:
        matchLabels:
          app: grafana
      template:
        metadata:
          labels:
            app: grafana
        spec:
          securityContext:
            fsGroup: 472
            supplementalGroups:
              - 0
          containers:
            - name: grafana
              image: grafana/grafana:latest
              imagePullPolicy: IfNotPresent
              ports:
                - containerPort: 3000
                  name: http-grafana
                  protocol: TCP
              readinessProbe:
                failureThreshold: 3
                httpGet:
                  path: /robots.txt
                  port: 3000
                  scheme: HTTP
                initialDelaySeconds: 10
                periodSeconds: 30
                successThreshold: 1
                timeoutSeconds: 2
              livenessProbe:
                failureThreshold: 3
                initialDelaySeconds: 30
                periodSeconds: 10
                successThreshold: 1
                tcpSocket:
                  port: 3000
                timeoutSeconds: 1
              resources:
                requests:
                  cpu: 250m
                  memory: 750Mi
              volumeMounts:
                - mountPath: /var/lib/grafana
                  name: grafana-pv
          volumes:
            - name: grafana-pv
              persistentVolumeClaim:
                claimName: grafana-pvc
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: grafana
    spec:
      ports:
        - port: 3000
          protocol: TCP
          targetPort: http-grafana
      selector:
        app: grafana
      sessionAffinity: None
      type: LoadBalancer
    

    При необходимости измените:

    • Размер хранилища, отведенного для работы Grafana, в параметре spec.resources.requests.storage для kind: PersistentVolumeClaim.
    • Вычислительные ресурсы, выделяемые поду Grafana, в параметрах spec.containers.resources для kind: Deployment.
  2. Установите Grafana:

    kubectl apply -f grafana.yaml
    
  3. Убедитесь, что под Grafana перешел в состояние Running:

    kubectl get pods -l "app=grafana"
    

Настройте и проверьте работу GrafanaНастройте и проверьте работу Grafana

  1. Узнайте адрес, на котором доступен сервис Grafana, и перейдите по этому адресу:

    export GRAFANA_IP=$(kubectl get service/grafana -o jsonpath='{.status.loadBalancer.ingress[0].ip}') && \
    export GRAFANA_PORT=$(kubectl get service/grafana -o jsonpath='{.spec.ports[0].port}') && \
    echo http://$GRAFANA_IP:$GRAFANA_PORT
    

    Примечание

    Если ресурс недоступен по указанному URL, то убедитесь, что группы безопасности для кластера Managed Service for Kubernetes и его групп узлов настроены корректно. Если отсутствует какое-либо из правил — добавьте его.

  2. В открывшемся окне браузера введите логин и пароль admin/admin, после чего установите новый пароль для пользователя admin.

  3. Добавьте источник данных с типом Prometheus и следующими настройками:

    • Name — Prometheus.
    • URL — http://trickster:8480.
  4. Нажмите кнопку Save & test и убедитесь, что источник данных успешно подключен (Data source is working).

  5. Импортируйте дашборд Kubernetes Deployment Statefulset Daemonset metrics, содержащий основные метрики Kubernetes. Укажите идентификатор дашборда (8588) при импорте.

    Совет

    Для проверки сценария вы можете использовать любой подходящий дашборд из каталога Grafana.

  6. Откройте дашборд и убедитесь, что Grafana получает метрики от кластера Managed Service for Kubernetes.

Удалите созданные ресурсыУдалите созданные ресурсы

Удалите ресурсы, которые вы больше не будете использовать, чтобы за них не списывалась плата:

  1. Удалите кластер Managed Service for Kubernetes.
  2. Если вы зарезервировали для кластера Managed Service for Kubernetes публичный статический IP-адрес, удалите его.

Была ли статья полезна?

Предыдущая
Работа со снапшотами Compute Cloud
Следующая
Мониторинг кластера Managed Service for Kubernetes с помощью Filebeat OSS
Проект Яндекса
© 2025 ООО «Яндекс.Облако»