2016-04-19 23 views
9

मैंकाफ्का दलाल

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

जोड़ने हालांकि, जब मैं का उपयोग करें 'kafka.tools.JmxTool' मीट्रिक प्राप्त करें द्वारा काफ्का दलालों पर JMX सक्षम पर JMX सक्षम है, यह यूनिक्स समय टिकटों जो की उम्मीद नहीं कर रहे हैं आउटपुट व्यवहार।

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 

उपरोक्त आदेश यूनिक्स टाइम टिकटों को प्रिंट करता है। मैं इसे कैसे ठीक कर सकता हूं और इसे मेट्रिक्स प्रिंट कर सकता हूं?

उत्तर

0

उपयोग kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec

AllTopics उपसर्ग बड़े verions में इस्तेमाल किया गया था। आप विषय का उपयोग कर kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec,topic=<topic-name>

src निर्दिष्ट कर सकते हैं: http://grokbase.com/t/kafka/users/164ksnhff0/enable-jmx-on-kafka-brokers

3

आप JMX_PORT 'चर सेट करना होगा या bin/kafka-server-start.sh में निम्न पंक्ति जोड़ें।

export JMX_PORT=${JMX_PORT:-9999} 

तो आप काफ्का जेएमएक्स मेट्रिक्स से कनेक्ट करने में सक्षम होंगे। मैं jconsole उपकरण और 'localhost: 9999' पता का उपयोग करता हूं।

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

और फिर पहले दो पंक्तियाँ जोड़ें और टिप्पणी के रूप में मैं अन्य लाइनों के लिए किया है, (नोट: इस काफ्का लिपियों करने के बाद विषयों .. लिस्टिंग अपने ग्राहक के संचालन के लिए के लिए ग्राहक के संचालन के लिए नहीं किया जा सकता कि आप की जरूरत है एक अलग स्क्रिप्ट का उपयोग, विभिन्न स्थानों और उपयोग)

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 
+4

सही विचार, गलत कार्यान्वयन। आप सही हैं कि आपको अन्य जेएमएक्स जेवीएम तर्क सेट करने की आवश्यकता हो सकती है, लेकिन आपको स्क्रिप्ट का आविष्कार करने से पहले उन चर को सेट करना चाहिए, स्क्रिप्ट को स्वयं संशोधित न करें। आप रखरखाव सिरदर्द के लिए खुद को स्थापित कर रहे हैं। – Tim

4

संपादित करें bin/kafka-run-class.sh में फिर से डाउनलोड करने और सेट 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" 

अद्यतन bin/ka fka-server-start.sh नीचे लाइन

export JMX_PORT=PORT 
0

JMX_PORTbin/kafka-run-class.sh अंदर की स्थापना, चिड़ियाघर संचालक के साथ संघर्ष होगा यदि आप एक ही नोड पर चल रहे हैं Zookeeper जोड़ें। $KAFKA_HOME/bin/zookeeper-server-start.sh फ़ाइल में

  1. सम्मिलित लाइन “export JMX_PORT=${JMX_PORT:-9998}” अंतिम पंक्ति से पहले: बेस्ट server-start लिपियों इसी के अंदर अलग-अलग JMX बंदरगाह स्थापित करने के लिए है।
  2. जुकीपर सर्वर को पुनरारंभ करें।
  3. क्लस्टर में सभी ज़ूकीपर नोड्स के लिए चरण 1 और 2 दोहराएँ।
  4. $KAFKA_HOME/bin/kafka-server-start.sh फ़ाइल में अंतिम पंक्ति से पहले लाइन “export JMX_PORT=${JMX_PORT:-9999}” डालें।
  5. कफ्का ब्रोकर को पुनरारंभ करें।
  6. क्लस्टर में सभी ब्रोकरों के लिए चरण 4 और 5 दोहराएँ।
संबंधित मुद्दे