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 最简单的方法。
docker pull apachepulsar/pulsar-manager:v0.2.0
docker run -it \
-p 9527:9527 -p 7750:7750 \
-e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \
apachepulsar/pulsar-manager:v0.2.0
SPRING_CONFIGURATION_FILE
: Spring 默认使用的配置文件
设置管理员账户和密码
CSRF_TOKEN=$(curl http://localhost:7750/pulsar-manager/csrf-token)
curl \
-H 'X-XSRF-TOKEN: $CSRF_TOKEN' \
-H 'Cookie: XSRF-TOKEN=$CSRF_TOKEN;' \
-H "Content-Type: application/json" \
-X PUT http://localhost:7750/pulsar-manager/users/superuser \
-d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}'
你能在 Docker Hub 找到这个 docker 镜像,这个镜像是基于下面的源码构建的:
git clone https://github.com/apache/pulsar-manager
cd pulsar-manager/front-end
npm install --save
npm run build:prod
cd ..
./gradlew build -x test
cd ..
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 的示例如下:
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/pulsar_manager
spring.datasource.username=postgres
spring.datasource.password=postgres
- 进行编译,生成一个新的可执行 jar 包。
./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:使用命令行工具
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
tar -zxvf apache-pulsar-manager-0.2.0-bin.tar.gz
cd pulsar-manager
tar -zxvf pulsar-manager.tar
cd pulsar-manager
cp -r ../dist ui
./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 文件
backend.jwt.token=token
jwt.broker.token.mode=PRIVATE
jwt.broker.public.key=file:///path/broker-public.key
jwt.broker.private.key=file:///path/broker-private.key
or
jwt.broker.token.mode=SECRET
jwt.broker.secret.key=file:///path/broker-secret.key
- 方法3:使用Docker,并启用 Token 认证。
export JWT_TOKEN="your-token"
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 管理。
export JWT_TOKEN="your-token"
export PRIVATE_KEY="file:///pulsar-manager/secret/my-private.key"
export PUBLIC_KEY="file:///pulsar-manager/secret/my-public.key"
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 管理。
export JWT_TOKEN="your-token"
export SECRET_KEY="file:///pulsar-manager/secret/my-secret.key"
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 进行登录。