lsyf8 发表于 2019-1-31 08:50:01

Zookeeper集群 + Kafka集群 + KafkaOffsetMonitor 监控

一、Zookeeper

      ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
      ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
  zookeeper集群以奇数做集群;
  zookeeper1 10.207.101.100 21811
  zookeeper2 10.207.101.100 21812
  zookeeper3 10.207.101.100 21813
  1、下载地址:

  http://mirrors.hust.edu.cn/apache/zookeeper/
  2、安装配置 ;
  # tar -xf zookeeper-3.4.9.tar.gz
  # mv zookeeper-3.4.9/ zookeeper
  zookeeper/conf目录,输入命令 cp -rp zoo_sample.cfg zoo.cfg
  zookeeper目录,新建子目录data和logs,
  # mkdir -p /opt/{data/{21811,21812,21813},logs{21811,21812,21813}}
  3、zoo.conf 配置如下:
  (单点配置 其余节点配置更改port data logs不同)
  # vim zoo.cfg
  tickTime=2000
  # Client - server 通信心跳时间
  

  initLimit=10
  # leader-follower 初始链接时能容忍的最多心跳数;
  

  syncLimit=5
  # follower 服务器和人leade 服务器 之间请求和应答之间能容忍的最多心跳数;
  

  dataDir=/opt/server/zookeeper/data/21811
  dataLogDir=/opt/server/zookeeper/logs/212812
  clientPort=21811
  server.1=zoo1:28881:38881
  server.2=zoo2:28882:38882
  server.3=zoo3:28883:38883
  4、启动:zookeeper (配置目录)

  bin/zkServer.sh start
  5、链接测试
  bin/zkCli.sh -server 127.0.0.1:21811
  bin/zkCli.sh -server 127.0.0.1:21812
  bin/zkCli.sh -server 127.0.0.1:21813
  

二、kafka
    Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。    Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。通过集群来提供实时的消费;
  kafka1 10.207.101.100 90921
  Kafka2 10.207.101.100 90921
  kafka3 10.207.101.100 90921
  prot:90921/90922/90923
  1、下载安装:
  https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.1.1/kafka_2.11-0.10.1.1.tgz
  # mkdir -p /opt/kafka/logs{90921,90922,90923}
  2、配置文件(单点配置 其余节点配置更改port data logs不同)
  vimconfig/server.properties
  broker.id=1
  # broker 标识
  

  listeners=PLAINTEXT://10.207.101.100:90921
  #listeners一定要配置成为IP地址;如果配置为localhost或服务器的hostname,在使用java发送数据时就会抛出异 ;也可以设置hostname
  

  log.dirs= /opt/kafka/logs/90921
  # kafka 数据存放目录

  

  zookeeper.connect=10.207.101.100:21811,10.207.101.100:21812,10.207.101.100:21813
  # zookeeper 链接串
  

  3、Kafka环境变量
  cat /etc/profile
  export KAFKA_HEAP_OPTS="-Xms30g -Xmx30g -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -XX:InitiatingHeapOccupancyPercent=45"
  (设置根据硬件资源和系统资源本机测试环境都是64核256G8TSSD)
   4、启动
  nohup bin/kafka-start.sh config/server.properties >/dev/null 2>&1 &
  

三、 kafak 集群监控
  1、kafka-monitor
  监测Kafka集群状态
  Topic、Consumer Group列表
  图形化展示topic和consumer之间的关系
  图形化展示consumer的Offset、Lag等信息
  2、kafka offset monitor
  KafkaOffsetMonitor:程序一个jar包的形式运行,部署较为方便。只有监控功能,使用起来也较为安全。
  3、本文示例使用kafka offset monitor 进行监控
  https://github.com/quantifind/KafkaOffsetMonitor
  下载解压缩执行:
  执行格式:
  java -cp KafkaOffsetMonitor-assembly-0.2.1.jar \
     com.quantifind.kafka.offsetapp.OffsetGetterWeb \
     --offsetStorage kafka \
     --zk zk-server1,zk-server2 \
     --port 8899 \
     --refresh 10.seconds \
     --retain 2.days
  注:

  offsetStorage目前只支持kaka,zk按照host1:port1,host2:port2…的格式去写即可,port为开启web界面的端口号可自定义,refresh为刷新时间,retain为数据保留时间(单位seconds, minutes, hours, days)。
  4、设置shell启动示例:
  # cat start.sh
  # !/bin/sh
  echo "KafkaOffsetMonitor starting"
  nohup java -cp KafkaOffsetMonitor-assembly-0.3.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --offsetStorage kafka --zk zoo1:21811,zoo2:21812,zoo3:21813 --port 8090 --refresh 10.seconds --retain 1.days > /dev/null 2>&1 &
   5、kafka-monitor测试访问:
  http://10.207.101.100:8899/#/clusterviz
  




页: [1]
查看完整版本: Zookeeper集群 + Kafka集群 + KafkaOffsetMonitor 监控