Operaciones
Vigila el servidor, haz que pueda soportar más personas, decide cuánto tiempo se conservan los datos y resuelve los problemas que los administradores encuentran con más frecuencia.
Comprobaciones de estado
amctl --local system status(en el contenedor:docker compose exec antimatter amctl --local system status). La comprobación de estado de la imagen de Docker la ejecuta cada 30 segundos, por lo quedocker compose psmuestrahealthyounhealthy.GET /api/v4/system/pingresponde sin necesidad de iniciar sesión, para un monitor externo o un equilibrador de carga:curl -fsS https://chat.example.com/api/v4/system/ping.antimatter db pingcomprueba que la base de datos es accesible con la configuración establecida.- Consola de sistema › Informes › Estadísticas del Sistema muestra el número de usuarios, publicaciones y sesiones.
- Consola de sistema › Informes › Salud del sitio comprueba cada hora la base de datos, la búsqueda, el clúster, las notificaciones push, los trabajos, el inicio de sesión, el cumplimiento normativo y más, y enumera lo que requiere atención junto con su gravedad; silencia un hallazgo que no necesites ver de nuevo y encuéntralo más tarde en la pestaña Silenciados, junto con quién lo silenció y cuándo. Está activado de forma predeterminada; sustituye a Optimización de Espacio de Trabajo para los administradores de sistema completos (un administrador delegado que solo puede leer las estadísticas del sitio seguirá viendo Optimización de Espacio de Trabajo). Desactívalo con
AM_FEATUREFLAGS_HEALTHDASHBOARD=false.


Métricas
El servidor puede publicar métricas de Prometheus: tasas y duraciones de solicitudes, conexiones websocket, uso de la base de datos y la caché, trabajos, hooks de plugins y más. Actívalas en Consola de sistema › Entorno › Monitoreo de Desempeño:
| Ajuste | Clave y variable | Predeterminado |
|---|---|---|
| Habilitar el Monitoreo de Desempeño | MetricsSettings.Enable, AM_METRICSSETTINGS_ENABLE | desactivado |
| Dirección de escucha | MetricsSettings.ListenAddress, AM_METRICSSETTINGS_LISTENADDRESS | :8067 |
| Habilitar monitoreo de rendimiento del cliente | MetricsSettings.EnableClientMetrics | activado: los navegadores y las aplicaciones informan de sus propios tiempos de respuesta |
Después, Prometheus recopila http://<server>:8067/metrics. Cada métrica se publica con su nombre de Mattermost (mattermost_…) y su nombre de Antimatter (antimatter_…), de modo que los paneles de Mattermost existentes siguen funcionando. Las aplicaciones publican sus propias métricas, por ejemplo la app Agentes en /plugins/mattermost-ai/metrics.
El puerto de métricas no requiere inicio de sesión: mantenlo en una red privada. El archivo compose del sitio no lo publica; para recopilarlo desde el host, añade "127.0.0.1:8067:8067" a ports del servicio antimatter.
La app Métricas
Sin un servidor Prometheus, la aplicación Métricas (consulta Aplicaciones incluidas) recopila las mismas métricas en una pequeña base de datos de series temporales dentro de Antimatter: cada 60 segundos, con una retención de 15 días. Al activar Habilitar el Monitoreo de Desempeño, la aplicación también se habilita, salvo que la hayas desactivado manualmente. Activa el punto de acceso de métricas al iniciarse. Su página en Consola de sistema › Plugins muestra el tamaño de la base de datos y te permite descargar volcados de los datos, para tu propio análisis o para adjuntarlos a un informe de errores; el último día también se incluye en los paquetes de soporte.
Paquete de soporte
Un paquete de soporte es un archivo zip con lo necesario para diagnosticar un problema: versiones, estadísticas, la configuración con sus secretos eliminados, la lista de aplicaciones y trabajos, el esquema de la base de datos, el registro reciente y los perfiles de rendimiento. Genérela con amctl system supportpacket, o en la Consola de sistema desde el menú en la parte superior de su barra lateral (Soporte comercial, que luego permite elegir qué incluir). Léalo antes de compartirlo: no contiene mensajes, pero sí contiene nombres de comunidades, usuarios y configuraciones.
Rendimiento y escalabilidad
Un servidor con 2 núcleos de CPU y 4 GB de memoria sirve a unas pocas centenas de personas. Antes de añadir servidores, revise:
- La base de datos. PostgreSQL realiza la mayor parte del trabajo: proporciónale almacenamiento y memoria rápidos. Las réplicas de lectura pueden asumir la carga de lectura (
SqlSettings.DataSourceReplicas, una lista de URLs de conexión). - Búsqueda. Por defecto, los mensajes se buscan en la base de datos. En servidores grandes, Elasticsearch o OpenSearch pueden asumir la búsqueda y el indexado: Consola de sistema › Entorno › Elasticsearch (
ElasticsearchSettings: Tipo de backend Elasticsearch o OpenSearch, Dirección de conexión del servidor, credenciales, luego habilitar el indexado, construir el índice y habilitar la búsqueda). - Llamadas. Los medios de las llamadas son la carga más pesada. Muévelos a un servidor rtcd: ver Llamadas y voz.
- Archivos abiertos. Cada persona conectada mantiene un websocket abierto. El archivo de composición de producción de antimatter-docker eleva el límite a 49152 (
ulimits: nofile); haga lo mismo con systemd (LimitNOFILE). - Registros. Reduzca
LogSettings.ConsoleLevelaINFOoWARN:DEBUGregistra mucho en un servidor ocupado. - Compresión. Con Modo de servidor web establecido en gzip,
AM_FEATUREFLAGS_ENABLEBROTLICOMPRESSION=truenegocia la compresión Brotli para las respuestas de la API con los clientes que la aceptan, en lugar de gzip (opcional, desactivado de forma predeterminada; reinicia el servidor tras cambiarlo).
Alta disponibilidad
Varios servidores de Antimatter pueden ejecutarse como un cluster detrás de un equilibrador de carga, sin necesidad de licencia. Deben compartir la misma base de datos PostgreSQL, el mismo almacenamiento de archivos S3 y la configuración en la base de datos (AM_CONFIG). En Consola de sistema › Entorno › Alta disponibilidad (ClusterSettings): activa Habilitar el Modo De Alta Disponibilidad (ClusterSettings.Enable), asigna a cada nodo el mismo Nombre del cluster (ClusterSettings.ClusterName) y permite que los nodos se comuniquen entre sí en el puerto de gossip, 8074 TCP y UDP (ClusterSettings.GossipPort). Los nodos se encuentran a través de la base de datos. El equilibrador de carga debe transmitir websockets. Para las llamadas en un cluster, usa rtcd.
Retención de datos
Por defecto, Antimatter conserva todos los mensajes y archivos para siempre. Para eliminarlos automáticamente, ve a Consola de sistema › Conformidad › Políticas de retención de datos:
- La Política global de retención establece la Retención de canales y mensajes directos y la Retención de archivos para todo el servidor: Mantener para siempre, o un número de horas, días o años (
DataRetentionSettings.EnableMessageDeletion,MessageRetentionHours,EnableFileDeletion,FileRetentionHours). - Las Políticas de retención personalizadas establecen otra duración para comunidades y canales seleccionados.
- El trabajo de eliminación se ejecuta a diario a la hora que elijas (
DataRetentionSettings.DeletionJobStartTime,02:00UTC por defecto). Ejecutar el Trabajo de Eliminación Ahora lo ejecuta de inmediato, y el Registro de políticas lista lo que cada ejecución eliminó.
Exportación de cumplimiento normativo y registros de auditoría
- Consola de sistema › Conformidad › Exportación de cumplimiento exporta todos los mensajes y archivos a diario (Habilitar Los Informes de Conformidad,
MessageExportSettings.EnableExport, desactivado por defecto; Hora de exportación,01:00por defecto) en uno de los formatos que los sistemas de archivo pueden leer: CSV, Actiance XML o Global Relay (un archivo zip, o EML enviado mediante SMTP).amctl compliance-exportejecuta y descarga las exportaciones desde la línea de comandos. - Monitorización de Conformidad (
ComplianceSettings) escribe informes diarios en un directorio. Es el mecanismo más antiguo; se recomienda usar la Exportación de cumplimiento. - Registro de auditoría (beta,
ExperimentalAuditSettings) registra eventos administrativos y de seguridad (inicios de sesión, cambios de permisos y de configuración) en un archivo propio. Un registro de inicio de sesión único también indica si ese inicio de sesión creó la cuenta. - Condiciones de servicio personalizadas pide a todos que acepten sus términos antes de usar Antimatter, y de nuevo después de que los modifique.
Problemas comunes
«No se puede conectar al servidor», o los mensajes solo aparecen después de una recarga
El websocket no se establece. Comprueba que el proxy inverso transmite las cabeceras Upgrade y Connection (consulta el ejemplo de nginx) y que la URL del sitio coincide exactamente con la dirección en el navegador, incluido https.
Las subidas fallan con «413 Request Entity Too Large»
El proxy rechaza el tamaño. Aumente su límite (nginx client_max_body_size) al menos hasta el Tamaño máximo de los Archivos en Consola de sistema › Entorno › Almacenamiento de Archivos (FileSettings.MaxFileSize, 100 MB por defecto).
Las personas no pueden iniciar llamadas, o se unen pero no oyen nada
Si solo los administradores pueden iniciar llamadas, desactiva el Modo de prueba de las llamadas. Si el botón de llamada no aparece en los canales de una comunidad, es porque la comunidad es de tipo Comunidad, donde las llamadas están desactivadas por defecto: los administradores del canal o de la comunidad pueden activar las llamadas en un canal, o cambiar el tipo de la comunidad (ver Dónde están activadas las llamadas). Si las personas se unen pero no oyen nada, el puerto de medios está bloqueado o el servidor anuncia la dirección incorrecta: abre el puerto 8443 UDP y TCP, y configura Sustitución del host ICE detrás de NAT. Las personas en redes que bloquean ambos necesitan un servidor TURN. Ver Llamadas y voz.
El selector de GIF está vacío
Comprueba la URL del servicio de GIF (http://gifs:8080/v2 con el archivo compose del sitio) y la clave de API (el GIFS_API_KEY de .env) en Consola de sistema › Plugins › GIFs, y que el servicio gifs se esté ejecutando: docker compose ps gifs.
No llegan correos electrónicos
Use Probar conexión en Consola de sistema › Entorno › SMTP, compruebe que la Dirección para Notificación de correo electrónico no siga siendo test@example.com y busque en el registro smtp o mail.
Una aplicación muestra «Failed to start»
Busca su id en el registro (docker compose logs antimatter | grep <app id>). Desactívala y actívala en la gestión de plugins para reiniciarla.
El servidor no se inicia
Lee el final de su registro. Lo más frecuente es que la base de datos no sea accesible (comprueba AM_SQLSETTINGS_DATASOURCE con antimatter db ping), que una migración de la base de datos haya fallado (restaura la copia de seguridad tomada antes de la actualización e informa del error) o que el puerto de escucha esté ocupado.
Bloqueo de la cuenta de administrador
Desde el servidor, el modo local no requiere contraseña:
docker compose exec antimatter amctl --local user change-password admin --password 'a-new-password'
docker compose exec antimatter amctl --local user resetmfa admin
docker compose exec antimatter amctl --local roles system-admin admin
Informar de un error
Abre un problema en el repositorio de la comunidad de Antimatter, indicando la versión, cómo lo instalaste, lo que hiciste y las líneas de registro relevantes. Informa de los problemas de seguridad de forma privada, como explica la política de seguridad.