Quando o Kopano reporta a mensagem “Falha ao conectar ao servidor de armazenamento” durante a entrega de e-mails, significa que o agente de entrega (dagent) não conseguiu estabelecer uma conexão com o endpoint do servidor Kopano fornecido. A mensagem por si só não identifica se a causa é um servidor parado, um caminho de socket incorreto, permissões de acesso ou um problema de conexão remota. Comece verificando o endpoint configurado e o próprio servidor; evite alterar os dados da caixa de correio ou o armazenamento de anexos enquanto estiver diagnosticando uma falha de conexão.
A documentação do administrador do Kopano descreve o dagent como o componente que entrega e-mails do agente de transporte de e-mail (MTA) para um usuário do Kopano. A referência de configuração do Kopano Core 8.0 server_socketespecifica a conexão com o servidor Kopano e a documenta file:///var/run/kopano/server.sockcomo seu padrão. Versões de pacotes, gerenciadores de serviço e configurações locais podem variar, portanto, verifique os valores em seu host antes de aplicar um exemplo.
O que você deve verificar primeiro?
Confirme se o erro afeta todos os destinatários ou apenas um caminho de entrega específico. Se todas as entregas de entrada falharem simultaneamente, verifique a disponibilidade do servidor e do endpoint. Se apenas as mensagens roteadas por um host ou nó específico falharem, compare o dagent.cfgcaminho de rede desse nó com o de um nó em funcionamento. Mantenha uma mensagem ou entrada da fila com falha durante os testes; tentativas repetidas podem ocultar o primeiro registro de data e hora útil nos logs.
Em um sistema que utiliza systemd, inspecione as unidades Kopano e o log do servidor próximo ao horário de entrega:
systemctl list-units 'kopano*'
systemctl status kopano-server --no-pager
journalctl -u kopano-server -b --no-pager
Se o seu pacote nomear a unidade de forma diferente, use o nome da unidade exibido por list-units. Um servidor inativo ou que reinicia repetidamente indica um problema no servidor. Leia o registro de eventos (log) para verificar erros anteriores de inicialização, banco de dados, configuração ou armazenamento; reiniciar o dagent não corrigirá um servidor Kopano indisponível. O manual do administrador documenta o gerenciamento de serviços do Kopano, mas os nomes exatos das unidades dependem do pacote utilizado.
O dagent está apontando para o socket de servidor correto?
Leia o arquivo de configuração ativo, geralmente /etc/kopano/dagent.cfg, e encontre a server_socketentrada:
grep -nE '^[[:space:]]*server_socket[[:space:]]*=' /etc/kopano/dagent.cfg
Para um socket Unix local, compare a configuração com o socket realmente criado pelo servidor em execução. Um valor comum na documentação do Kopano Core é:
server_socket = file:///var/run/kopano/server.sock
Verifique se o arquivo existe e se é um socket:
ls -l /var/run/kopano/server.sock
test -S /var/run/kopano/server.sock && echo "Socket exists"
Se os caminhos configurados e reais forem diferentes, corrija o server_socketvalor para o endpoint intencionalmente usado pela sua instalação. Não copie o valor padrão cegamente quando o servidor estiver configurado para usar outro diretório de tempo de execução, um endereço de cluster ou um transporte remoto. A documentação de referência do Kopano também apresenta as configurações de chave SSL para transportes HTTPS; a sintaxe do endpoint remoto e os requisitos de certificado devem corresponder à configuração do seu servidor instalado.
As permissões de socket podem bloquear a conexão?
Sim. Um socket pode existir e ainda assim ser inacessível para o usuário que executa o dagent. Encontre o usuário efetivo do processo a partir da unidade de serviço ou processo relevante e, em seguida, inspecione o socket e todos os diretórios pai. Por exemplo:
namei -l /var/run/kopano/server.sock
stat -c '%A %U:%G %n' /var/run/kopano/server.sock
Compare as permissões de proprietário, grupo e de acesso ao diretório com a identidade de tempo de execução do dagent. A referência de configuração do dagent Kopano observa que o usuário e o grupo de execução podem ser configurados, sendo o Kopano o padrão documentado; pacotes ou substituições podem alterar isso. Se o systemd estiver em uso, revise a unidade e quaisquer substituições antes de alterar a propriedade.
systemctl cat kopano-dagent
systemctl show kopano-dagent -p User -p Group
Ajuste as permissões apenas para conceder à conta de serviço pretendida o acesso necessário. Não utilize chmod 777o socket ou seu diretório: isso pode expor um endpoint de serviço privilegiado a usuários locais não relacionados. Os diretórios de tempo de execução podem ser recriados na inicialização, portanto, corrija a configuração do serviço ou pacote que os cria, em vez de depender de uma alteração manual temporária de permissões.
E se o servidor estiver em outro nó?
Em uma configuração com vários servidores ou de alta disponibilidade, verifique se o dagent está usando o endereço de cluster ou servidor acessível para seu nó. O guia de alta disponibilidade do Kopano mostra que os endpoints de serviço e o roteamento de entrega do Postfix devem ser coordenados entre os nós. Compare server_socketo listener do servidor, o endereço DNS ou de cluster, as regras de firewall e quaisquer configurações TLS em ambos os lados. Uma conexão bem-sucedida a um socket local em um nó não comprova que um endpoint remoto seja acessível a partir de outro nó.
Teste a conectividade usando o mesmo endpoint e caminho de rede configurados para o dagent. Para um transporte remoto, verifique o status do listener e a política de firewall no host Kopano e, em seguida, inspecione os logs do dagent e do servidor em busca de recusas de conexão, timeouts ou erros de TLS. Não abra um listener para toda a Internet como uma solução paliativa para solução de problemas; restrinja o acesso aos hosts de e-mail e aplicativos confiáveis.
Como testar a entrega sem alterar o fluxo de correspondência de produção?
Após o servidor estar ativo e o endpoint e as permissões estarem corretos, execute um teste controlado usando uma caixa de correio de teste designada. O manual do administrador do Kopano documenta a invocação direta do dagent com um usuário nesse nó, seguida da inserção de um assunto e um corpo de mensagem. Um padrão básico de teste é:
kopano-dagent -v -c /etc/kopano/dagent.cfg testuser
Subject: Kopano connection test
This is a controlled delivery test.
[Press Ctrl-D to finish input]
Substitua testuserpor um usuário Kopano local existente e siga a sintaxe de comando da sua versão instalada. Este teste ignora alguns comportamentos de roteamento e enfileiramento do MTA; uma entrega direta bem-sucedida verifica uma parte útil do caminho, mas não comprova que o Postfix ou outro MTA esteja roteando e-mails corretamente. Verifique a saída do dagent, os logs do Kopano e a caixa de correio de teste antes de tentar novamente reenviar mensagens de produção enfileiradas.
Quando você deve reiniciar um serviço?
Reinicie apenas o componente cuja configuração foi alterada e somente após salvar uma cópia íntegra da configuração. Se você alterou alguma configuração dagent.cfg, reinicie a unidade do dagent quando a sua instalação executar o dagent como um serviço persistente. Algumas instalações iniciam o dagent para entregas individuais, portanto, pode não haver uma unidade do dagent em execução contínua para reiniciar. Se você alterou server.cfgas configurações do listener do servidor, siga o procedimento de alteração do seu site para o Kopano Server. A documentação de referência do dagent mostra apenas opções selecionadas como recarregáveis pelo HUP; não assuma que toda alteração de socket ou identidade de tempo de execução entre em vigor por meio de um sinal.
Como você confirma a correção?
Confirme todos os itens a seguir antes de encerrar o incidente:
- O servidor Kopano permanece ativo, sem novos erros relacionados à conexão registrados em seu diário.
- O endpoint configurado no dagent corresponde a um socket ativo ou a um listener remoto pretendido.
- O usuário do ambiente de execução do dagent pode percorrer os diretórios pai do socket e acessar o ponto de extremidade.
- Uma mensagem de teste controlada chega à caixa de correio pretendida e seus registros não mostram nenhuma falha de conexão com o servidor de armazenamento.
- Uma nova mensagem de entrada enviada pela rota normal do MTA é aceita e entregue; a fila do MTA não continua acumulando a mesma falha.
Se a entrega direta funcionar, mas o envio de e-mails pelo MTA ainda falhar, investigue o transporte LMTP, o caminho do socket e o roteamento do MTA, em vez de alterar o armazenamento de caixas de correio do Kopano. Se o servidor e o endpoint estiverem corretos, mas o dagent ainda reportar uma falha de conexão, colete os timestamps correspondentes, o server_socketvalor anonimizado, o status do serviço e os logs relevantes para o mantenedor do pacote ou administrador do Kopano. Oculte senhas, chaves privadas, conteúdo das mensagens e endereços pessoais antes de compartilhar os diagnósticos.
Referências: Manual do Administrador do Kopano Core ; Referência de configuração do dagent do Kopano ; Guia de alta disponibilidade do Kopano ; Configurações especiais e solução de problemas do Kopano .