Zimbra SkillZ: Enhance Performance Using SSDB on Zimbra

Hello Zimbra Customers, Partners & Friends,

Zimbra traditionally stores Authentication Tokens, CSRF Tokens and log-on timestamps to LDAP. On Zimbra systems with a large number of active users, this increases the load on the LDAP server, which can cause LDAP responses to slow down.

Zimbra supports storing short-lived data (aka ephemeral data) to a separate SSDB database server. SSDB is a high performance key-value(key-string, key-zset, key-hashmap) NoSQL database, an alternative to Redis. SSDB is more suitable for this short-lived type of data.

This blog shows you how to install SSDB and configure Zimbra 9 to use SSDB on a single server Zimbra 9 installation. For more information on setting up SSDB in a cluster see the Zimbra Admin guide.

**One more thing worth mentioning is that the Zoom Zimlet makes use of SSDB and does not work without it.

Installing SSDB

First install build tools.

On Ubuntu:

apt install build-essential autoconf

 

On RedHat:

yum groupinstall "Development Tools"

Then download, compile and install SSDB from source as root:

cd /root/
wget https://github.com/ideawu/ssdb/archive/master.zip
unzip master
cd ssdb-master
make
sudo make install

The make install command will install SSDB to /usr/local/ssdb.
SSDB works best by using Init scripts this way you can start SSDB on boot.

On Ubuntu:

cp /root/ssdb-master/tools/ssdb.sh /etc/init.d/

 

On RedHat:

cp /root/ssdb-master/tools/ssdb.sh /etc/init.d/ssdb

Open the ssdb file in the init.d folder and change the line:

configs="/data/ssdb_data/test/ssdb.conf"

to:

configs="/usr/local/ssdb/ssdb.conf"

 

Finally enable and start SSDB:

On RedHat:

chkconfig --add ssdb
chkconfig ssdb on

 

On Ubuntu:

chmod a+x /etc/init.d/ssdb.sh update-rc.d ssdb.sh defaults

 

Test if the init script works by rebooting the server (the whole operating system), after the boot completes check if SSDB runs by checking if it listens:

#netstat command is in net-tools, to install net-tools:
# yum/apt install net-tools
netstat -tulpn | grep 8888
#expected output:
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 619/ssdb-server

SSDB logs into syslog, you can cat /var/log/syslog | grep ssdb to find error messages.

Configuring Zimbra to use SSDB

su - zimbra
/opt/zimbra/bin/zmmigrateattrs ssdb:127.0.0.1:8888
zmprov mcf zimbraEphemeralBackendURL ssdb:127.0.0.1:8888

 

References

  • https://zimbra.github.io/zimbra-9/adminguide.html#ephemeral_data
  • https://ssdb.io/docs/install.html
  • https://github.com/ideawu/ssdb

Thanks,

Your Zimbra Team

,

2 Responses to Zimbra SkillZ: Enhance Performance Using SSDB on Zimbra

  1. Alex October 29, 2021 at 9:54 AM #

    Looks like no more updates in “last login time” in Admin Console after SSDB has been implemented.

    But zimbraLastLogonTimestamp is correct and we have zimbraLastLogonTimestampFrequency 1d..

    • Avatar photo
      Barry de Graaff November 9, 2021 at 2:23 PM #

      Thanks, if have added a comment to only use this guide on Zimbra 9.

Copyright © 2022 Zimbra, Inc. All rights reserved.

All information contained in this blog is intended for informational purposes only. Synacor, Inc. is not responsible or liable in any manner for the use or misuse of any technical content provided herein. No specific or implied warranty is provided in association with the information or application of the information provided herein, including, but not limited to, use, misuse or distribution of such information by any user. The user assumes any and all risk pertaining to the use or distribution in any form of any subject matter contained in this blog.

Legal Information | Privacy Policy | Do Not Sell My Personal Information | CCPA Disclosures