Índice do Fórum Comunidade Expresso Livre Performance: Problemas e Melhorias Cyrus Aggregator - Escalando o IMAP do Expresso |
Navegando neste Tópico:
1 usuários anônimos
Final Tópico anterior Próximo tópico |
Enviado por | Tópico |
---|
|
Cyrus Aggregator - Escalando o IMAP do Expresso | #1 |
|
---|---|---|---|
Não tão novato
Cadastrado em: 22/6/2010
De
Mensagens: 12
|
Primeiramente quero dar todos os créditos a:
Fábio Schmidt - 4Linux(Autor do Documento) Luiz Gustavo - 4Linux(Autor do Documento) William Merlotto - Prognus(Desenvolvimento) Ronaldo Wanzeller - CAIXA/CNDTI(Testes no ambiente) José Rômulo - CAIXA/GEART(Coordenador) Obs: Os procedimentos foram feitos em ambiente de homologação com vistas a testar todas as funcionalidades que o Cyrus Aggregator oferece, dentre elas a de mover caixa postais entre servidores diferentes Vamos aos procedimentos... Instalação e Configuração do Cyrus Aggregator O Cyrus IMAP Aggregator (IMAP Murder) distribui de forma transparente caixas postais IMAP e POP entre múltiplos servidores. O Aggregator possibilita que os usuários acessem caixas postais de todos os servidores do ambiente a partir ou não de um ponto único. 1-Arquitetura A solução possui três classes de servidores: Frontend, Backend e Mupdate (Murder). Os clientes IMAP conecta no servidores Fontends que por sua vez realiza a consulta no servidor MURDER perguntando em qual Backend esta caixa postal do cliente conectado. Então o servidor MURDER informa ao Fontend que estabelece a comunicação com direta com o Backend trazendo a caixa postal do usuário.Os servidores Backend armazenam as caixas postais e informam ao servidor MURDER a sua localização, permissões e mudanças que por sua vez sincronizam com os Frontends a posição das caixa postais. Neste cenário realizamos o teste com 4 máquinas, sendo 1 Fontend, 1 Murder e 2 Backends. 2-Instalando os pacotes necessários(realizar em todos os servidores Frontends, Murder e Backends): # aptitude install cyrus22-murder cyrus22-imapd sasl2-bin cyrus22-admin libsasl2-modules 3-Criar o certificado e copiar para os servidores Frontend, Backend e Murder no diretório /etc/ssl/certs: # cd /etc/ssl/certs # openssl req -new -nodes -out server.csr -keyout server.key # openssl x509 -in server.csr -out server.crt -req -signkey server.key # openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 99999 # cat server.key server.crt > server.pem 4-Configurando o Murder a) - Editar os seguintes os parâmetros no arquivo /etc/imapd.conf: # PERMITE UTILIZAR PONTO ENTRE O NOME DO USUÁRIO unixhierarchysep: yes # Mecanismos de autenticação suportados sasl_mech_list: PLAIN LOGIN # Método de autenticação sasl_pwcheck_method: auxprop #Usuário que são administradores do Cyrus admins: expresso-admin murder #Apontar o diretório dos certificados tls_cert_file: /etc/ssl/certs/server.pem tls_key_file: /etc/ssl/certs/server.pem tls_ca_file: /etc/ssl/certs/server.pem tls_ca_path: /etc/ssl/certs b) - Editar os seguintes os parâmetros no arquivo /etc/cyrus.conf: # Ativar a seguinte linhas para habilitar o Cyrus MURDER master # (mupdate master, only one in the entire cluster) mupdate cmd="mupdate -m" listen=3905 prefork=1 # proxies that will connect to the backends # ATENÇÃO - Comentar as linhas abaixo #imap cmd="proxyd" listen="imap" prefork=0 maxchild=100 #imaps cmd="proxyd -s" listen="imaps" prefork=0 maxchild=100 #pop3 cmd="pop3proxyd" listen="pop3" prefork=0 maxchild=50 #pop3s cmd="pop3proxyd -s" listen="pop3s" prefork=0 maxchild=50 #lmtp cmd="lmtpproxyd" listen="lmtp" prefork=1 maxchild=20 c) - Editar o arquivo /etc/default/saslauthd alterando os seguintes parâmetros: START=yes MECHANISMS="sasldb" d) - Executar o comando para criar os usuários no SASL: # saslpasswd2 -c murder # saslpasswd2 -c expresso-admin 5-Configurando o Backend a) - Editar os seguintes os parâmetros no arquivo /etc/imapd.conf: unixhierarchysep: yes # Mecanismos de autenticação suportados sasl_mech_list: PLAIN LOGIN # Método de autenticação sasl_pwcheck_method: auxprop #Usuário que são administradores do Cyrus admins: expresso-admin murder #Apontar o diretório dos certificados tls_cert_file: /etc/ssl/certs/server.pem tls_key_file: /etc/ssl/certs/server.pem tls_ca_file: /etc/ssl/certs/server.pem tls_ca_path: /etc/ssl/certs #Nome do servidor Murder(hostname) mupdate_server: murder #Porta do servidor Murder mupdate_port: 3905 #Usuário para conectar no servidor Murder mupdate_authname: expresso-admin mupdate_username: expresso-admin #Senha do usuário do servidor Murder mupdate_password: 123 mupdate_retry_delay: 10 proxy_authname: expresso-admin #Incluir os Backends que esse Backend fara contato no caso de transferência de #Caixas Postais formato é: hostname_parametro ex: maquina_password: senha cyrus_password: 123 cyrus2_password: 123 # Habilita a opção de mover caixas postais allowusermoves: yes allowsubscribes: yes b) - Editar os seguintes os parâmetros no arquivo /etc/cyrus.conf: # PARAMETRO NECESSÁRIO NOS SERVIDORES BACKEND, FAZ A SINCRONIZAÇÃO DAS CAIXAS POSTAIS COM O MURDER NA INICILIZAÇÃO mupdatepush cmd="/usr/sbin/ctl_mboxlist -m" imap cmd="imapd -U 30" listen="imap" prefork=0 maxchild=100 imaps cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100 lmtp cmd="lmtpd -a" listen="lmtp" prefork=0 maxchild=20 sieve cmd="timsieved" listen="sieve" prefork=0 maxchild=100 # ATENÇÃO - Comentar as linhas abaixo #imap cmd="proxyd" listen="imap" prefork=0 maxchild=100 #imaps cmd="proxyd -s" listen="imaps" prefork=0 maxchild=100 #pop3 cmd="pop3proxyd" listen="pop3" prefork=0 maxchild=50 #pop3s cmd="pop3proxyd -s" listen="pop3s" prefork=0 maxchild=50 #lmtp cmd="lmtpproxyd" listen="lmtp" prefork=1 maxchild=20 c) - Editar o arquivo /etc/default/saslauthd alterando os seguintes parâmetros: START=yes MECHANISMS="sasldb" d) - Executar o comando para criar os usuários no SASL: # saslpasswd2 -c murder # saslpasswd2 -c expresso-admin 6-Configurando o Frontend a) - Editar os seguintes os parâmetros no arquivo /etc/imapd.conf: unixhierarchysep: yes # Mecanismos de autenticação suportados sasl_mech_list: PLAIN LOGIN # Método de autenticação sasl_pwcheck_method: auxprop #Usuário que são administradores do Cyrus admins: expresso-admin murder #Apontar o diretório dos certificados tls_cert_file: /etc/ssl/certs/server.pem tls_key_file: /etc/ssl/certs/server.pem tls_ca_file: /etc/ssl/certs/server.pem tls_ca_path: /etc/ssl/certs #Nome do servidor Murder(hostname) mupdate_server: murder #Porta do servidor Murder mupdate_port: 3905 #Usuário para conectar no servidor Murder mupdate_authname: expresso-admin mupdate_username: expresso-admin #Senha do usuário do servidor Murder mupdate_password: 123 mupdate_retry_delay: 10 proxy_authname: expresso-admin #Incluir os Backends que esse Backend fara contato no caso de transferência de #Caixas Postais formato é: hostname_parametro ex: maquina_password: senha cyrus_password: 123 cyrus2_password: 123 # Habilita a opção de mover caixas postais allowusermoves: yes allowsubscribes: yes b) - Editar os seguintes os parâmetros no arquivo /etc/cyrus.conf: # ATENÇÃO - Comentar as linhas abaixo #imap cmd="imapd -U 30" listen="imap" prefork=0 maxchild=100 #imaps cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100 #pop3 cmd="pop3d -U 30" listen="pop3" prefork=0 maxchild=50 #pop3s cmd="pop3d -s -U 30" listen="pop3s" prefork=0 maxchild=50 #nntp cmd="nntpd -U 30" listen="nntp" prefork=0 maxchild=100 #nntps cmd="nntpd -s -U 30" listen="nntps" prefork=0 maxchild=100 # ATENÇÃO - Descomentar as linhas abaixo imap cmd="proxyd" listen="imap" prefork=0 maxchild=100 imaps cmd="proxyd -s" listen="imaps" prefork=0 maxchild=100 # Realiza o sincronismo com o Murder tornando-o um cache do Murder das caixas postais mupdate cmd="mupdate" listen=3905 prefork=1 c) - Editar o arquivo /etc/default/saslauthd alterando os seguintes parâmetros: START=yes MECHANISMS="ldap" d) - Criar o arquivo /etc/saslauthd.conf conforme modelo abaixo: ldap_servers: ldap://IP_DO_SERVIDOR_LDAP ldap_port: 389 ldap_version: 3 ldap_referrals: no ldap_search_base: dc=teste,dc=com ldap_bind_dn: cn=admin,dc=teste,dc=com ldap_password: 123 ldap_auth_method: bind ldap_debug: 6 ldap_verbose: on 7 - Reiniciando os serviços(Executar os procedimentos em todos os servidores Fontends,Backends e Murder) # /etc/init.d/saslauthd restart # /etc/init.d/cyrus-imapd restart 8 - Considerações Finais a) - O nosso servidor Frontend esta instalado na mesma máquina do que hospeda o Expresso. b) - Após realizado as configurações acima é necessário configurar o Expresso na opção "Configuração do servidor" e configurar o servidor IMAP/POP colocando o fqdn ou IP do servidor Frontend. |
||
Enviado em: 25/10/2010 18:00
|
|
Re: Cyrus Aggregator - Escalando o IMAP do Expresso | #2 |
||
---|---|---|---|---|
Cadastrado em: 11/9/2008
De Recife - PE
Mensagens: 1083
|
Obrigado por compartilhar.
|
|||
Enviado em: 25/10/2010 18:37
|
|
Re: Cyrus Aggregator - Escalando o IMAP do Expresso | #4 |
||
---|---|---|---|---|
Cadastrado em: 21/11/2006
De Foz do Iguaçu
Mensagens: 994
|
Olá!
Muito bacana Tornis! Parabéns! Att, |
|||
Enviado em: 26/10/2010 12:42
|
|
Re: Cyrus Aggregator - Escalando o IMAP do Expresso | #5 |
|
---|---|---|---|
Não tão novato
Cadastrado em: 22/6/2010
De
Mensagens: 12
|
Olá Nilton e aos demais amigos...
Quero agradecer as palavras de apoio de todos e mais uma vez levo os agradecimentos aos citados nesse post. Pedi para a equipe se cadastrar também e logo eles iram contribuir com mais informações Estamos realizando uma bateria de testes com todo ambiente do Expresso tanto na infra quanto no desenvolvimento a Prognus também esta como parceira e também ira contribuir bastante. No caso do cyrus aggregator, permite separar caixa postais em servidores físico e distantes geograficamente, permitindo trabalhar com um único domínio, ou seja, o Cyrus "move/trasporta a pilha de caixa postais(IMAP)" de forma transparente para o Expresso. Então quando alguém se deslocar não precisa saber qual é o endereço de seu servidor basta apontar para o endereço único que o Cyrus Aggregator faz o resto. Outro ponto importante é a escalabilidade mesmo. Se o backend estiver com a capacidade estourada vc pode colocar mais um backend e mover determinadas caixas para o novo servidor através de comandos do próprio CyrusAdmin. Em fim, o próximo passo que estamos trabalhando e a disponibilidade de cada elemento do cyrus aggregator (frontends, murder e backends) Estamos a disposição para dúvidas e esclarecimentos sobre os procedimentos apresentados. Abraços a todos e obrigado. |
||
Enviado em: 26/10/2010 17:14
|
|
Re: Cyrus Aggregator - Escalando o IMAP do Expresso | #6 |
|
---|---|---|---|
Visitante
|
Se quiser submeter um artigo sobre toda esta experiência com Cyrus Aggregator, podemos inclui-lo na seção "Documentação" do site do Expresso.
Um abraço, |
||
Enviado em: 26/10/2010 17:29
|
Topo Tópico anterior Próximo tópico |
|