Para Kafka implementado en K8S, Prometheus + Grafana es una solución de monitoreo de uso común. Hoy, llegaremos al combate real para monitorear Kafka en el entorno K8S a través de Prometheus + Grafana;
Preparación
El enfoque de hoy está en el monitoreo de Kafka, por lo que K8S, Helm, Kafka, Prometheus, Grafana y otros servicios están listos. A continuación se proporcionan algunos enlaces, que pueden usarse como referencia cuando se realiza una implementación relacionada:
- Build K8S: "kubespray2.11 install kubernetes1.15"
- Build Helm: "Implementar y experimentar Helm (Versión 2.16.1)"
- Construya Prometeo y Grafana: "kubernetes1.15 despliegue rápido de prometeo y grafana"
- Despliegue de Kafka: "Despliegue rápido de Kafka en el entorno K8S (accesible fuera de K8S)"
Información de la versión
- Gobernadores : 1.15
- Anfitrión de Kubernetes: CentOS Linux versión 7.7.1908
- Servicio NFS: dirección IP 192.168.50.135, carpeta / volumen1 / nfs-storageclass-test
- Timón: 2.16.1
- Kafka: 2.0.1
- Zookeeper : 3.5.5
- Prometeo: 2.0.0
- Grafana : 5.0.0
Después de la preparación, puedes comenzar el combate real;
Confirmar los parámetros del exportador kafka
El kafka-exportador a desplegar necesita obtener datos de kafka, por lo que deben prepararse los parámetros de kafka-exporter;
- Verifique el servicio Kafka donde el TIPO es ClusterIP, como se muestra en el cuadro rojo a continuación:
- El nombre del servicio en el cuadro rojo anterior es kafka y el puerto es 9092 , por lo que la información de kafka configurada más adelante en kafka-exporter es kafka: 9092
Operación real
- Agregue el almacén de Helm (el almacén tiene el exportador de kafka que necesitamos): repositorio de helm agregue gkarthiks https://gkarthiks.github.io/helm-charts
- 下载 kafka-exporter :helm fetch gkarthiks / prometheus-kafka-exporter
- Descomprima el archivo de gráfico descargado: tar -zxvf prometheus-kafka-exporter-0.1.0.tgz
- Ingrese el directorio descomprimido: cd prometheus-kafka-exporter
- Modifique el archivo values.yaml, como se muestra en el cuadro rojo a continuación, kafka: 9092 es la dirección para acceder a kafka bajo el mismo espacio de nombres:
- Ejecute en el directorio donde se encuentra el archivo values.yaml: helm install --name-template kafka-exporter -f values.yaml. --Namespace kafka-test (el espacio de nombres de kafka es kafka-test, y el espacio de nombres aquí debe ser coherente con kafka)
- Compruebe si el servicio y el pod están listos:
- En este punto, hemos implementado kafka-exporter y podemos proporcionarle a prometheus datos de monitoreo, pero prometheus no sabe venir aquí para recopilar datos, por lo que a continuación debemos configurar prometheus
- Confirme la dirección de acceso del servicio kafka-exporter . Prometheus recopila los datos que se utilizarán. El nombre y el puerto se muestran en el cuadro rojo en la figura a continuación, para que pueda unir la dirección de acceso en el espacio de nombres: kafka-exporter-prometheus-kafka-exporter.kafka-test. svc.cluster.local: 9308
- Si se refiere al prometeo desplegado por "kubernetes1.15 despliegue rápido de prometeo y grafana" , abra el archivo configmap.yaml descargado durante el despliegue , que contiene la configuración de prometeo. ubicación .yml;
- configmap.yaml agrega el contenido en el cuadro rojo a continuación, para que prometheus pueda recopilar datos del exportador de kafka:
- Haga que la configuración sea efectiva: kubectl apply -f configmap.yaml
- En este momento, el contenedor prometheus todavía usa la configuración anterior. Para que la configuración surta efecto, el pod de prometheus debe eliminarse, de modo que el nuevo pod creado automáticamente por K8S use la nueva configuración para encontrar el pod de prometheus: kubectl get pods -n kube -sistema
- Eliminar el pod antiguo: kubectl delete pod prometheus-68545d4fd8-f5q2w -n kube-system
- Espere a que se cree un nuevo pod automáticamente;
- A continuación, inicie sesión en Grafana, configure la página de monitoreo, como se muestra a continuación, realice la operación de importación de plantillas:
- Ingrese el número 7589 en la página de la plantilla de importación:
- Al elegir una fuente de datos, debe elegir prometeo, como se muestra a continuación:
- En este momento, si su kafka ha
enviado y recibido mensajes, puede ver de inmediato los datos: en este punto, se ha implementado la supervisión de kafka en el entorno K8S, espero que este artículo pueda brindarle alguna referencia;