Működtetés
Figyeld a szervert, skálázd, hogy több felhasználót is kezeljen, határozd meg, mennyi ideig tárold az adatokat, és javítsd azokat a hibákat, amelyekkel az adminisztrátorok leggyakrabban szembesülnek.
Állapotellenőrzések
amctl --local system status(a konténerben:docker compose exec antimatter amctl --local system status). A Docker-kép állapotellenőrzése 30 másodpercenként futtatja, így adocker compose pshealthyvagyunhealthyállapotot mutat.- A
GET /api/v4/system/pingbejelentkezés nélkül válaszol, külső figyelő vagy terheléselosztó számára:curl -fsS https://chat.example.com/api/v4/system/ping. - Az
antimatter db pingellenőrzi, hogy a adatbázis elérhető-e a beállított paraméterekkel. - A(z) Rendszerkonzol › Jelentések › Rendszerstatisztikák megmutatja a felhasználók, bejegyzések és munkamenetek számát, a Munkaterület optimalizáció pedig felsorolja azokat a beállítási problémákat, amiket érdemes átnézni.
Metriki
A szerver Prometheus-metrikákat is publikálhat: kérések aránya és időtartama, websocket-kapcsolatok, adatbázis- és gyorsítótárazási használat, feladatok, bővítmény-horgonyok és mások. Ezeket a(z) Rendszerkonzol › Környezet › Teljesítmény monitorozás alatt lehet bekapcsolni:
| Beállítás | Kulcs és változó | Alapérték |
|---|---|---|
| Teljesítmény monitorozás engedélyezése | MetricsSettings.Enable, AM_METRICSSETTINGS_ENABLE | ki |
| Hallgatási cím | MetricsSettings.ListenAddress, AM_METRICSSETTINGS_LISTENADDRESS | :8067 |
| Kliens teljesítménymérés engedélyezése | MetricsSettings.EnableClientMetrics | bekapcsolva: a böngészők és appok saját időzítéseiket jelentik |
A Prometheus ekkor a http://<server>:8067/metrics címről olvassa a metrikákat. Minden metrika a Mattermost- ( mattermost_…) és az Antimatter- ( antimatter_…) nevén is megjelenik, így a meglévő Mattermost-irányítópultok továbbra is működnek. Az appok saját metrikáikat publikálják, például az Ügynökök app a /plugins/mattermost-ai/metrics útvonalon.
A metrikaporthoz nem szükséges bejelentkezés: tartsd privát hálózaton. A webhely compose-fájla nem teszi közzé; ha a gazdagépről szeretnéd olvasni, add hozzá a "127.0.0.1:8067:8067" bejegyzést az antimatter szolgáltatás ports részéhez.
A Metrikák app
Prometheus-szerver nélkül a Metrika-alkalmazás (alapból kikapcsolva, lásd: Beépített alkalmazások) a Metrika-alkalmazás ugyanazokat a metrikákat gyűjti az Antimatter belső, kis méretű idősor-adatbázisába: 60 másodpercenként, 15 napig. Induláskor bekapcsolja a metrika végpontot. A Rendszerkonzol › Bővítmények oldalon megtekinthető az adatbázis mérete, és letölthetők a mentések, saját elemzéshez vagy hibajelzés csatolásához; a legutóbbi nap adatai a támogatási csomagokba is beletartoznak.
Támogatási csomag
A támogatási csomag egy zip-fájl, amely minden szükséges információt tartalmaz a probléma diagnosztizálásához: verziók, statisztikák, a titkos adatok eltávolított beállítások, az alkalmazások és feladatok listája, az adatbázis séma, a legutóbbi napló és teljesítményprofilok. Egyet generálhatsz a(z) amctl system supportpacket paranccsal, vagy a Rendszerkonzolban a felső menüből (Kereskedelmi támogatás, ahol aztán kiválaszthatod, mit tartalmazzon). Oszd meg csak akkor, ha átolvasod: nem tartalmaz üzeneteket, de tartalmazza a közösségek, felhasználók és beállítások neveit.
Teljesítmény és méretezhetőség
Egy 2 CPU-magos, 4 GB RAM-os szerver néhány száz felhasználót kiszolgál. Szerverek hozzáadása előtt tekintse meg:
- Az adatbázis. A PostgreSQL végzi a legtöbb munkát: gyors tárhelyet és memóriát adjon neki. Olvasási replikák vehetik át az olvasási terhelést (
SqlSettings.DataSourceReplicas, csatlakozási URL-ek listája). - Keresés Az üzenetek alapértelmezetten az adatbázisban keresendők. Nagyobb szerverek esetén az Elasticsearch vagy OpenSearch átveheti a keresést és indexelést: Rendszerkonzol › Környezet › Elasticsearch (
ElasticsearchSettings: Háttérrendszer típusa Elasticsearch vagy OpenSearch, Szerver kapcsolódási címe, hitelesítő adatok, majd engedélyezd az indexelést, építsd fel az indexet, és engedélyezd a keresést). - Hívások. A hívások médiája a legnagyobb terhelést jelenti. Mozgatja át őket egy rtcd-szerverre: lásd Hívások és hang.
- Megnyitott fájlok. Minden csatlakozott felhasználó egy websocket-et tart nyitva. Az antimatter-docker produkciós compose-fájla 49152-re emeli a limitet (
ulimits: nofile); a systemd-ben is tegye meg ugyanezt (LimitNOFILE). - Naplók. Csökkentse a
LogSettings.ConsoleLevelértéketINFO-ra vagyWARN-re: aDEBUGszint sokat ír egy zsúfolt szerveren.
Nagy rendelkezésre állás
Több Antimatter-szerver is futhat fürtként egy terheléselosztó mögött, licenc nélkül. Ugyanazt a PostgreSQL-adatbázist, ugyanazt az S3-fájl-tárhelyet és az adatbázisban tárolt beállításokat (AM_CONFIG) kell megosztaniuk. A(z) Rendszerkonzol › Környezet › Magas rendelkezésreállás (ClusterSettings) alatt: kapcsold be a(z) Magas rendelkezésre állás mód engedélyezése (ClusterSettings.Enable), minden csomópontnak ugyanazt a(z) Fürt név (ClusterSettings.ClusterName) kell kapnia, és a csomópontoknak elérniük kell egymást a gossip-porton, a(z) 8074 TCP és UDP (ClusterSettings.GossipPort) címen. A csomópontok az adatbázison keresztül találják meg egymást. A terheléselosztónak tovább kell adnia a websocket-kapcsolatokat. Fürtben a hívásokhoz a rtcd-t használd.
Adattárolási idejűség
Alapértelmezetten az Antimatter minden üzenetet és fájlt örökre megőriz. Az elavultak automatikus törléséhez a(z) Rendszerkonzol › Megfelelőség › Adatmegőrzési szabályzatok menüpontra kell menni:
- A Globális adatmegőrzési szabályzat a teljes szerverre beállítja a Csatorna- és közvetlen üzenet-megőrzést, valamint a Fájl megőrzést: Megőrzés örökre, vagy egy meghatározott óra-, nap- vagy év-számot (
DataRetentionSettings.EnableMessageDeletion,MessageRetentionHours,EnableFileDeletion,FileRetentionHours). - Az Egyedi adatmegőrzési szabályzatok más időtartamot állítanak be a kiválasztott közösségekhez és csatornákhoz.
- A törlési feladat minden nap a kiválasztott időpontban fut (
DataRetentionSettings.DeletionJobStartTime,02:00UTC alapértelmezés szerint). A Törlési feladat futtatása most opció azonnal elindítja, a Szabályzat napló pedig felsorolja, hogy minden futás mit távolított el.
Szabályozási export és ellenőrzési naplók
- A Rendszerkonzol › Megfelelőség › Megfelelőségi jelentés naponta exportálja az összes üzenetet és fájlt (Megfelelőségi exportálás engedélyezése,
MessageExportSettings.EnableExport, alapértelmezés szerint kikapcsolva; Megfelelőség exportálás ideje, alapértelmezés szerint01:00) az archiváló rendszerek által olvasható formátumok egyikében: CSV, Actiance XML vagy Global Relay (zip fájl, vagy SMTP-n keresztül küldött EML). Aamctl compliance-exportparancs soron keresztül futtatja és letölti az exportokat. - A Megfelelőségi monitorozás (
ComplianceSettings) napi jelentéseket ír egy könyvtárba. Ez a régebbi mechanizmus; a Megfelelőségi exportálást érdemes előnyben részesíteni. - Az Audit naplózás (beta,
ExperimentalAuditSettings) adminisztratív és biztonsági eseményeket (bejelentkezések, jogosultság- és beállítás-változások) ír egy külön fájlba. - Az Egyedi szolgáltatási feltételek mindenkit arra kér, hogy fogadja el a feltételeit, mielőtt az Antimattert használja, és újra, ha módosítja őket.
Gyakori problémák
„Nem lehet csatlakozni a szerverhez”, vagy az üzenetek csak újratöltés után jelennek meg
A websocket nem jut át. Ellenőrizze, hogy a reverse proxy továbbítja-e az Upgrade és Connection fejlécet (lásd az nginx példát), és hogy a webhely URL-je pontosan megegyezik-e a böngészőben megadott címmel, az https jelöléssel együtt.
A feltöltések „413 Request Entity Too Large” hibaüzenettel sikertelenek
A proxy elutasítja a méretet. Emelje meg a limitjét (nginx client_max_body_size) legalább a Maximális fájl méret értékére a Rendszerkonzol › Környezet › Fájltárolás menüben (FileSettings.MaxFileSize, alapértelmezés szerint 100 MB).
A felhasználók nem tudnak hívást indítani, vagy csatlakoznak, de nem hallanak semmit
Ha csak az adminisztrátorok indíthatnak hívást, kapcsolja ki a Hívások Próbaüzem beállítását. Ha a hívás gomb hiányzik egy közösség csatornáiban, a közösség a Közösség típusú, ahol a hívások alapértelmezés szerint kikapcsolva vannak: a csatorna vagy a közösség adminisztrátorai bekapcsolhatják a hívásokat egy csatornában, vagy megváltoztathatják a közösség típusát (lásd: Hol érhetők el a hívások). Ha a csatlakozók nem hallanak semmit, a médiaport blokkolt, vagy a szerver hibás címet jelez: nyissa meg a 8443-as UDP és TCP portot, és állítsa be a NAT mögötti ICE Host Override beállítást. Azokon a hálózatokon, ahol mindkettőt blokkolják, TURN-szerverre van szükség. Lásd: Hívások és hang.
A GIF-választó üres
Ellenőrizze a GIF-szolgáltatás URL (http://gifs:8080/v2 a webhely compose fájljával) és az API-kulcs (a .env GIFS_API_KEY értéke) beállításait a Rendszerkonzol › Bővítmények › GIF-ek menüben, valamint hogy a gifs szolgáltatás fut: docker compose ps gifs.
Nem érkeznek e-mailek
Használja a Kapcsolat tesztelése funkciót a Rendszerkonzol › Környezet › SMTP menüben, ellenőrizze, hogy az Értesítés feladó címe nem maradt-e test@example.com, és keresse meg a naplóban a smtp vagy mail kifejezéseket.
Egy alkalmazás „Failed to start” hibaüzenetet mutat
Keresse meg a(z) id-jét a naplóban (docker compose logs antimatter | grep <app id>). Tiltsa le, majd engedélyezze újra a Plugin Management-ben, hogy újraindulszon.
A szerver nem indul el
Olvasd el a napló végét. Leggyakrabban a adatbázis nem érhető el (ellenőrizze a(z) AM_SQLSETTINGS_DATASOURCE beállítást a(z) antimatter db ping paranccsal), egy adatbázis-migráció sikertelen (állítsa vissza a frissítés előtt készített mentést, és jelezze a hibát), vagy a figyelőport foglalt.
Zárolva az adminisztrátori fiók
A szerveren a helyi mód nem igényel jelszót:
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
Hibabejelentés
Nyiss egy hibajegyet az Antimatter közösségi repozitóriumban, és írd meg a verziót, a telepítési módot, a végrehajtott műveleteket, valamint a releváns naplóbejegyzéseket. A biztonsági problémákat privát módon jelezd, ahogy a biztonsági irányelv is leírja.