Alexander Preuß photo
Alexander Preuß

Table of Contents

Troubleshooting

Pulsar Manager Troubleshooting Guide

Apache Pulsar Manager

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 The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

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.

Pulsar Manager does not run on OpenShift

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.

Pulsar Manager The username or password is incorrect

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.

Local installation or Docker deployment

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.

Helm chart deployment

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.

Pulsar Manager shows HTTP 404 on login page

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:

Configuration for internal PostgreSQL incorrect

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

Configuration for external PostgreSQL incorrect

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 This environment is an error. Please check it.

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.

Containerized deployment

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:

Client connection configuration

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 Peek message only works for String topics

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.

Conclusion

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.

Alexander Preuß photo
About the Author
Alexander Preuß is a seasoned expert in the data streaming field with extensive experience as a software engineer at both startups and large enterprises. Specializing in distributed systems, he has contributed to various open source projects, including Apache Flink, Apache Kafka, and Apache Pulsar, along with their ecosystems. Prior to founding Streamvisor, Alexander worked at Ververica (acquired by Alibaba) and StreamNative.

Let's stay in touch

Get notified of new developments or blogposts.
Checkmark icon
You've joined the mailing list!
Oops! Something went wrong while submitting the form.