tutorial partitions kafka example apache-kafka jmx

apache-kafka - example - kafka partitions



Habilitar JMX en Kafka Brokers (6)

Debe establecer la variable ''JMX_PORT'' o agregar la siguiente línea a bin / kafka-server-start.sh.

export JMX_PORT=${JMX_PORT:-9999}

entonces podrá conectarse a las métricas de Kafka JMX. Uso la herramienta jconsole y la dirección ''localhost: 9999''.

He habilitado JMX en los corredores Kafka agregando

`KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<server_IP> -Djava.net.preferIPv4Stack=true`“.

Sin embargo, cuando uso ''kafka.tools.JmxTool'' para obtener las métricas, se imprimen marcas de tiempo de Unix que no son el comportamiento esperado.

sh /usr/local/kafka/bin/kafka-run-class.sh kafka.tools.JmxTool -- object-name ''kafka.server:type=BrokerTopicMetrics,name=AllTopicsMessagesInPerSec'' --jmx-url service:jmx:rmi:///jndi/rmi://<server_IP>:9111/jmxrmi

El comando anterior imprime las marcas de tiempo de Unix. ¿Cómo puedo solucionar esto y hacer que imprima las métricas?


Edita bin / kafka-run-class.sh y configura la variable KAFKA_JMX_OPTS

KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=your.kafka.broker.hostname -Djava.net.preferIPv4Stack=true"

Actualice bin / kafka-server-start.sh agregue la siguiente línea

export JMX_PORT=PORT


La configuración de JMX_PORT dentro de bin/kafka-run-class.sh con Zookeeper, si está ejecutando Zookeeper en el mismo nodo. Lo mejor es configurar el puerto JMX individualmente dentro server-start scripts de server-start correspondientes:

  1. Inserte la línea “export JMX_PORT=${JMX_PORT:-9998}” antes de la última línea en el $KAFKA_HOME/bin/zookeeper-server-start.sh .
  2. Reinicie el servidor Zookeeper.
  3. Repita los pasos 1 y 2 para todos los nodos de zookeeper en el clúster.
  4. Inserte la línea “export JMX_PORT=${JMX_PORT:-9999}” antes de la última línea en el $KAFKA_HOME/bin/kafka-server-start.sh .
  5. Reinicie el corredor de Kafka.
  6. Repita los pasos 4 y 5 para todos los corredores en el clúster.

Si está ejecutando a través de systemd:

  1. edite /etc/systemd/system/multi-user.target.wants/kafka.service
  2. en la sección "[servicio]" agregue una línea:
    • Ambiente = JMX_PORT = 9989
  3. reload: systemctl daemon-reload
  4. reiniciar: systemctl restart kafka
  5. Disfruta los frijoles: echo ''beans'' | java -jar jmxterm-1.0-alpha-4-uber.jar -l localhost:9989 -n 2>&1 echo ''beans'' | java -jar jmxterm-1.0-alpha-4-uber.jar -l localhost:9989 -n 2>&1


vim kafka_2.11-0.10.1.1/bin/kafka-run-class.sh

y luego agregue las dos primeras líneas y comente como lo he hecho con otras líneas, (Nota: después de hacer esto, los scripts Kafka no se pueden usar para las operaciones del cliente para listar temas ... para las operaciones de su cliente, necesita usar scripts separados, vuelva a descargar en diferentes lugares y uso)

export JMX_PORT=9096 KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<ipaddress> -Dcom.sun.management.jmxremote.port=$JMX_PORT -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT" # JMX settings #if [ -z "$KAFKA_JMX_OPTS" ]; then # KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false " #fi # JMX port to use #if [ $JMX_PORT ]; then # KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT " #fi