RabbitMQ authentication user fix on W2022.3+ version
Symptoms
Starting from the W2022.3 version, Sisense uses a non-default authentication user while connecting from any microservices to Sisense RabbitMQ (Sisense.Broker service).
In some cases, you may need to manually re-provision the RabbitMQ user. For example:
A. RabbitMQ folder was re-created by mistake
B. RabbitMQ user creation failed during the Sisense upgrade
If microservices do not connect using the "sisense"RabbitMQ user, you may see that Build Logs are not updated on the Data page and will infinitely spin, while showing a "Building "message.
Diagnosis
2. In the command prompt, navigate to the RabbitMQ folder and execute rabbitmqctl list_users:
cd "C:\Program Files\Sisense\Infra\RabbitMQ\sbin"
rabbitmqctl list_users
Example of the correct output (contains "sisense" user) on W2022.3+ version:
Example of the incorrect output (please note the output is correct for versions before W2022.3):
If you receive the "Error: unable to perform an operation on node 'rabbit@servername'. Please see diagnostics information and suggestions below." error message while running rabbitmqctl commands, copy C:\Windows\System32\config\systemprofile\.erlang.cookie file into C:\Users\<user who runs cmd>\ folder and retry:
Solution
Step A: Create RabbitMQ User
1. Start CMD as Administrator
2. Navigate to the RabbitMQ folder:
cd "C:\Program Files\Sisense\Infra\RabbitMQ\sbin"
3. Run the commands below but remember to replace <password> with your desired value:
rabbitmqctl add_user sisense "<password>"
rabbitmqctl set_user_tags sisense administrator
rabbitmqctl set_permissions -p / sisense ".*" ".*" ".*"
4. Create a new file in the C:\ProgramData\Sisense\RabbitMQ folder. The filename should be "rmq.cred".
5. Use AES Encoding to generate an encoded password. Input: password in plain text from step 2. Example of the output: “QYd1zvhlrLxYvQnWxSmKZQ==".
6. Open "rmq.cred" file in Notepad++ (or other text editor).
7. Enter the encoded password and save the file.
Step B: How to make Sisense services use the new RabbitMQ authentication
1. Open cmd as Administrator and navigate to the configuration service module to create a Zookeeper backup file:
cd "C:\Program Files\Sisense\app\configuration-service\node_modules\@sisense\sisense-configuration\bin"
"C:\Program Files\Sisense\app\NodeJS\v12.7.0\node.exe" sisense-conf export -p
mkdir C:\ProgramData\Sisense\Backup
mkdir C:\ProgramData\Sisense\Backup\Configuration​
copy sisenseConfiguration.json C:\ProgramData\Sisense\Backup\Configuration\manual-zookeeper-backup-2022-05-25.json​
- For a single node:
- "connectionString": "amqp://sisense:[email protected]:5672"
- For a multi-node:
- "connectionString": "amqp://sisense:[email protected]:5672,amqp://sisense:[email protected]:5672"
where "Jb9c8SGq43" - plain text password from step A.2,
"10.20.30.1" and "10.20.30.2" - IPs of servers where Sisense.Broker is running.
- "connectionString": "amqp://sisense:[email protected]:5672,amqp://sisense:[email protected]:5672"
6. Save the file.
7. Open http://localhost:3030, click five times on the Sisense logo, and navigate to the Backups tab. Select manual-zookeeper-backup-2022-05-25.json file and click the Restore button to import the manually created Zookeeper backup.
8. Restart Sisense.ECMS & Sisense.ECMLogs services.
9. At localhost:3030, click the Restart services button.
If you are using a workaround with ?frameMax=0 for any of the microservices, at step B.6, you will also need to replace "connectionString": "amqp://127.0.0.1:5672?frameMax=0" with "connectionString": "amqp://sisense:[email protected]:5672?frameMax=0".
If you need assistance with any of the steps above, please get in touch with Sisense Support.