In a previous article we covered different ways to install Pulsar Manager. Unfortunately, there are some problems with the Pulsar Manager. Below, we explore common issues with Pulsar Manager and provide step-by-step solutions to ensure a smooth setup and operations.
Pulsar Manager currently has no ARM64-compatible Docker image, restricting its use for those who rely on these architectures. Depending on the operating system, the image can run using emulation but will be slow. For users looking for an alternative with a ARM64-compatible Docker image, Streamvisor might be an option.
OpenShift does not allow containers to run as root, so the Pulsar Manager cannot start. Users looking for an alternative built for OpenShift deployments may use Streamvisor.
You might be seeing this error on the login page for different reasons, depending on your deployment model. To solve this issue, please refer to the section matching the deployment type of your Pulsar Manager installation.
You are seeing this issue because Pulsar Manager does not auto-create a user account for you. To manually create a user account, run the following commands:
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"}'
You can now login using the user admin and password apachepulsar.
The helm chart deployment auto-creates a user account for you. To find the credentials, you have to decode the pulsar-manager Secret in kubernetes:
kubectl get secrets pulsar-mini-pulsar-manager-secret -n pulsar -o yaml
# Copy the values for UI_USER and UI_PASSWORD from the output of the previous command
# and base64-decode the values to retrieve the credentials in plaintext
# e.g. UI_PASSWORD: b0wxY2pzOUhiQ1FZNVpuVHBkbHk0eGoxOGFQU3NJWHA=
echo "b0wxY2pzOUhiQ1FZNVpuVHBkbHk0eGoxOGFQU3NJWHA=" | base64 --decode
You can now login using the decoded user credentials.
If you are getting responses with 404 status code on the login page, usually the problem is that the backend process of the Pulsar Manager is in a restart loop due to some error. To find the root cause it is recommended to check the Pulsar Manager logs. Very often, the problem is because of an incorrect configuration when using PostgreSQL:
To make the Pulsar Manager container start with an internal PostgreSQL instance, you need to set the following environment variables:
URL=jdbc:postgresql://127.0.0.1:5432/pulsar_manager
DRIVER_CLASS_NAME=org.postgresql.Driver
To make the Pulsar Manager container start with an external PostgreSQL instance, you need to set the following environment variables:
URL=jdbc:postgresql://<postgresUrl>:<postgresPort>/pulsar_manager
SPRING_DATASOURCE_URL=jdbc:postgresql://<postgresUrl>:<postgresPort>/pulsar_manager
SPRING_DATASOURCE_DRIVERCLASSNAME=org.postgresql.Driver
SPRING_DATASOURCE_SCHEMA=classpath:/META-INF/sql/postgresql-schema.sql
SPRING_DATASOURCE_INITIALIZATIONMODE=never
Pulsar Manager is displaying this message because there is an issue connecting Pulsar Manager to Pulsar. If you are running in a containerized environment like Docker or Kubernetes, check the "Containerized deployment" section below. If not, skip the first section and jump directly to the "Client connection configuration" section.
The most common cause is that Pulsar and Pulsar Manager are running in different containers that are not connected to each other.
If you are using Docker (or Docker Compose), make sure that both containers share the same network, using the --network host
option.
If you are using Kubernetes, make sure that Pulsar is exposing its ports using a Service
and that Pulsar Manager can access it by resolving the service DNS.
If you made sure that the containers are able to communicate, refer to the section below for other root causes:
Another common cause is that you haven't correctly configured the client in Pulsar Manager to match the configuration from the broker side (e.g. TLS, authentication / authorization).
In this case, make sure that the following Pulsar Manager properties are configured correctly:
backend.jwt.token=
backend.broker.pulsarAdmin.authPlugin=
backend.broker.pulsarAdmin.authParams=
backend.broker.pulsarAdmin.tlsAllowInsecureConnection=
backend.broker.pulsarAdmin.tlsTrustCertsFilePath=
backend.broker.pulsarAdmin.tlsEnableHostnameVerification=
Pulsar Manager offers a feature to 'peek' messages from a subscription. Unfortunately, this only works properly if String
type messages are sent into the topic, while topics with a schema only show binary content. If you are looking for a solution, Streamvisor offers live browsing of messages with fully automatic schema deserialization.
Configuring Pulsar and Pulsar Manager can be challenging, particularly when dealing with containerized environments and security configurations. Finding the root cause often requires some background knowledge about the inner workings and quirks of the Pulsar Manager. Another problem is that once identified, issues take a long time to get fixed as the Pulsar Manager is not actively maintained anymore. If you're looking for a powerful Pulsar UI that is actively maintained by Pulsar professionals, you may want to explore Streamvisor as an alternative solution.
If you have other Pulsar Manager-related questions, you can contact us by filling out our contact form or joining our Slack Community.