Monitorización de Apache Kafka
0. Índice de contenidos.
- 1. Introducción.
- 2. Entorno.
- 3. Instalación.
- 4. Configuración.
- 5. Monitorizar Kafka.
- 6. Conclusiones.
1. Introducción.
Ya vimos en este otro tutorial unos primeros pasos con Apache Kafka, su instalación y uso. Ahora vamos a ver Kafka web console, una herramienta muy útil para monitorizar todo lo que pasa en Kafka, los brokers que tiene configurados, topics, particiones, intercambio de mensajes entre producers y consumers, etc.
2. Entorno.
El tutorial se ha realizado con el siguiente entorno:
- MacBook Pro 15′ (2.4 GHz Intel Core i5, 8GB DDR3 SDRAM).
- Sistema Operativo: Mac OS Mavericks 10.9.5
- Oracle Java SDK 1.7.0_60
- Apache Kafka 0.8.1.1
- Typesafe 1.2.2
3. Instalación
Kafka web console está desarrollado con Scala y Play Framework por lo que si no lo tienes montando en tu máquina, como es mi caso, necesitas instalarlo. Asumimos que tenemos Java 6 o superior instalado.
Para instalarlo tenemos que descargar el stack de Typesafe ya que forma parte de él junto con otras distribuciones como Scala o Akka. En Mac OS podemos descargarlo con el gestor de paquetes ‘brew’
brew install typesafe-activator
Para descargar Kafka web console directamente clonamos el repositorio de git del proyecto.
git clone https://github.com/claudemamo/kafka-web-console.git
Una vez descargado ejecutamos la tarea start de sbt. Esto arrancará el proyecto instalando las librerías necesarias y creará por defecto la base de datos en H2 que necesita el programa para funcionar. Soporta otras bases de datos como PostgreSQL, MySQL, Oracle, DB2, Derby y SQL Server.
sbt start
En el primer arranque a mí me ha dado un error indicando que debía añadir el parámetro -DapplyEvolutions.default=true a la configuración.
Editamos el fichero conf/application.conf y añadimos la línea que nos ha indicado:
-DapplyEvolutions.default=true
Volvemos a ejecutar la tarea sbt start y si todo va bien aparecerá por consola lo siguiente:
Play server process ID is 40221 [info] play - database [default] connected at jdbc:h2:file:play [info] play - Starting application default Akka system. [info] play - Application started (Prod) [info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
Abrimos en un navegador la url http://localhost:9000 y ahí tenemos Kafka web console arrancado.
4. Configuración
Antes de poder monitorizar nada debemos configurar la aplicación para indicarle los valores de instalación de Zookeeper.
Lógicamente con Zookeeper arrancado, probamos a conectarnos.
5. Monitorizar Kafka
Desde la opción ‘Brokers’ del menú de la izquierda vemos las instancias de Kafka arrancadas en la máquina:
Desde la opción ‘Topics’ del menú de la izquierda vemos los topics que hemos enviado a Kafka, la partición en la que están (por defecto se crean 2 particiones), el tamaño que ocupan los mensajes y el broker que los envió.
También podemos monitorizar la carga de mensajes que le llegan a Kafka. Esta herramienta crea consumers de todos los topics que se están manejando para monitorizar los mensajes que envían los productores.
Pinchando en el consumer vemos el número de mensajes emitidos y consumidos por segundo.
6. Conclusiones.
Un buen software de monitorización es muy necesario para estar tranquilos de que los sistemas funcionan correctamente y mucho más cuando trabajamos con aplicaciones que deben escalar con flujos de datos muy grandes.
Para monitorizar Kafka esta herramienta aporta bastante ya que de forma gráfica y visual podemos ver mucha información que de otra forma sería más complicado de tener.
Espero que te haya sido de ayuda.
Un saludo.
Juan
[…] Además, se integra fácilmente con otros servicios como por ejemplo el sistema de almacenamiento distribuido Apache Kafka (como podemos ver en los tutoriales Primeros pasos con Apache Kafka ó Monitorización de Apache Kafka. […]