kafka集群每次启动都需要登录多台服务器操作,比较麻烦,安装了一个批量管理工具pssh,配置了ssh免秘钥登录,写了一个简单的shell脚本方便日常的批量启动、关闭操作。

[root@kafka1 ~]# cat /usr/local/kafka/bin/kafka-daemons.sh 
#!/bin/bash 
#kafka start stop 
#date 2020.03.07



###########################
#[root@kafka1 ~]# cat /root/khost.txt 
#192.168.180.21
#192.168.180.22
#192.168.180.23
#三台主机配置ssh免秘钥



function zookeeper_start(){
pssh -h khost.txt -i zkServer.sh start
sleep 5
pssh -h khost.txt -i jps
}

function zookeeper_stop(){
pssh -h khost.txt -i zkServer.sh stop
sleep 5
pssh -h khost.txt -i jps
}

function zookeeper_status(){
pssh -h khost.txt -i zkServer.sh status
}

function kafka_start(){
pssh -h khost.txt -i kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
sleep 5
pssh -h khost.txt -i jps
}

function kafka_stop(){
pssh -h khost.txt -i kafka-server-stop.sh
sleep 5
pssh -h khost.txt -i jps
}

function kafka_status(){
pssh -h khost.txt -i jps 
}





echo -e "[1] start zookeeper 
[2] stop zookeeper
[3] status zookeeper
[4] start kafka
[5] stop kafka
[6] status kafka
"
read -p "please input install servers[1]|[2]|[3]|[4]|[5]|[6]|:" server_s
case $server_s in
    1)
    read -p "Please confirm your input [yes]:" confirm
        case $confirm in
            yes|YES|YEs|yEs|yeE)
                zookeeper_start
                    ;;
                    *)
                    exit
        esac
    ;;
    2)
    read -p "Please confirm your input [yes]:" confirm
               case $confirm in
                        yes|YES|YEs|yEs|yeE)
                               zookeeper_stop
                                        ;;
                                        *)
                                        exit
        esac
    ;;
    3)
     read -p "Please confirm your input [yes]:" confirm
                case $confirm in
                        yes|YES|YEs|yEs|yeE)
                               zookeeper_status
                                        ;;
                                        *)
                                        exit
        esac
    ;;
        4)
    read -p "Please confirm your input [yes]:" confirm
               case $confirm in
                        yes|YES|YEs|yEs|yeE)
                               kafka_start
                                        ;;
                                        *)
                                        exit
        esac
    ;;
        5)
    read -p "Please confirm your input [yes]:" confirm
               case $confirm in
                        yes|YES|YEs|yEs|yeE)
                               kafka_stop
                                        ;;
                                        *)
                                        exit
        esac
    ;;
        6)
    read -p "Please confirm your input [yes]:" confirm
               case $confirm in
                        yes|YES|YEs|yEs|yeE)
                               kafka_status
                                        ;;
                                        *)
                                        exit
        esac
    ;;
    *)
    echo -e "\033[32;1m please input start or stop servers[1]|[2]|[3]|[4]|[5]|[6]!!!\033[0m"
    exit
esac


添加脚本的执行权限

[root@kafka1 ~]# chmod 755 /usr/local/kafka/bin/kafka-daemons.sh

启动zookeeper

启动kafka