web-dev-qa-db-fra.com

Activer JMX sur les courtiers Kafka

J'ai activé JMX sur les courtiers Kafka en ajoutant 

    `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`“. 

Cependant, lorsque j’utilise «kafka.tools.JmxTool» pour obtenir les métriques, il génère des horodatages Unix qui ne correspondent pas au comportement attendu. 

    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

La commande ci-dessus imprime des horodatages Unix. Comment puis-je résoudre ce problème et le faire imprimer les métriques?

16
sui

Éditez bin/kafka-run-class.sh et définissez 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"

Mettre à jour bin/kafka-server-start.sh ajouter la ligne ci-dessous

export JMX_PORT=PORT
15
chandramohan

Vous devez définir la variable 'JMX_PORT' ou ajouter la ligne suivante à bin/kafka-server-start.sh.

export JMX_PORT=${JMX_PORT:-9999}

vous pourrez alors vous connecter aux métriques Kafka JMX. J'utilise jconsole tool et l'adresse 'localhost: 9999'.

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

puis ajoutez les deux premières lignes et le commentaire comme je l'ai fait pour les autres lignes (Remarque: après cela, les scripts Kafka ne peuvent plus être utilisés pour les opérations client. dans différents endroits et utilisation)

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
2
supermonk

La définition de JMX_PORT dans bin/kafka-run-class.sh entrera en conflit avec Zookeeper si vous exécutez Zookeeper sur le même nœud . Le mieux est de définir le port JMX individuellement dans les scripts server-start correspondants:

  1. Insère la ligne “export JMX_PORT=${JMX_PORT:-9998}” avant la dernière ligne du fichier $KAFKA_HOME/bin/zookeeper-server-start.sh.
  2. Redémarrez le serveur Zookeeper.
  3. Répétez les étapes 1 et 2 pour tous les nœuds de zookeeper du cluster.
  4. Insère la ligne “export JMX_PORT=${JMX_PORT:-9999}” avant la dernière ligne du fichier $KAFKA_HOME/bin/kafka-server-start.sh.
  5. Redémarrez le courtier Kafka.
  6. Répétez les étapes 4 et 5 pour tous les courtiers du cluster.
2
Rahul Singhai

Si vous utilisez via systemd:

  1. edit /etc/systemd/system/multi-user.target.wants/kafka.service
  2. dans la section "[service]" ajoutez une ligne:
    • Environment = JMX_PORT = 9989
  3. recharger: systemctl daemon-reload
  4. redémarrer: systemctl restart kafka
  5. profiter des haricots: echo 'beans' | Java -jar jmxterm-1.0-alpha-4-uber.jar -l localhost:9989 -n 2>&1
1
ethrbunny

Utilisez kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec

Le préfixe AllTopics a été utilisé dans les versions antérieures. Vous pouvez spécifier un sujet en utilisant kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec,topic=<topic-name>

src: http://grokbase.com/t/kafka/users/164ksnhff0/enable-jmx-on-kafka-brokers

0
AndyTheEntity