天天看點

kafka-叢集搭建啟動kafka-eagle

叢集搭建

kafka-叢集搭建啟動kafka-eagle

配置設定三台Linux,用于安裝擁有三個節點的Kafka叢集。

linux141(192.168.181.141)

linux142(192.168.181.142)

linux144(192.168.181.144)

以上三台主機的/etc/hosts配置:

192.168.181.141-linux140

192.168.181.142-linux141

192.168.181.144-linux144

安裝zookeeper

# 解壓到/opt目錄
tar -zxf zookeeper-3.4.14.tar.gz -C /opt
# 配置
cd /opt/zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
# 設定
 12 dataDir=/var/data/zookeeper/data
 14 clientPort=2181
 29 server.1=192.168.181.141:2881:3881
 30 server.2=192.168.181.142:2881:3881
 31 server.3=192.168.181.144:2881:3881

           
  • 建立myid檔案
mkdir /var/data/zookeeper/data -p
vim myid
分别寫入1,2,3
           
  • 環境變量

    vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_261
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.14
export PATH=${ZOOKEEPER_HOME}/bin:$PATH
           

source /etc/profile

在三台Linux上啟動Zookeeper

zkServer.sh start
           
kafka-叢集搭建啟動kafka-eagle
  • 在三台Linux上檢視Zookeeper的狀态
zkServer.sh status
           
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle

Kafka叢集搭建

  • 解壓
tar -zxf kafka_2.12-1.0.2.tgz -C /opt
           
  • 配置環境變量

    vim /etc/profile

export KAFKA_HOME=/opt/kafka_2.12-1.0.2
export PATH=${KAFKA_HOME}/bin:$PATH
           
kafka-叢集搭建啟動kafka-eagle

source /etc/profile

  • 修改kafka中配置檔案
vim /opt/kafka_2.12-1.0.2/config/server.properties

           
  • 141
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://linux141:9092
log.dir=/var/data/kafka/kafka-logs
zookeeper.connect=192.168.181.141:2181,191.168.181.142:2181,192.168.181.144:2181/myKafka
           
  • 142
broker.id=1
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://linux142:9092
log.dir=/var/data/kafka/kafka-logs
zookeeper.connect=192.168.181.141:2181,191.168.181.142:2181,192.168.181.144:2181/myKafka
           
  • 142
broker.id=2
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://linux144:9092
log.dir=/var/data/kafka/kafka-logs
zookeeper.connect=192.168.181.141:2181,191.168.181.142:2181,192.168.181.144:2181/myKafka
           

啟動Kafka

3台機子上都運作

kafka-server-start.sh /opt/kafka_2.12-1.0.2/config/server.properties
           
  • 驗證Kafka
  • 141
    kafka-叢集搭建啟動kafka-eagle
  • 142
    kafka-叢集搭建啟動kafka-eagle
  • 144
    kafka-叢集搭建啟動kafka-eagle
zkCli.sh
# 檢視每個Broker的資訊
get /brokers/ids/0
get /brokers/ids/1
get /brokers/ids/2

           
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle

叢集監控

3.3.1 監控度量名額

Kafka使用Yammer Metrics在伺服器和Scala用戶端中報告名額。Java用戶端使用Kafka Metrics,

它是一個内置的度量标準系統資料庫,可最大程度地減少拉入用戶端應用程式的傳遞依賴項。兩者都通過

JMX公開名額,并且可以配置為使用可插拔的統計報告器報告統計資訊,以連接配接到您的監視系統。

具體的監控名額可以檢視官方文檔。

http://kafka.apache.org/10/documentation.html#monitoring

JMX

Kafka開啟Jmx端口

vim /opt/kafka_2.12-1.0.2/bin/kafka-server-start.sh
           
kafka-叢集搭建啟動kafka-eagle

所有kafka機器添加一個 JMX_PORT ,并重新開機kafka

驗證JMX開啟

首先列印9581端口占用的程序資訊,然後使用程序編号對應到Kafka的程序号,搞定

ss -nelp | grep 9581

kafka-叢集搭建啟動kafka-eagle

也可以檢視Kafka啟動日志,确定啟動參數 -Dcom.sun.management.jmxremote.port=9581存在即可

使用JConsole連結JMX端口

  1. win/mac,找到jconsole工具并打開, 在 ${JAVA_HOEM}/bin/

    Mac電腦可以直接指令行輸入 jconsole

kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle

相見官方文檔:http://kafka.apache.org/10/documentation.html#monitoring

這裡列出常用的

kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle

程式設計手段來擷取監控名額

監控工具 Kafka Eagle

可以使用Kafka-eagle管理Kafka叢集

核心子產品:

面闆可視化

主題管理,包含建立主題、删除主題、主題列舉、主題配置、主題查詢等

消費者應用:對不同消費者應用進行監控,包含Kafka API、Flink API、Spark API、Storm

API、Flume API、LogStash API等

叢集管理:包含對Kafka叢集和Zookeeper叢集的詳情展示,其内容包含Kafka啟動時間、

Kafka端口号、Zookeeper Leader角色等。同時,還有多叢集切換管理,Zookeeper Client操

作入口

叢集監控:包含對Broker、Kafka核心名額、Zookeeper核心名額進行監控,并繪制曆史趨勢

告警功能:對消費者應用資料積壓情況進行告警,以及對Kafka和Zookeeper監控度進行告

警。同時,支援郵件、微信、釘釘告警通知

系統管理:包含使用者建立、使用者角色配置設定、資源通路進行管理

架構:

可視化:負責展示主題清單、叢集健康、消費者應用等

采集器:資料采集的來源包含Zookeeper、Kafka JMX & 内部Topic、Kafka API(Kafka 2.x以

後版本)

資料存儲:目前Kafka Eagle存儲采用MySQL或SQLite,資料庫和表的建立均是自動完成的,

按照官方文檔進行配置好,啟動Kafka Eagle就會自動建立,用來存儲中繼資料和監控資料

監控:負責見消費者應用消費情況、叢集健康狀态

告警:對監控到的異常進行告警通知,支援郵件、微信、釘釘等方式

權限管理:對通路使用者進行權限管理,對于管理者、開發者、通路者等不同角色的使用者,配置設定

不用的通路權限

需要Kafka節點開啟JMX。

# 下載下傳編譯好的包
wget http://pkgs-linux.cvimer.com/kafka-eagle.zip
# 配置kafka-eagle
unzip kafka-eagle.zip
cd kafka-eagle/kafka-eagle-web/target
mkdir -p test
cp kafka-eagle-web-2.0.1-bin.tar.gz test/
tar xf kafka-eagle-web-2.0.1-bin.tar.gz
cd kafka-eagle-web-2.0.1
           

需要配置環境變量:

KE_HOME=

PATH=

conf下的配置檔案:system-config.properties

kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle

也可以自行編譯, https://github.com/smartloli/kafka-eagle

建立Eagel的存儲目錄: mkdir -p /hadoop/kafka-eagle

啟動kafka-eagle

./bin/ke.sh start

會提示我們登陸位址和賬号密碼

kafka-叢集搭建啟動kafka-eagle
kafka-叢集搭建啟動kafka-eagle