配置kafkaManager監控SASL/PLAIN認證後的kafka集羣

    是否在夜晚仰望星空呢?細數那些閃亮的星星,是否感覺多了一顆,某顆星塵墜落在周圍角落,

散發着微光,想要幫你驅散掉周遭的黑暗。


準備工作

kafka集羣版本:0.11.0.0,(kafka_2.11-0.11.0.0)。

  • 配置SASL/PLAIN認證加固kafka集羣。

  • kafkamanager版本:kafka-manager-2.0.0.2。

  • kafka認證的客戶端jaas.conf配置文件。

  • 其中jaas.conf配置內容參考如下:

  
  
  
  1. KafkaClient {

  2. org.apache.kafka.common.security.plain.PlainLoginModule required

  3. username="hyq"

  4. password="hyqpass";

  5. };

修改kafka-server-start.sh腳本
  • 加入JMXPORT。export JMXPORT="9999",如下:

  
  
  
  1. if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then

  2. export KAFKA_HEAP_OPTS="-Xmx16G -Xms16G"

  3. export JMX_PORT="9999"

  4. fi

  • 修改kafka-run-class.sh腳本

    • 在JMX設置項中加入:-Djava.rmi.server.hostname=yourip。如下:

  
  
  
  1. # JMX settings

  2. if [ -z "$KAFKA_JMX_OPTS" ]; then

  3. KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=當前kafka節點的ip地址 "

  4. fi

修改manager配置並啓動
  • 修改application.conf配置

    • 設置zk集羣的地址。

    • 設置manager界面認證的賬號和密碼

  
  
  
  1. kafka-manager.zkhosts="ip1:port1,ip2:port2,ip3:port3"

  2. basicAuthentication.username="hyq"

  3. basicAuthentication.password="password"

  • 啓動

  • 啓動時,指定加載jaas配置

  
  
  
  1. bin/kafka-manager -Djava.security.auth.login.config=/path/to/my-jaas.conf

界面配置認證
  • 設置Security Protocol爲SASL_PLAINTEXT

  • 設置SASL Mechanism爲PLAIN

  • 設置SASL JAAS Config 爲:

  
  
  
  1. org.apache.kafka.common.security.plain.PlainLoginModule required username='hyq' password='hyqpass';

疑難解答
  • 先前一直疑惑,在jaas.conf中配置的是SASLPLAINTEXT ,爲什麼報錯PLAINTEXT找不到,原來是manager界面上默認配置的就是這個,需要在界面上手動修改爲SASLPLAINTEXT.

  
  
  
  1. java.util.NoSuchElementException: key not found: PLAINTEXT

  • jmx默認去連接127.0.0.1導致連接被拒絕,需要在kafka-run-class.sh腳本中配置中加入:-Djava.rmi.server.hostname=yourip。

  
  
  
  1. Failed to connect to service:jmx:rmi:///jndi/rmi://ip:9999/jmxrmi

  2. java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:

  3. java.net.ConnectException: Connection refused

  • 界面配置jaas config時,記得最後加上分號(;),並且用戶名密碼使用單引號。如:org.apache.kafka.common.security.plain.PlainLoginModule required username='hyq' password='hyqpass';

  
  
  
  1. Caused by: java.lang.IllegalArgumentException: Value not specified for key 'null' in JAAS config


本文分享自微信公衆號 - 俠夢的開發筆記(xmdevnote)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章