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 to use SSDB on a single server Zimbra 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

,

No comments yet.

Leave a Reply