Cuando Kopano informa del error "Error al conectar con el servidor de almacenamiento" durante la entrega de correo, el agente de entrega (dagent) no pudo establecer una conexión con el punto final del servidor Kopano que se le proporcionó. Este mensaje por sí solo no permite identificar si la causa es un servidor detenido, una ruta de socket incorrecta, permisos de acceso o un problema de conexión remota. Comience por verificar el punto final configurado y el propio servidor; evite modificar los datos del buzón o el almacenamiento de archivos adjuntos mientras diagnostica el fallo de conexión.
La documentación de administración de Kopano describe a dagent como el componente que entrega el correo desde el agente de transporte de correo (MTA) a un usuario de Kopano. La referencia de configuración de Kopano Core 8.0 indica que server_socketespecifica la conexión al servidor de Kopano y la documenta file:///var/run/kopano/server.sockcomo su valor predeterminado. Las versiones de los paquetes, los gestores de servicios y la configuración local pueden variar, por lo que conviene verificar los valores en su equipo antes de aplicar un ejemplo.
¿Qué deberías comprobar primero?
Confirme si el error afecta a todos los destinatarios o solo a una ruta de entrega. Si todas las entregas entrantes fallan simultáneamente, verifique la disponibilidad del servidor y el punto final. Si solo fallan los mensajes enrutados a través de un host o nodo, compare dagent.cfgla ruta de red de ese nodo con la de un nodo que funcione correctamente. Conserve un mensaje o entrada de cola fallida durante las pruebas; los reintentos repetidos pueden ocultar la primera marca de tiempo útil en los registros.
En un sistema que utiliza systemd, inspeccione las unidades de Kopano y el registro del servidor en torno al momento de la entrega:
systemctl list-units 'kopano*'
systemctl status kopano-server --no-pager
journalctl -u kopano-server -b --no-pager
Si su paquete nombra la unidad de forma diferente, utilice el nombre de unidad que se muestra list-units. Un servidor inactivo o que se reinicia repetidamente indica un problema en el servidor. Consulte su registro para detectar errores anteriores de inicio, base de datos, configuración o almacenamiento; reiniciar dagent no solucionará un servidor Kopano no disponible. El manual del administrador documenta la gestión del servicio Kopano, pero los nombres exactos de las unidades dependen del paquete.
¿Dagent apunta al socket del servidor correcto?
Lea el archivo de configuración activo, normalmente /etc/kopano/dagent.cfg, y busque la server_socketentrada:
grep -nE '^[[:space:]]*server_socket[[:space:]]*=' /etc/kopano/dagent.cfg
Para un socket Unix local, compare la configuración con el socket creado realmente por el servidor en ejecución. Un valor común en la documentación de Kopano Core es:
server_socket = file:///var/run/kopano/server.sock
Comprueba que el archivo existe y que es un socket:
ls -l /var/run/kopano/server.sock
test -S /var/run/kopano/server.sock && echo "Socket exists"
Si las rutas configuradas y las reales difieren, corrija el server_socketvalor al punto final que su instalación utiliza intencionadamente. No copie el valor predeterminado sin más si el servidor está configurado para usar otro directorio de ejecución, una dirección de clúster o un transporte remoto. La documentación de referencia de Kopano también incluye la configuración de claves SSL para transportes HTTPS; la sintaxis del punto final remoto y los requisitos del certificado deben coincidir con la configuración del servidor instalado.
¿Podrían los permisos del socket bloquear la conexión?
Sí. Un socket puede existir y aun así ser inaccesible para el usuario que ejecuta dagent. Encuentre el usuario del proceso efectivo en la unidad de servicio o proceso correspondiente, luego inspeccione el socket y cada directorio padre. Por ejemplo:
namei -l /var/run/kopano/server.sock
stat -c '%A %U:%G %n' /var/run/kopano/server.sock
Compare el propietario, el grupo y los permisos de recorrido de directorios con la identidad de ejecución de dagent. La referencia de configuración de Kopano dagent indica que se puede configurar el usuario y el grupo de ejecución, siendo Kopano el valor predeterminado documentado; el empaquetado o las anulaciones pueden modificar esto. Si se utiliza systemd, revise la unidad y cualquier anulación antes de cambiar la propiedad.
systemctl cat kopano-dagent
systemctl show kopano-dagent -p User -p Group
Solo ajuste los permisos para otorgar a la cuenta de servicio correspondiente el acceso que necesita. No utilice chmod 777el socket ni su directorio, ya que esto podría exponer un punto final de servicio privilegiado a usuarios locales no autorizados. Los directorios de tiempo de ejecución pueden recrearse al iniciar el sistema, por lo que corrija la configuración del servicio o paquete que los crea en lugar de depender de un cambio de permisos manual temporal.
¿Qué ocurre si el servidor está en otro nodo?
En una configuración de múltiples servidores o de alta disponibilidad, verifique que dagent esté utilizando la dirección del clúster o servidor accesible para su nodo. La guía de alta disponibilidad de Kopano muestra que los puntos finales del servicio y el enrutamiento de entrega de Postfix deben coordinarse entre los nodos. Compare server_socketel servidor de escucha, la dirección DNS o del clúster, las reglas del firewall y cualquier configuración TLS en ambos lados. Una conexión exitosa a un socket local en un nodo no prueba que un punto final remoto sea accesible desde otro nodo.
Pruebe la conectividad utilizando el mismo punto final y ruta de red configurados para dagent. Para un transporte remoto, verifique el estado del listener y la política del firewall en el host de Kopano, y luego revise los registros de dagent y del servidor en busca de rechazos de conexión, tiempos de espera agotados o errores TLS. No abra un listener a Internet sin restricciones como atajo para solucionar problemas; restrinja el acceso a los hosts de correo y aplicaciones de confianza.
¿Cómo se puede probar la entrega sin modificar el flujo de correo de producción?
Una vez que el servidor esté activo y el punto final y los permisos coincidan, realice una prueba controlada utilizando un buzón de correo de prueba designado. El manual del administrador de Kopano documenta cómo invocar dagent directamente con un usuario en ese nodo, para luego ingresar un asunto y el cuerpo del mensaje. Un patrón de prueba básico es:
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]
Sustituya testuserel usuario por uno existente de Kopano local y siga la sintaxis de comandos de la versión instalada. Esta prueba omite parte del enrutamiento y el comportamiento de la cola del MTA; una entrega directa exitosa verifica una parte útil de la ruta, pero no prueba que Postfix u otro MTA esté enrutando el correo correctamente. Revise la salida de dagent, los registros de Kopano y el buzón de prueba antes de volver a intentar enviar los mensajes de producción en cola.
¿Cuándo se debe reiniciar un servicio?
Reinicie únicamente el componente cuya configuración haya cambiado, y solo después de guardar una copia válida de su configuración. Si modificó dagent.cfg, reinicie la unidad dagent cuando su instalación ejecute dagent como un servicio persistente. Algunas instalaciones inician dagent para entregas individuales, por lo que puede que no haya una unidad dagent de larga duración para reiniciar. Si modificó server.cfgo la configuración del oyente del servidor, siga el procedimiento de cambio de su sitio para Kopano Server. Los documentos de referencia de dagent solo indican las opciones que se pueden recargar mediante HUP; no asuma que cada cambio de socket o identidad de tiempo de ejecución surte efecto a través de una señal.
¿Cómo se confirma la solución?
Confirme todo lo siguiente antes de cerrar el incidente:
- El servidor Kopano permanece activo sin que se registren nuevos errores relacionados con la conexión.
- El punto final configurado en dagent coincide con un socket activo o un oyente remoto previsto.
- El usuario de tiempo de ejecución de dagent puede recorrer los directorios principales del socket y acceder al punto final.
- Un mensaje de prueba controlado llega al buzón de correo previsto y sus registros no muestran ningún fallo de conexión con el servidor de almacenamiento.
- Se acepta y entrega un nuevo mensaje entrante enviado a través de la ruta MTA normal; la cola MTA no continúa acumulando el mismo fallo.
Si la entrega directa funciona, pero el correo a través del MTA sigue fallando, investigue el transporte LMTP, la ruta del socket y el enrutamiento del MTA en lugar de modificar el almacenamiento del buzón de Kopano. Si el servidor y el punto final funcionan correctamente, pero dagent sigue informando de un fallo de conexión, recopile las marcas de tiempo coincidentes, el server_socketvalor anonimizado, el estado del servicio y los registros relevantes para el responsable del paquete o el administrador de Kopano. Oculte las contraseñas, las claves privadas, el contenido de los mensajes y las direcciones personales antes de compartir los diagnósticos.
Referencias: Manual del administrador principal de Kopano ; Referencia de configuración de Kopano dagent ; Guía de alta disponibilidad de Kopano ; Configuraciones especiales y solución de problemas de Kopano .