Pulsar Manager

Pulsar Manager 是一个网页式可视化管理与监测工具,支持多环境下的动态配置。可用于管理和监测租户、命名空间、topic、订阅、broker、集群等。

Note
If you monitor your current stats with Pulsar dashboard, you can try to use Pulsar Manager instead. Pulsar dashboard 已弃用。

安装

Docker 容器中运行是使用 Pulsar Manager 最简单的方法。

  1. docker pull apachepulsar/pulsar-manager:v0.2.0
  2. docker run -it \
  3. -p 9527:9527 -p 7750:7750 \
  4. -e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \
  5. apachepulsar/pulsar-manager:v0.2.0
  • SPRING_CONFIGURATION_FILE: Spring 默认使用的配置文件

设置管理员账户和密码

  1. CSRF_TOKEN=$(curl http://localhost:7750/pulsar-manager/csrf-token)
  2. curl \
  3. -H 'X-XSRF-TOKEN: $CSRF_TOKEN' \
  4. -H 'Cookie: XSRF-TOKEN=$CSRF_TOKEN;' \
  5. -H "Content-Type: application/json" \
  6. -X PUT http://localhost:7750/pulsar-manager/users/superuser \
  7. -d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}'

你能在 Docker Hub 找到这个 docker 镜像,这个镜像是基于下面的源码构建的:

  1. git clone https://github.com/apache/pulsar-manager
  2. cd pulsar-manager/front-end
  3. npm install --save
  4. npm run build:prod
  5. cd ..
  6. ./gradlew build -x test
  7. cd ..
  8. docker build -f docker/Dockerfile --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`latest` --build-arg VERSION=`latest` -t apachepulsar/pulsar-manager .

使用自定义数据库

如有大量数据,则可以使用自定义数据库。 使用 PostgreSQL 的示例如下:

  1. 使用 file 初始化数据库和表结构。

  2. 修改 配置文件 并配置 PostgreSQL。

  1. spring.datasource.driver-class-name=org.postgresql.Driver
  2. spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/pulsar_manager
  3. spring.datasource.username=postgres
  4. spring.datasource.password=postgres
  1. 进行编译,生成一个新的可执行 jar 包。
  1. ./gradlew build -x test

启用 JWT 认证

启用 JWT 认证,需配置以下参数:

  • backend.jwt.token:超级用户令牌(token)。 需要在集群初始化时配置此参数。
  • jwt.broker.token.mode:生成令牌的多个模式,包括PUBLIC、PRIVATE 和 SECRET。
  • jwt.broker.public.key:如果使用 PUBLIC 模式则配置该选项。
  • jwt.broker.private.key:如果使用 PRIVATE 模式则配置该选项。
  • jwt.broker.secret.key:如果使用 SECRET 模式则配置该选项。

更多详细信息,参阅 Pulsar token 认证管理

可通过以下方式启用 JWT 认证。

  • 方法 1:使用命令行工具
  1. wget https://dist.apache.org/repos/dist/release/pulsar/pulsar-manager/apache-pulsar-manager-0.2.0/apache-pulsar-manager-0.2.0-bin.tar.gz
  2. tar -zxvf apache-pulsar-manager-0.2.0-bin.tar.gz
  3. cd pulsar-manager
  4. tar -zxvf pulsar-manager.tar
  5. cd pulsar-manager
  6. cp -r ../dist ui
  7. ./bin/pulsar-manager --redirect.host=http://localhost --redirect.port=9527 insert.stats.interval=600000 --backend.jwt.token=token --jwt.broker.token.mode=PRIVATE --jwt.broker.private.key=file:///path/broker-private.key --jwt.broker.public.key=file:///path/broker-public.key

首先,设置管理员账户和密码

然后,通过 http://localhost:7750/ui/index.html 登录到 Pulsar manager。

  • 方法 2:配置 application.properties 文件
  1. backend.jwt.token=token
  2. jwt.broker.token.mode=PRIVATE
  3. jwt.broker.public.key=file:///path/broker-public.key
  4. jwt.broker.private.key=file:///path/broker-private.key
  5. or
  6. jwt.broker.token.mode=SECRET
  7. jwt.broker.secret.key=file:///path/broker-secret.key
  • 方法3:使用Docker,并启用 Token 认证。
  1. export JWT_TOKEN="your-token"
  2. docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e REDIRECT_PORT=9527 -e DRIVER_CLASS_NAME=org.postgresql.Driver -e URL='jdbc:postgresql://127.0.0.1:5432/pulsar_manager' -e USERNAME=pulsar -e PASSWORD=pulsar -e LOG_LEVEL=DEBUG -e JWT_TOKEN=$JWT_TOKEN -v $PWD:/data apachepulsar/pulsar-manager:v0.2.0 /bin/sh
  • JWT_TOKEN: 超级用户对 broker 配置的 token。 它由bin/pulsar tokens create --secret-key或者bin/pulsar tokens create --private-key命令创建。

  • REDIRECT_HOST: 前端服务器的 IP 地址。

  • REDIRECT_PORT: 前端服务器的端口。

  • DRIVER_CLASS_NAME: PostgreSQL 数据库的驱动类名称。

  • URL: PostgreSQL 数据库的 JDBC URL, 例如 jdbc:postgresql://127.0.0.1:5432/pulsar_manager。 Docker 镜像会自动拉起本地的 PostgresSQL 数据库实例。

  • USERNAME: PostgreSQL 的用户名。

  • PASSWORD: PostgreSQL 的密码。

  • LOG_LEVEL: 日志级别。

  • 方法 4:使用 Docker,通过私钥和公钥进行 token 认证token 管理

  1. export JWT_TOKEN="your-token"
  2. export PRIVATE_KEY="file:///pulsar-manager/secret/my-private.key"
  3. export PUBLIC_KEY="file:///pulsar-manager/secret/my-public.key"
  4. docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e REDIRECT_PORT=9527 -e DRIVER_CLASS_NAME=org.postgresql.Driver -e URL='jdbc:postgresql://127.0.0.1:5432/pulsar_manager' -e USERNAME=pulsar -e PASSWORD=pulsar -e LOG_LEVEL=DEBUG -e JWT_TOKEN=$JWT_TOKEN -e PRIVATE_KEY=$PRIVATE_KEY -e PUBLIC_KEY=$PUBLIC_KEY -v $PWD:/data -v $PWD/secret:/pulsar-manager/secret apachepulsar/pulsar-manager:v0.2.0 /bin/sh
  • JWT_TOKEN: 超级用户对 broker 配置的 token。 它是由bin/pulsar tokens create --private-key命令创建的。

  • PRIVATE_KEY:私有 key 在容器内的挂载路径,它是由bin/pulsar tokens create-key-pair命令创建的。

  • PUBLIC_KEY: 公有 key 在容器内的挂载路径,它是由bin/pulsar tokens create-key-pair命令创建的。

  • $PWD/secret: 由 bin/pulsar tokens create-key-pair 命令生成的私钥和公钥所在的本地目录。

  • REDIRECT_HOST: 前端服务器的 IP 地址。

  • REDIRECT_PORT: 前端服务器的端口。

  • DRIVER_CLASS_NAME: PostgreSQL 数据库的驱动类名称。

  • URL: PostgreSQL 数据库的 JDBC URL, 例如 jdbc:postgresql://127.0.0.1:5432/pulsar_manager。 Docker 镜像会自动拉起本地的 PostgresSQL 数据库实例。

  • USERNAME: PostgreSQL 的用户名。

  • PASSWORD: PostgreSQL 的密码。

  • LOG_LEVEL: 日志级别。

  • 方法 5:使用 Docker,通过密钥进行 token 认证token 管理

  1. export JWT_TOKEN="your-token"
  2. export SECRET_KEY="file:///pulsar-manager/secret/my-secret.key"
  3. docker run -it -p 9527:9527 -p 7750:7750 -e REDIRECT_HOST=http://localhost -e REDIRECT_PORT=9527 -e DRIVER_CLASS_NAME=org.postgresql.Driver -e URL='jdbc:postgresql://127.0.0.1:5432/pulsar_manager' -e USERNAME=pulsar -e PASSWORD=pulsar -e LOG_LEVEL=DEBUG -e JWT_TOKEN=$JWT_TOKEN -e SECRET_KEY=$SECRET_KEY -v $PWD:/data -v $PWD/secret:/pulsar-manager/secret apachepulsar/pulsar-manager:v0.2.0 /bin/sh
  • JWT_TOKEN: 超级用户对 broker 配置的 token。 它是由bin/pulsar tokens create --secret-key命令生成的。

  • PUBLIC_KEY: secret key 在容器内的挂载路径,它是由bin/pulsar tokens create-secret-pair命令创建的。

  • $PWD/secret: 由 bin/pulsar tokens create-secret-key 命令生成的 secret key 的本地目录。

  • REDIRECT_HOST: 前端服务器的 IP 地址。

  • REDIRECT_PORT: 前端服务器的端口。

  • DRIVER_CLASS_NAME: PostgreSQL 数据库的驱动类名称。

  • URL: PostgreSQL 数据库的 JDBC URL, 例如 jdbc:postgresql://127.0.0.1:5432/pulsar_manager。 Docker 镜像会自动拉起本地的 PostgresSQL 数据库实例。

  • USERNAME: PostgreSQL 的用户名。

  • PASSWORD: PostgreSQL 的密码。

  • LOG_LEVEL: 日志级别。

  • 了解更多后台配置信息,点击这里

  • 了解更多前台配置信息,点击这里

登录

设置管理员账号和密码

访问 http://localhost:9527 进行登录。