• Kafka监控系统Kafka Eagle:支持kerberos认证


    在线文档:https://ke.smartloli.org/

    作者博客:https://www.cnblogs.com/smartloli/p/9371904.html

    源码地址:https://github.com/smartloli/kafka-eagle

    源码编译:直接提供的脚本./build.sh或者直接执行脚本里面的命令mvn clean && mvn package -DskipTests

    编译结果:kafka-eaglekafka-eagle-web argetkafka-eagle-web-1.2.8-bin.tar.gz

    安装jdk,配置JAVA_HOME、KE_HOME(即kafka-eagle路径)。

    配置system-config.properties

    ######################################
    
    # multi zookeeper&kafka cluster list
    
    ######################################
    
    kafka.eagle.zk.cluster.alias=cluster1#,cluster2
    
    cluster1.zk.list=tdn1:2181,tdn2:2181,tdn3:2181
    
    #cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181
    
     
    
    ######################################
    
    # zk client thread limit
    
    ######################################
    
    kafka.zk.limit.size=25
    
     
    
    ######################################
    
    # kafka eagle webui port
    
    ######################################
    
    kafka.eagle.webui.port=8048
    
     
    
    ######################################
    
    # kafka offset storage
    
    ######################################
    
    cluster1.kafka.eagle.offset.storage=kafka
    
    #cluster2.kafka.eagle.offset.storage=zk
    
     
    
    ######################################
    
    # enable kafka metrics
    
    ######################################
    
    kafka.eagle.metrics.charts=true
    
    kafka.eagle.sql.fix.error=true
    
     
    
    ######################################
    
    # kafka sql topic records max
    
    ######################################
    
    kafka.eagle.sql.topic.records.max=5000
    
     
    
    ######################################
    
    # alarm email configure
    
    ######################################
    
    kafka.eagle.mail.enable=false
    
    kafka.eagle.mail.sa=alert_sa
    
    kafka.eagle.mail.username=alert_sa@163.com
    
    kafka.eagle.mail.password=mqslimczkdqabbbh
    
    kafka.eagle.mail.server.host=smtp.163.com
    
    kafka.eagle.mail.server.port=25
    
     
    
    ######################################
    
    # alarm im configure
    
    ######################################
    
    #kafka.eagle.im.dingding.enable=true
    
    #kafka.eagle.im.dingding.url=https://oapi.dingtalk.com/robot/send?access_token=
    
     
    
    #kafka.eagle.im.wechat.enable=true
    
    #kafka.eagle.im.wechat.url=https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=
    
    #kafka.eagle.im.wechat.touser=
    
    #kafka.eagle.im.wechat.toparty=
    
    #kafka.eagle.im.wechat.totag=
    
    #kafka.eagle.im.wechat.agentid=
    
     
    
    ######################################
    
    # delete kafka topic token
    
    ######################################
    
    kafka.eagle.topic.token=keadmin
    
     
    
    ######################################
    
    # kafka sasl authenticate
    
    ######################################
    
    kafka.eagle.sasl.enable=true
    
    kafka.eagle.sasl.protocol=SASL_PLAINTEXT
    
    kafka.eagle.sasl.mechanism=GSSAPI
    
     
    
    ######################################
    
    # kafka jdbc driver address
    
    ######################################
    
    kafka.eagle.driver=org.sqlite.JDBC
    
    kafka.eagle.url=jdbc:sqlite:/kafka-eagle/db/ke.db
    
    kafka.eagle.username=root
    
    kafka.eagle.password=root

    配置kafka_client_jaas.conf

    KafkaClient {
    
            com.sun.security.auth.module.Krb5LoginModule required
    
            useKeyTab=true
    
            storeKey=true
    
            keyTab="/etc/security/keytabs/kafka_client.keytab"
    
            principal="kafka-client-1@EXAMPLE.COM";
    
        };

    或者(确保本地有票据缓存 klist -l可查看)

    KafkaClient {
    
            com.sun.security.auth.module.Krb5LoginModule required
    
            useTicketCache=true
    
            renewTicket=true
    
            serviceName="kafka";
    
    };

    Kafka系统默认是没有开启JMX端口的,所以Kafka Eagle的监控趋势图默认采用不启用的方式,即kafka.eagle.metrics.charts=false。如果需要查看监控趋势图,需要开启Kafka系统的JMX端口,设置该端口在$KAFKA_HOME/bin/kafka-server-start.sh脚本中,设置内容如下:

     

    vi kafka-server-start.sh
    
     
    
    if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    
        export KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
    
        export JMX_PORT="9999"
    
        #export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
    
    fi

     

    需要注意的时,这里的端口不一定非要设置成9999,端口只有可用,均可。Kafka Eagle系统会自动获取这个JMX端口,采集结果如下:

     

    创建数据库

    sqlite3 /kafka-eagle/db/ke.db

    http://www.runoob.com/sqlite/sqlite-create-database.html

    chmod +x ke.sh

    ./ke.sh start

  • 相关阅读:
    Mapjoin和Reducejoin案例
    自定义InputFormat和OutputFormat案例
    shullfe机制详解
    辅助排序和Mapreduce整体流程
    Mapreduce的排序(全局排序、分区加排序、Combiner优化)
    Mapreduce中maptask过程详解
    Mapreduce的序列化和流量统计程序开发
    SpringCloud-熔断器
    Mybatis 之$与#
    限流算法
  • 原文地址:https://www.cnblogs.com/felixzh/p/10375708.html
Copyright © 2020-2023  润新知