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 a docker compose ps healthy vagy unhealthy állapotot mutat.
  • A GET /api/v4/system/ping bejelentkezé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 ping ellenő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ásKulcs és változóAlapérték
Teljesítmény monitorozás engedélyezéseMetricsSettings.Enable, AM_METRICSSETTINGS_ENABLEki
Hallgatási címMetricsSettings.ListenAddress, AM_METRICSSETTINGS_LISTENADDRESS:8067
Kliens teljesítménymérés engedélyezéseMetricsSettings.EnableClientMetricsbekapcsolva: 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éket INFO-ra vagy WARN-re: a DEBUG szint 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:00 UTC 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.
A törölt üzenetek és fájlok véglegesen eltűnnek az adatbázisból és a fájltárhelyről. Ellenőrizze az idejűségeket, mielőtt bekapcsol egy politikát, és ne feledje, hogy a mentések továbbra is tartalmazzák a törölt adatokat, amíg le nem járnak.

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 szerint 01: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). A amctl compliance-export parancs 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.