Linkedin Cruise Control安装

背景

        一直在寻找开源好用的kafka管理平台,也一直没找到,从第一次用kafka到现在差不多快四年了,0.8和0.8之后的管理方式有些变化,导致一些老的kafka管理平台并没有跟上变化,这个阶段我的目标一直仅限于kafka的普通管理,直到Cruise Control的开源,看看官方的介绍:

  • Resource utilization tracking for brokers, topics, and partitions.
  • Multi-goal rebalance proposal generation for:

            Rack-awareness

            Resource capacity violation checks (CPU, DISK, Network I/O)

            Resource utilization balance (CPU, DISK, Network I/O)

            Leader traffic distribution

            Replica distribution for topics

            Global replica distribution

            Custom goals that you wrote and plugged in

  • Anomaly detection and alerting for the Kafka cluster, including:

            Goal violation

            Broker failure detection

  • Admin operations, including:

            Add brokers

            Decommission brokers

            Rebalance the cluster

        看完上面的介绍有木有很激动,看起来很NB,老外就喜欢吹NB,还都给实现了。网上能找到的关于Cruise Control的介绍基本上都来自于Open Sourcing Kafka Cruise Control这篇文章的翻译,除此之外的介绍就很少了。开始吃螃蟹......

 

架构

项目

        github地址:here

            ps:本来以为我够激进了,想不到只支持0.10.0以后的版本,看来也是刚出来没多久,等着大家一起当小白鼠

编译

        下载源码(host3)

cd /opt/programs/
git clone https://github.com/linkedin/cruise-control.git

        安装jdk

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

        设置aliyun的gradle

            在当前家目录创建$USER_HOME/.gradle/init.gradle文件

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                    remove repo
                }
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}

                ps:不改gradlew的源为国内源,你会崩溃的....

        编译软件

cd /opt/programs/cruise-control
./gradlew jar

软件

        如果按照本文的操作,会在/opt/programs/cruise-control/cruise-control-metrics-reporter/build/libs目录下面生成cruise-control-metrics-reporter.jar文件,需要把这个文件拷贝到你所有kafak broker的lib目录下面

配置

        jar文件添加

            拷贝cruise-control-metrics-reporter.jar到kafka集群中所有kafka broker的lib目录下。

        server.properties配置修改

            修改kafka集群中所有kafka broker的server.properties文件

metric.reporters=com.linkedin.kafka.cruisecontrol.metricsreporter.CruiseControlMetricsReporter
auto.create.topics.enable=true

        cruisecontrol.properties修改

            修改cruise control中config/cruisecontrol.properties文件

bootstrap.servers=host1:9092,host2:9092,host3:9092
zookeeper.connect=host1:2181,host2:2181,host3:2181

                ps:其他配置不用修改,只需要修改上面两项

        拷贝jar的依赖

cd /opt/programs/cruise-control
./gradlew jar copyDependantLibs

        手动创建__CruiseControlMetrics

kafka-topics --create --replication-factor 2 --partitions 3 --zookeeper host1:2181,host2:2181,host3:2181 --topic __CruiseControlMetrics

        ps:必须手动创建,并不会像官方说的自动创建的

启动

cd /opt/programs/cruise-control
./kafka-cruise-control-start.sh -daemon ./config/cruisecontrol.properties

访问

        访问http://host3:9090/kafkacruisecontrol/state

转载于:https://my.oschina.net/guol/blog/1506262

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值