Zimbra: Conhecendo o serviço SSDB para Ephemeral Data (Parte 2)

 

Olá! Escrevi na primeira parte desta série de artigos sobre o SSDB para Ephemeral Data do Zimbra o detalhamento do serviço e a motivação para implementação do mesmo, assim como os benefícios.

Link para a PRIMEIRA parte aqui:

https://respirandolinux.com.br/2020/05/29/zimbra-conhecendo-o-servico-ssdb-para-ephemeral-data-parte-1/

Vamos agora ver como instalar o SSDB (compilando e utilizando docker)  e migrar os dados efêmeros (transitórios) do Zimbra!

Quais são os dados efêmeros que o Zimbra está  tratando com o SSDB?

Até o presente momento, os 3 (três) atributos do Zimbra (atualizados em cada conta) podem ser migrados para o SSDB:

zimbraAuthTokens: Token de autenticação que gerencia as sessões dos usuários

zimbraCsrfTokenData: Token CSRF que correspondem aos tokens de autenticação

zimbraLastLogonTimestamp: Registro do último login de cada conta

Instalando através do source no Centos 7

É possível instalar o SSDB direto do source do projeto, que é hospedado no seguinte repositório:

https://github.com/ideawu/ssdb

Eu criei o Service File para facilitar o gerenciamento do serviço, sendo executado com um usuário sem privilégios de root.

Compilando e instalando no Centos 7

De acordo com a documentação da Zimbra, a versão testada para o SSDB foi a 1.9.5, porém testei com a última versão no momento (1.9.8) e não há nenhum impedimento para utilizar a última versão estável do SSDB.

O SSDB pode ser instalado no mesmo servidor do Zimbra, em um servidor dedicado ou rodar em docker como veremos. Ele trará benefícios de performance mesmo instalado no mesmo servidor do Zimbra pois irá desonerar o serviço LDAP e otimizar as operações de manipulação dos dados transitórios.

CASO você queira utilizar a versão testada pela Zimbra , o link para download da mesma é:

wget https://github.com/ideawu/ssdb/archive/stable-1.9.5.zip

Vamos compilar e instalar o SSDB (espero criar um pacote completo para o SSDB para o Zimbra muito em breve):

yum groupinstall 'Development Tools'

wget https://github.com/ideawu/ssdb/archive/master.zip

unzip master.zip

cd ssdb-master

make && make install

O SSDB será instalado em /usr/local/ssdb. 

Iniciando o SSDB

useradd -s /sbin/nologin -d /usr/local/ssdb ssdb
chown ssdb.ssdb /usr/local/ssdb -R

cd /usr/local/ssdb
sed -e 's@ip:.*@ip: 0.0.0.0@' -e 's@level:.*@level: info@' -i ssdb.conf

cd /etc/systemd/system

wget https://github.com/BktechBrazil/zimbra-ssdb/raw/master/ssdb.service

systemctl enable ssdb

systemctl start ssdb

system status ssdb

Migrando o “Ephemeral Data” do Zimbra

A migração pode ser feita sem interromper nenhum serviço do Zimbra; o serviço fará uma transição dos dados até que a migração esteja concluída:

É possível simular a migração com parâmetro “-r”, como pode ser visto no exemplo abaixo, onde o servidor é mail.respirandolinux.com.br e o SSDB está sendo executado na porta padrão do serviço (8888):

/opt/zimbra/bin/zmmigrateattrs -r ssdb:mail.respirandolinux.com.br:8888

Para efetuar a migração de fato, execute o procedimento abaixo, informando o seu servidor correto – caso haja algum erro a migração não irá ocorrer:

/opt/zimbra/bin/zmmigrateattrs ssdb:mail.respirandolinux.com.br:8888

zmprov mcf zimbraEphemeralBackendUrl ssdb:mail.respirandolinux.com.br:8888

Feito isso, os dados efêmeros do Zimbra estarão sendo controlados pelo serviço SSDB, mais eficiente que o LDAP para tratar isso tipo de informação.

Documentação completa da Zimbra sobre o SSDB:

https://zimbra.github.io/adminguide/latest/#ephemeral_data

SSDB no Docker

Rodar o SSDB em docker é bastante simples, uma imagem que tenho utilizado é essa:

https://hub.docker.com/r/leobuskin/ssdb-docker

O Dockerfile desta imagem é esse (todos os créditos para o autor original):

FROM alpine
LABEL maintainer="Leonard Buskin <leonardbuskin@gmail.com>"

ARG VERSION=${VERSION:-master}

RUN apk add --no-cache --virtual .build-deps \
curl gcc g++ make autoconf libc-dev libevent-dev linux-headers perl tar \
&& mkdir -p /ssdb/tmp \
&& curl -Lk "https://github.com/ideawu/ssdb/archive/${VERSION}.tar.gz" | \
tar -xz -C /ssdb/tmp --strip-components=1 \
&& cd /ssdb/tmp \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install PREFIX=/ssdb \
&& sed -e "s@home.*@home $(dirname /ssdb/var)@" \
-e "s/loglevel.*/loglevel info/" \
-e "s@work_dir = .*@work_dir = /ssdb/var@" \
-e "s@pidfile = .*@pidfile = /run/ssdb.pid@" \
-e "s@output:.*@output: stdout@" \
-e "s@level:.*@level: info@" \
-e "s@ip:.*@ip: 0.0.0.0@" \
-i /ssdb/ssdb.conf \
&& rm -rf /ssdb/tmp \
&& apk add --virtual .rundeps libstdc++ \
&& apk del .build-deps

EXPOSE 8888
VOLUME /ssdb/var

CMD ["/ssdb/ssdb-server", "/ssdb/ssdb.conf"]

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s