Operațiuni
Supravegheați serverul, permiteți-i să gestioneze mai mulți utilizatori, decideți cât timp se păstrează datele și rezolvați problemele cu care administratorii se confruntă cel mai des.
Verificări de sănătate
amctl --local system status(în container:docker compose exec antimatter amctl --local system status). Verificarea de sănătate a imaginii Docker o rulează la fiecare 30 de secunde, astfel încâtdocker compose psafișeazăhealthysauunhealthy.GET /api/v4/system/pingrăspunde fără autentificare, pentru un monitor extern sau un echilibrator de încărcare:curl -fsS https://chat.example.com/api/v4/system/ping.antimatter db pingverifică dacă baza de date este accesibilă cu setările configurate.- Consola de sistem › Raportarea › Statistica sistemului afișează numărul de utilizatori, mesaje și sesiuni, iar Optimizare spațiu de lucru enumeră problemele de configurare care necesită atenție.
Metrice
Serverul poate publica metrici Prometheus: rate și durate de cereri, conexiuni websocket, utilizarea bazei de date și a cache-ului, joburi, hook-uri de pluginuri și altele. Activați-le în Consola de sistem › Mediu › Monitorizarea performanței:
| Setare | Cheie și variabilă | Implicit |
|---|---|---|
| Activați monitorizarea performanțelor | MetricsSettings.Enable, AM_METRICSSETTINGS_ENABLE | dezactivat |
| Ascultați adresa | MetricsSettings.ListenAddress, AM_METRICSSETTINGS_LISTENADDRESS | :8067 |
| Activați monitorizarea performanței clientului | MetricsSettings.EnableClientMetrics | activat: navigatoarele și aplicațiile raportează propriile lor timpi de răspuns |
Prometheus extrage apoi datele de la http://<server>:8067/metrics. Fiecare metrică este publicată sub numele Mattermost (mattermost_…) și sub numele Antimatter (antimatter_…), astfel încât panourile de control Mattermost existente să continue să funcționeze. Aplicațiile publică propriile metrici, de exemplu aplicația Agents la /plugins/mattermost-ai/metrics.
Portul de metrici nu necesită autentificare: păstrați-l într-o rețea privată. Fișierul de compoziție al site-ului nu îl publică; pentru a-l extrage de pe gazdă, adăugați "127.0.0.1:8067:8067" la ports ale serviciului antimatter.
Aplicația Metrics
Fără un server Prometheus, aplicația Metrics (dezactivată implicit, consultați Aplicațiile incluse) colectează aceleași metrici într-o mică bază de date cu serii temporale din interiorul Antimatter: la fiecare 60 de secunde, păstrate timp de 15 zile. Activează punctul de acces pentru metrici la pornire. Pagina sa din Consola de sistem › Plugin-uri afișează dimensiunea bazei de date și vă permite să descărcați extrase ale datelor, pentru propria analiză sau pentru a le atașa unui raport de eroare; ultima zi este, de asemenea, adăugată în pachetele de suport.
Pachet de suport
Un pachet de suport este un fișier zip care conține tot ce este necesar pentru a diagnostica o problemă: versiuni, statistici, configurația cu secretele eliminate, lista aplicațiilor și a joburilor, schema bazei de date, jurnalul recent și profilele de performanță. Generați unul cu amctl system supportpacket, sau din Consola de sistem, din meniul de sus al barei laterale (Suport comercial, care apoi vă permite să alegeți ce să includeți). Citiți-l înainte de a-l partaja: nu conține mesaje, dar conține numele comunităților, al utilizatorilor și al setărilor.
Performanță și scalabilitate
Un server cu 2 nuclee CPU și 4 GB de memorie poate deservi câteva sute de persoane. Înainte de a adăuga servere, examinați:
- Baza de date. PostgreSQL face cea mai mare parte a muncii: oferiți-i stocare rapidă și memorie. Replicile de citire pot prelua sarcina de citire (
SqlSettings.DataSourceReplicas, o listă de URL-uri de conectare). - Căutare. Mesajele sunt căutate implicit în baza de date. Pentru serverele mari, Elasticsearch sau OpenSearch pot prelua căutarea și indexarea: Consola de sistem › Mediu › Elasticsearch (
ElasticsearchSettings: Tip de motor Elasticsearch sau OpenSearch, Adresa de conectare la server, credențiale, apoi activați indexarea, construiți indexul și activați căutarea). - Apeluri. Media apelurilor reprezintă cea mai mare sarcină. Mutăți-le pe un server rtcd: consultați Apeluri și voce.
- Fișiere deschise. Fiecare persoană conectată menține un websocket deschis. Fișierul de compozare de producție din antimatter-docker crește limita la 49152 (
ulimits: nofile); faceți la fel și cu systemd (LimitNOFILE). - Jurnale. Reduceți
LogSettings.ConsoleLevellaINFOsauWARN:DEBUGînregistrează multe pe un server aglomerat.
Disponibilitate ridicată
Mai multe servere Antimatter pot rula ca un cluster în spatele unui echilibrator de sarcină, fără licență. Ele trebuie să partajeze aceeași bază de date PostgreSQL, același stocare de fișiere S3 și configurația din baza de date (AM_CONFIG). În Consola de sistem › Mediu › Valabilitate mare (ClusterSettings): activați Activați modul de disponibilitate înaltă (ClusterSettings.Enable), dați fiecărui nod același Numele grupului (ClusterSettings.ClusterName) și permiteți nodurilor să se atingă reciproc pe portul gossip, 8074 TCP și UDP (ClusterSettings.GossipPort). Nodurile se găsesc reciproc prin baza de date. Echilibratorul de sarcină trebuie să transmită websockets. Pentru apeluri într-un cluster, utilizați rtcd.
Păstrarea datelor
În mod implicit, Antimatter păstrează fiecare mesaj și fișier pentru totdeauna. Pentru a șterge automat cele vechi, mergeți la Consola de sistem › Conformitate › Politici de păstrare a datelor:
- Politica globală de păstrare a datelor stabilește Păstrarea mesajelor în canale și mesaje directe și Reținerea fișierului pentru întregul server: Păstrați pentru totdeauna, sau un număr de ore, zile sau ani (
DataRetentionSettings.EnableMessageDeletion,MessageRetentionHours,EnableFileDeletion,FileRetentionHours). - Politici de păstrare personalizate stabilesc o durată diferită pentru comunitățile și canalele alese.
- Sarcina de ștergere rulează în fiecare zi la ora pe care o alegeți (
DataRetentionSettings.DeletionJobStartTime, implicit02:00UTC). Executați sarcina de ștergere acum o rulează imediat, iar Jurnal de politici enumeră ce a eliminat fiecare rulare.
Export de conformitate și jurnale de audit
- Consola de sistem › Conformitate › Compatibilitate Export (Beta) exportă toate mesajele și fișierele în fiecare zi (Activați respectarea exportului,
MessageExportSettings.EnableExport, dezactivat implicit; Conformitate Timp de export, implicit01:00) într-unul dintre formatele citite de sistemele de arhivare: CSV, Actiance XML sau Global Relay (un fișier zip, sau EML trimis prin SMTP).amctl compliance-exportrulează și descarcă exporturile din linia de comandă. - Monitorizarea conformității (
ComplianceSettings) scrie rapoarte zilnice într-un director. Este mecanismul mai vechi; preferați Compatibilitate Export (Beta). - Jurnal de audit (beta,
ExperimentalAuditSettings) înregistrează evenimentele administrative și de securitate (autentificări, modificări de permisiuni și setări) într-un fișier separat. - Termeni și condiții personalizați (Beta) solicită tuturor utilizatorii să accepte termenii dumneavoastră înainte de a folosi Antimatter și din nou după ce îi modificați.
Probleme frecvente
„Nu se poate conecta la server” sau mesajele apar doar după o reîncărcare
Conexiunea websocket nu trece. Verificați că proxy-ul invers transmite antetele Upgrade și Connection (a se vedea exemplul pentru nginx) și că URL-ul siteului corespunde exact adresei din browser, inclusiv https.
Încărcările eșuează cu „413 Request Entity Too Large”
Proxy-ul refuză dimensiunea. Creșteți limita acestuia (nginx client_max_body_size) la cel puțin Dimensiunea maximă a fișierului din Consola de sistem › Mediu › Stocarea fișierelor (FileSettings.MaxFileSize, implicit 100 MB).
Utilizatorii nu pot iniția apeluri sau se alătură, dar nu aud nimic
Dacă doar administratorii pot iniția apeluri, dezactivați Modul de testare pentru apeluri. Dacă butonul de apel lipsește în canalele unei comunități, aceasta este de tipul Comunitate, unde apelurile sunt dezactivate implicit: administratorii canalului sau ai comunității pot activa apelurile într-un canal sau pot schimba tipul comunității (a se vedea Unde sunt apelurile activate). Dacă utilizatorii se alătură, dar nu aud nimic, portul media este blocat sau serverul anunță o adresă incorectă: deschideți porturile 8443 UDP și TCP și configurați Suprascriere gazdă ICE în spatele NAT. Utilizatorii din rețele care blochează ambele protocoale au nevoie de un server TURN. A se vedea Apeluri și voce.
Selectorul de GIF-uri este gol
Verificați URL-ul serviciului GIF (http://gifs:8080/v2 în fișierul de compunere al siteului) și Cheia API (GIFS_API_KEY din .env) în Consola de sistem › Plugin-uri › GIF, precum și faptul că serviciul gifs rulează: docker compose ps gifs.
Nu ajung e-mailuri
Folosiți Testează conexiunea în Consola de sistem › Mediu › SMTP, verificați că Notificare de la adresa nu este încă test@example.com și căutați în jurnal după smtp sau mail.
O aplicație afișează „Failed to start”
Căutați identificatorul acesteia în jurnal (docker compose logs antimatter | grep <app id>). Dezactivați și activați-o din Gestionarea plugin-urilor pentru a o reporni.
Serverul nu pornește
Citiți finalul jurnalului. Cel mai adesea, baza de date este inaccesibilă (verificați AM_SQLSETTINGS_DATASOURCE cu antimatter db ping), o migrare a bazei de date a eșuat (restaurați copia de siguranță făcută înainte de actualizare și raportați eroarea) sau portul de ascultare este ocupat.
Blocat din contul de administrator
De pe server, modulul local nu necesită parolă:
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
Raportarea unui bug
Deschideți o problemă în depozitul comunității Antimatter, specificând versiunea, modul de instalare, acțiunile efectuate și liniile relevante din jurnal. Raportați problemele de securitate în mod privat, așa cum explică politica de securitate.