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. 修改 configuration file 并配置 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 for the superuser. 需要在集群初始化时配置此参数。
  • jwt.broker.token.mode: multiple modes of generating token, including PUBLIC, PRIVATE, and SECRET.
  • jwt.broker.public.key: configure this option if you use the PUBLIC mode.
  • jwt.broker.private.key: configure this option if you use the PRIVATE mode.
  • jwt.broker.secret.key: configure this option if you use the SECRET mode.

更多详细信息,参阅 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. 镜像启动的时候会自动拉起本地的 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-si 命令在本地生成的私钥和公钥的目录。

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

  • REDIRECT_PORT: 前端服务的端口。

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

  • URL: PostgreSQL 数据库的 JDBC URL, 例如 jdbc:postgresql://127.0.0.1:5432/pulsar_manager. 镜像启动的时候会自动拉起本地的 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-si 命令在本地生成的 secret key 的目录。

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

  • REDIRECT_PORT: 前端服务的端口。

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

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

  • USERNAME: PostgreSQL 的用户名。

  • PASSWORD: PostgreSQL 的密码。

  • LOG_LEVEL: 日志级别。

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

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

登录

设置管理员账号和密码.

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