bin / kafka-run-class.sh: строка 304 :: Нет такого файла или каталога при запуске zookeeper с экспортером JMX prometheus - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь запустить zookeeper с помощью kafka_2.12_2.2.0.

При нормальном запуске все работает нормально.

Я хочу экспортировать метрики zookeeper с помощью JMX-экспортера prometheus.

У меня есть jmx_prometheus_javaagent-0.11.0.jar и zookeeper.yaml в каталоге /home/vagrant/prometheus.

/home/vagrant/prometheus/zookeeper.yaml содержимое -

    $ cat /home/vagrant/prometheus/zookeeper.yaml 
    rules:
    # replicated Zookeeper
    - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+)><>(\\w+)"
        name: "zookeeper_$2"
    - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+)><>(\\w+)"
        name: "zookeeper_$3"
        labels:
        replicaId: "$2"
    - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+)><>(\\w+)"
        name: "zookeeper_$4"
        labels:
        replicaId: "$2"
        memberType: "$3"
    - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+), name3=(\\w+)><>(\\w+)"
        name: "zookeeper_$4_$5"
        labels:
        replicaId: "$2"
        memberType: "$3"
    # standalone Zookeeper
    - pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+)><>(\\w+)"
        name: "zookeeper_$2"
    - pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+), name1=InMemoryDataTree><>(\\w+)"
        name: "zookeeper_$2"

/etc/init.d/zookeeper содержимое файла -

    #!/bin/bash
    #/etc/init.d/zookeeper
    DAEMON_PATH=/home/vagrant/kafka/bin
    DAEMON_NAME=zookeeper
    # Check that networking is up.
    #[ ${NETWORKING} = "no" ] && exit 0

    PATH=$PATH:$DAEMON_PATH
    export PROM_HOME=/home/vagrant/prometheus
    export EXTRA_ARGS="-javaagent:$PROM_HOME/jmx_prometheus_javaagent-0.11.0.jar=8080:$PROM_HOME/zookeeper.yaml"
    # See how we were called.
    case "$1" in
    start)
            # Start daemon.
            pid=`ps ax | grep -i 'org.apache.zookeeper' | grep -v grep | awk '{print $1}'`
            if [ -n "$pid" ]
            then
                echo "Zookeeper is already running";
            else
            echo "Starting $DAEMON_NAME";
            echo "DAEMON_PATH is $DAEMON_PATH"
            $DAEMON_PATH/zookeeper-server-start.sh -daemon /home/vagrant/kafka/config/zookeeper.properties
            fi
            ;;
    stop)
            echo "Shutting down $DAEMON_NAME";
            $DAEMON_PATH/zookeeper-server-stop.sh
            ;;
    restart)
            $0 stop
            sleep 2
            $0 start
            ;;
    status)
            pid=`ps ax | grep -i 'org.apache.zookeeper' | grep -v grep | awk '{print $1}'`
            if [ -n "$pid" ]
            then
            echo "Zookeeper is Running as PID: $pid"
            else
            echo "Zookeeper is not Running"
            fi
            ;;
    *)
            echo "Usage: $0 {start|stop|restart|status}"
            exit 1
    esac

    exit 0

когда я раскомментирую следующие 2 строки в /etc/init.d/zookeeper, тогда он будет работать нормально.

export PROM_HOME = / home / vagrant / prometheus export EXTRA_ARGS = "- javaagent: $ PROM_HOME / jmx_prometheus_javaagent-0.11.0.jar = 8080: $ PROM_HOME / zookeeper.yaml "

В противном случае я получаю следующую ошибку -

    $ sudo service zookeeper start
    Starting zookeeper
    DAEMON_PATH is /home/vagrant/kafka/bin
    [vagrant@localhost ~]$ /home/vagrant/kafka/bin/kafka-run-class.sh: line 304: : No such file or directory

Ниже приведены другие мои детали -

    $ java -version
    java version "1.8.0_211"
    Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

Переменная JAVA_HOME env -

    $ echo $JAVA_HOME
    /usr/java/latest

Сведения об ОС -

    $ cat /etc/os-release 
    NAME="CentOS Linux"
    VERSION="7 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    PRETTY_NAME="CentOS Linux 7 (Core)"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:7"
    HOME_URL="https://www.centos.org/"
    BUG_REPORT_URL="https://bugs.centos.org/"

    CENTOS_MANTISBT_PROJECT="CentOS-7"
    CENTOS_MANTISBT_PROJECT_VERSION="7"
    REDHAT_SUPPORT_PRODUCT="centos"
    REDHAT_SUPPORT_PRODUCT_VERSION="7"

Как решить эту проблему и успешно экспортировать метрики JMX для zookeeper?

...