Siguiendo con la serie de posts sobre Kafka, veremos cómo monitorizarlo con una sencilla clase en Java desde el PRTG:

  1. ¿Qué es Apache Kafka?
  2. Cómo instalar y configurar el Oracle Java Development Kit.
  3. Cómo instalar y configurar en modo clúster el Apache Zookeeper.
  4. Cómo instalar y configurar en modo clúster el Apache Kafka.
  5. Operaciones habituales en Apache Zookeeper.
  6. Operaciones habituales en Apache Kafka.
  7. Cómo monitorizar Zookeeper desde el PRTG.
  8. Cómo monitorizar Apache Kafka con el PRTG.
  9. Mejoras de rendiemiento en Apache Kafka y valores óptimos de los sensores.
  10. Problemas frecuentes en la instalación, configuración y uso de un clúster Kafka.

Todos los ficheros de configuración de esta serie de posts estan publicados en gitlab.

Al igual que hemos hecho con el zookeeper, hemos creado una pequeña utilidad para monitorizar los parámetros básicos del kafka. La clase está publicada en github. Lo que hace es básicamente lo mismo que hacía la utilidad en Python, es decir, se conecta al Kafka, consulta una serie de parámetros, los parsea en XML y los devuelve. La clase debe compilarse y llamarse desde un script (que también se ha publicado) y debe colocarse en la ruta /var/prtg/scriptsxml para que el PRTG los pueda ejecutar. El script crea 19 canales dentro del mismo sensor. Los canales que se monitorizan son los siguientes:

kafka.controller.LeaderElectionRateAndTimeMs.ControllerStats.Count
kafka.controller.OfflinePartitionsCount.KafkaController.Value
kafka.network.NetworkProcessorAvgIdlePercent.SocketServer.Value    
kafka.network.RequestsPerSec.FetchConsumer.RequestMetrics.Count
kafka.network.RequestsPerSec.FetchFollower.RequestMetrics.Count
kafka.network.RequestsPerSec.Produce.RequestMetrics.Count
kafka.network.TotalTimeMs.FetchConsumer.RequestMetrics.Count
kafka.network.TotalTimeMs.FetchFollower.RequestMetrics.Count
kafka.network.TotalTimeMs.Produce.RequestMetrics.Count
kafka.server.BytesInPerSec.BrokerTopicMetrics.Count
kafka.server.BytesOutPerSec.BrokerTopicMetrics.Count
kafka.server.IsrExpandsPerSec.ReplicaManager.Count
kafka.server.IsrShrinksPerSec.ReplicaManager.Count
kafka.server.MessagesInPerSec.BrokerTopicMetrics.Count
kafka.server.PartitionCount.ReplicaManager.Value
kafka.server.RequestHandlerAvgIdlePercent.KafkaRequestHandlerPool.Count
kafka.server.Status.Online
kafka.server.UnderReplicatedPartitions.ReplicaManager.Value

Una vez creado el sensor podemos ver el estado de todos estos parámetros.

kafka_monitor1

Y consultar el histórico.

kafka_monitor2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s