Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Apache Kafka — это платформа с открытым исходным кодом для распределенной потоковой обработки событий, используемая для высокопроизводительных каналов передачи данных, потоковой аналитики, интеграции данных и критически важных приложений.
Эта статья описывает, как настроить функцию управляемого сервиса Azure Monitor для Prometheus с помощью Azure Kubernetes Service (AKS) и Kubernetes, активированного через Azure Arc, для мониторинга кластеров Kafka через сбор метрик Prometheus.
Предпосылки
- Кластер Kafka, работающий в AKS или Kubernetes с поддержкой Azure Arc, — развертывание кластера Kafka, работающего в AKS
- Управляемый prometheus Azure включен в кластере. Включите Управляемый prometheus Azure в AKS
Установка экспортера Kafka
Установите Prometheus Kafka Exporter с помощью Helm chart.
helm install azmon-kafka-exporter --namespace=azmon-kafka-exporter --create-namespace --version 2.10.0 prometheus-community/prometheus-kafka-exporter --set kafkaServer="{kafka-server.namespace.svc:9092,.....}" --set prometheus.serviceMonitor.enabled=true --set prometheus.serviceMonitor.apiVersion=azmonitoring.coreos.com/v1
Вы можете настроить диаграмму Helm для Kafka Exporter с помощью values. Укажите правильные адреса сервера, в которых можно получить доступ к серверам Kafka. Задайте адреса сервера, используя аргумент kafkaServer.
Примечание
Конфигурация управляемого монитора сервиса/пода Prometheus с установкой через Helm chart поддерживается только с версией Helm chart 2.10.0 или выше. Если вы хотите настроить любой другой сервис или мониторинг подов, следуйте этим инструкциям.
Импортируйте панель мониторинга Grafana
Чтобы импортировать Grafana дашборд (ID 7589) в Kafka Exporter с использованием ID или JSON, следуйте инструкциям в разделе Импорт дашборда из Grafana Labs.
Применить правила
Скачайте файл шаблона и файл параметров для правил оповещения.
Измените следующие значения в файле параметров.
Параметр Значение azureMonitorWorkspaceИдентификатор ресурса для рабочей области Azure Monitor. Получите это из JSON view на странице Обзор рабочего пространства Azure Monitor. locationРасположение рабочей области Azure Monitor. Получите это из JSON view на странице Обзор рабочего пространства Azure Monitor. clusterNameНазвание кластера AKS или кластера Kubernetes с поддержкой Azure Arc. Извлеките его из представления JSON на странице Обзор для кластера. actionGroupIdИдентификатор ресурса для группы действий по предупреждению. Извлеките это из JSON-представления на странице Обзор для группы действий. Узнайте больше о рабочих группах Разверните шаблон, используя любой стандартный метод для установки шаблонов Azure Resource Manager. Для получения рекомендаций см. примеры шаблонов Resource Manager для Azure Monitor.
После развертывания шаблона вы можете просмотреть правила в портале Azure, как описано в разделе Просмотр групп правил Prometheus. Просмотрите пороги предупреждений, чтобы убедиться, что они подходят для вашего кластера и рабочих нагрузок. Обновите пороговые значения соответственно.
Примечание
Правила не ограничены кластером. Если вы хотите ограничить правила определённым кластером, см. Ограничение правил определённым кластером.
Вы можете узнать больше об оповещениях Prometheus. Если вы хотите использовать любые другие правила оповещений/записи Prometheus из открытых источников, используйте az-prom-rules-converter для создания эквивалентных правил Prometheus для Azure.
Получите больше метрик JMX Exporter, используя Strimzi.
Если вы используете оператор Strimzi для развертывания кластеров Kafka, разверните мониторы подов, чтобы получить больше метрик от JMX Exporter.
Метрики должны предоставляться развёртываниями кластера Kafka, как, например, примеры на GitHub. Обратитесь к файлам kafka-.*-metrics.yaml для настройки метрик, которые будут отображены.
Мониторы pod здесь также предполагают, что пространство имен, в котором развернута нагрузка Kafka, - это kafka. Обновите это соответствующим образом, если рабочие нагрузки развернуты в другой области имён.
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: azmon-cluster-operator-metrics
labels:
app: strimzi
spec:
selector:
matchLabels:
strimzi.io/kind: cluster-operator
namespaceSelector:
matchNames:
- kafka
podMetricsEndpoints:
- path: /metrics
port: http
---
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: azmon-entity-operator-metrics
labels:
app: strimzi
spec:
selector:
matchLabels:
app.kubernetes.io/name: entity-operator
namespaceSelector:
matchNames:
- kafka
podMetricsEndpoints:
- path: /metrics
port: healthcheck
---
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: azmon-bridge-metrics
labels:
app: strimzi
spec:
selector:
matchLabels:
strimzi.io/kind: KafkaBridge
namespaceSelector:
matchNames:
- kafka
podMetricsEndpoints:
- path: /metrics
port: rest-api
---
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: azmon-kafka-resources-metrics
labels:
app: strimzi
spec:
selector:
matchExpressions:
- key: "strimzi.io/kind"
operator: In
values: ["Kafka", "KafkaConnect", "KafkaMirrorMaker", "KafkaMirrorMaker2"]
namespaceSelector:
matchNames:
- kafka
podMetricsEndpoints:
- path: /metrics
port: tcp-prometheus
relabelings:
- separator: ;
regex: __meta_kubernetes_pod_label_(strimzi_io_.+)
replacement: $1
action: labelmap
- sourceLabels: [__meta_kubernetes_namespace]
separator: ;
regex: (.*)
targetLabel: namespace
replacement: $1
action: replace
- sourceLabels: [__meta_kubernetes_pod_name]
separator: ;
regex: (.*)
targetLabel: kubernetes_pod_name
replacement: $1
action: replace
- sourceLabels: [__meta_kubernetes_pod_node_name]
separator: ;
regex: (.*)
targetLabel: node_name
replacement: $1
action: replace
- sourceLabels: [__meta_kubernetes_pod_host_ip]
separator: ;
regex: (.*)
targetLabel: node_ip
replacement: $1
action: replace
Настройка оповещений с помощью Strimzi.
Вы можете настроить богатый набор оповещений на основе метрик Strimzi, обратившись к этим примерам.
Примечание
Если вы используете какой-либо другой способ выделения JMX Exporter в вашем кластере Kafka, следуйте инструкциям по настройке мониторинга подов или сервисов соответственно.
Просматривайте панели мониторинга Grafana для получения дополнительных метрик JMX с использованием Strimzi.
Чтобы просмотреть панели мониторинга для метрик, которые предоставляет оператор Strimzi, перейдите на GitHub страницу с панелями Grafana для Strimzi.
Устранение неполадок
Когда мониторы сервисов или мониторы подов успешно применены, если вы хотите убедиться, что дополнительный модуль включает цели мониторинга сервисов, следуйте этим инструкциям.