Λειτουργίες

Παρακολουθήστε τον διακομιστή, επιτρέψτε του να υποστηρίξει περισσότερους χρήστες, καθορίστε τη διάρκεια διατήρησης των δεδομένων και διορθώστε τα προβλήματα που συναντούν συχνότερα οι διαχειριστές.

Έλεγχοι υγείας

  • amctl --local system status (μέσα στο container: docker compose exec antimatter amctl --local system status). Ο έλεγχος υγείας της εικόνας Docker την εκτελεί κάθε 30 δευτερόλεπτα, οπότε η docker compose ps εμφανίζει healthy ή unhealthy.
  • Η GET /api/v4/system/ping απαντά χωρίς σύνδεση, για εξωτερικό monitor ή load balancer: curl -fsS https://chat.example.com/api/v4/system/ping.
  • Η antimatter db ping ελέγχει ότι η βάση δεδομένων είναι προσβάσιμη με τις ρυθμισμένες παραμέτρους.
  • Η Κονσόλα συστήματος › Αναφορές › Στατιστικά συστήματος εμφανίζει τον αριθμό των χρηστών, των αναρτήσεων και των συνόδων.
  • Η Κονσόλα συστήματος › Αναφορές › Υγεία ιστότοπου ελέγχει κάθε ώρα τη βάση δεδομένων, την αναζήτηση, τη δέσμη (cluster), τις push ειδοποιήσεις, τις εργασίες, τη σύνδεση, τη συμμόρφωση κ.ά., και παραθέτει όσα χρήζουν προσοχής με τη σοβαρότητά τους. Μπορείτε να θέσετε σε σίγαση μια διαπίστωση που δεν χρειάζεται να δείτε ξανά και να τη βρείτε αργότερα στην καρτέλα «Σε σίγαση», μαζί με το ποιος τη θέσε σε σίγαση και πότε. Είναι ενεργή από προεπιλογή. Αντικαθιστά τη Βελτιστοποίηση Χώρου Εργασίας για τους πλήρεις διαχειριστές συστήματος (ένας εξουσιοδοτημένος διαχειριστής που μπορεί μόνο να διαβάσει τα στατιστικά του ιστότοπου εξακολουθεί να βλέπει τη Βελτιστοποίηση Χώρου Εργασίας). Απενεργοποιήστε την με AM_FEATUREFLAGS_HEALTHDASHBOARD=false.
System Console › Reporting › Site health, with open findings grouped by severity
Κονσόλα συστήματος › Αναφορές › Υγεία ιστότοπου, ομαδοποιημένη κατά σοβαρότητα.
System Console › Reporting › Server Logs, with level badges, filters and a live tail toggle
Κονσόλα συστήματος › Αναφορές › Καταγραφές διακομιστή.

Μετρικές

Ο διακομιστής μπορεί να δημοσιεύει μετρικές Prometheus: ρυθμούς και διάρκειες αιτημάτων, συνδέσεις websocket, χρήση βάσης δεδομένων και cache, εργασίες, hooks προτύπων και άλλα. Ενεργοποιήστε τις στο Κονσόλα συστήματος › Περιβάλλον › Παρακολούθηση απόδοσης:

ΡύθμισηΚλειδί και μεταβλητήΠροεπιλογή
Ενεργοποίηση παρακολούθησης απόδοσηςMetricsSettings.Enable, AM_METRICSSETTINGS_ENABLEαπενεργοποιημένη
Διεύθυνση ακρόασηςMetricsSettings.ListenAddress, AM_METRICSSETTINGS_LISTENADDRESS:8067
Ενεργοποίηση παρακολούθησης απόδοσης πελάτηMetricsSettings.EnableClientMetricsενεργό: τα περιηγητές και οι εφαρμογές αναφέρουν τους δικούς τους χρόνους απόκρισης

Το Prometheus στη συνέχεια συλλέγει από http://<server>:8067/metrics. Κάθε μετρική δημοσιεύεται με το όνομά της στο Mattermost (mattermost_…) και με το όνομά της στο Antimatter (antimatter_…), ώστε τα υπάρχοντα dashboards του Mattermost να συνεχίσουν να λειτουργούν. Οι εφαρμογές δημοσιεύουν τις δικές τους μετρικές, για παράδειγμα η εφαρμογή Agents στο /plugins/mattermost-ai/metrics.

Η θύρα μετρικών δεν απαιτεί σύνδεση: κρατήστε την σε ιδιωτικό δίκτυο. Το αρχείο compose του site δεν τη δημοσιεύει. Για να τη συλλέξετε από τον host, προσθέστε "127.0.0.1:8067:8067" στις ports της υπηρεσίας antimatter.

Η εφαρμογή Metrics

Χωρίς διακομιστή Prometheus, η εφαρμογή Μετρικές (δείτε Ενσωματωμένες εφαρμογές) συλλέγει τις ίδιες μετρικές σε μια μικρή βάση δεδομένων χρονολογικών σειρών εντός του Antimatter: κάθε 60 δευτερόλεπτα, με διατήρηση για 15 ημέρες. Η ενεργοποίηση της Ενεργοποίησης παρακολούθησης απόδοσης ενεργοποιεί επίσης την εφαρμογή, εκτός αν την έχετε απενεργοποιήσει εσείς ο ίδιος. Ενεργοποιεί το σημείο τελικό μετρικών κατά την εκκίνηση. Η σελίδα της στην Κονσόλα συστήματος › Προσθήκες εμφανίζει το μέγεθος της βάσης δεδομένων και σας επιτρέπει να κατεβάσετε αποθηκεύσεις (dumps) των δεδομένων, για δική σας ανάλυση ή για να τις επισυνάψετε σε μια αναφορά σφάλματος. Η πιο πρόσφατη ημέρα προστίθεται επίσης στα πακέτα υποστήριξης.

Πακέτο υποστήριξης

Ένα πακέτο υποστήριξης είναι ένα αρχείο zip με ό,τι χρειάζεται για τη διάγνωση ενός προβλήματος: εκδόσεις, στατιστικά, η διαμόρφωση με τα μυστικά της αφαιρεμένα, ο κατάλογος των εφαρμογών και των εργασιών, το σχήμα της βάσης δεδομένων, το πρόσφατο αρχείο και τα προφίλ απόδοσης. Δημιουργήστε ένα με amctl system supportpacket, ή στην Κονσόλα συστήματος από το μενού στην κορυφή της πλευρικής στήλης (Επαγγελματική υποστήριξη, που στη συνέχεια σας επιτρέπει να επιλέξετε τι να συμπεριλάβετε). Διαβάστε το πριν το μοιραστείτε: δεν περιέχει μηνύματα, αλλά περιέχει ονόματα κοινοτήτων, χρηστών και ρυθμίσεων.

Απόδοση και κλιμάκωση

Ένας server με 2 πυρήνες CPU και 4 GB μνήμης εξυπηρετεί μερικές εκατοντάδες χρήστες. Πριν προσθέσετε servers, εξετάστε τα εξής:

  • Η βάση δεδομένων. Το PostgreSQL εκτελεί το μεγαλύτερο μέρος της εργασίας: δώστε του γρήγορη αποθήκευση και μνήμη. Τα αναγνωστικά αναπαραστά (read replicas) μπορούν να αναλάβουν το φορτίο ανάγνωσης (SqlSettings.DataSourceReplicas, μια λίστα με URL συνδέσεων).
  • Αναζήτηση. Τα μηνύματα αναζητούνται από προεπιλογή στη βάση δεδομένων. Για μεγάλους διακομιστές, το Elasticsearch ή το OpenSearch μπορούν να αναλάβουν την αναζήτηση και τον δεικτοποίηση: Κονσόλα συστήματος › Περιβάλλον › Elasticsearch (ElasticsearchSettings: Τύπος backend Elasticsearch ή OpenSearch, Διεύθυνση σύνδεσης διακομιστή, διαπιστευτήρια, στη συνέχεια ενεργοποίηση δεικτοποίησης, δημιουργία δείκτη και ενεργοποίηση αναζήτησης).
  • Κλήσεις. Τα μέσα (media) των κλήσεων αποτελούν το βαρύτερο φορτίο. Μετακινήστε τα σε έναν server rtcd: δείτε Κλήσεις και φωνή.
  • Ανοικτά αρχεία. Κάθε συνδεδεμένος χρήστης διατηρεί ένα websocket ανοιχτό. Το αρχείο compose παραγωγής του antimatter-docker αυξάνει το όριο σε 49152 (ulimits: nofile)· κάντε το ίδιο με systemd (LimitNOFILE).
  • Αρχεία καταγραφής (Logs). Μειώστε το LogSettings.ConsoleLevel σε INFO ή WARN: το DEBUG καταγράφει πολλά σε έναν πολυάσχολο server.
  • Συμπίεση. Με τη Λειτουργία web διακομιστή ρυθμισμένη σε gzip, το AM_FEATUREFLAGS_ENABLEBROTLICOMPRESSION=true διαπραγματεύεται συμπίεση Brotli για τις απαντήσεις του API με πελάτες που τη δέχονται, αντί για gzip (προαιρετικό, απενεργοποιημένο από προεπιλογή· επανεκκινήστε τον διακομιστή μετά την αλλαγή).

Υψηλή διαθεσιμότητα

Πολλοί διακομιστές Antimatter μπορούν να εκτελούνται ως συσσωρευτής πίσω από έναν ισορροπητή φόρτου, χωρίς άδεια χρήσης. Πρέπει να μοιράζονται την ίδια βάση δεδομένων PostgreSQL, την ίδια αποθήκευση αρχείων S3 και τη διαμόρφωση στη βάση δεδομένων (AM_CONFIG). Στην Κονσόλα συστήματος › Περιβάλλον › Υψηλή διαθεσιμότητα (ClusterSettings): ενεργοποιήστε το Ενεργοποίηση λειτουργίας υψηλής διαθεσιμότητας (ClusterSettings.Enable), δώστε σε κάθε κόμβο το ίδιο Όνομα συσσωρεύτη (ClusterSettings.ClusterName) και επιτρέψτε στους κόμβους να επικοινωνούν μεταξύ τους στην θύρα gossip, 8074 TCP και UDP (ClusterSettings.GossipPort). Οι κόμβοι εντοπίζουν ο ένας τον άλλον μέσω της βάσης δεδομένων. Ο ισορροπητής φόρτου πρέπει να διαβιβάζει websockets. Για κλήσεις σε συσσωρευτή, χρησιμοποιήστε το rtcd.

Διατήρηση δεδομένων

Εξ ορισμού, το Antimatter διατηρεί κάθε μήνυμα και αρχείο για πάντα. Για να διαγράφετε αυτόματα τα παλιά, πηγαίνετε στο Κονσόλα συστήματος › Συμμόρφωση › Πολιτικές διατήρησης δεδομένων:

  • Η Παγκόσμια πολιτική διατήρησης ορίζει τη Διατήρηση καναλιών και άμεσων μηνυμάτων και τη Διατήρηση αρχείων για το σύνολο του σέρβερ: Διατήρηση για πάντα, ή έναν αριθμό ωρών, ημερών ή ετών (DataRetentionSettings.EnableMessageDeletion, MessageRetentionHours, EnableFileDeletion, FileRetentionHours).
  • Οι Προσαρμοσμένες πολιτικές διατήρησης ορίζουν άλλη διάρκεια για επιλεγμένες κοινότητες και κανάλια.
  • Η εργασία διαγραφής εκτελείται καθημερινά στην ώρα που επιλέγετε (DataRetentionSettings.DeletionJobStartTime, 02:00 UTC από προεπιλογή). Το Εκτέλεση εργασίας διαγραφής τώρα την εκτελεί αμέσως, και το Αρχείο πολιτικών καταγράφει τι αφαίρεσε κάθε εκτέλεση.
Τα διαγραμμένα μηνύματα και αρχεία εξαφανίζονται οριστικά, τόσο από τη βάση δεδομένων όσο και από την αποθήκευση αρχείων. Ελέγξτε τις διάρκειες πριν ενεργοποιήσετε μια πολιτική και θυμηθείτε ότι τα αντίγραφα ασφαλείας σας συνεχίζουν να περιέχουν τα διαγραμμένα δεδομένα μέχρι να λήξουν.

Εξαγωγή συμμόρφωσης και ημερολόγια ελέγχου

  • Η Κονσόλα συστήματος › Συμμόρφωση › Εξαγωγή συμμόρφωσης εξάγει όλα τα μηνύματα και τα αρχεία καθημερινά (Ενεργοποίηση εξάγωγης συμμόρφωσης, MessageExportSettings.EnableExport, απενεργοποιημένη από προεπιλογή; Ώρα Εξαγωγής Συμμόρφωσης, 01:00 από προεπιλογή) σε μία από τις μορφές που διαβάζουν τα συστήματα αρχειοθέτησης: CSV, Actiance XML ή Global Relay (ένα αρχείο zip ή EML που στέλνεται μέσω SMTP). Η εντολή amctl compliance-export εκτελεί και κατεβάζει τις εξαγωγές από τη γραμμή εντολών.
  • Η Παρακολούθηση συμμόρφωσης (ComplianceSettings) γράφει καθημερινές αναφορές σε έναν κατάλογο. Πρόκειται για τον παλαιότερο μηχανισμό· προτιμήστε την Εξαγωγή συμμόρφωσης.
  • Η Καταγραφή ελέγχου (beta, ExperimentalAuditSettings) καταγράφει σε αρχείο δικό της διοικητικά και ασφαλείας γεγονότα (συνδέσεις, αλλαγές δικαιωμάτων και ρυθμίσεων). Μια εγγραφή single sign-on αναφέρει επίσης αν η σύνδεση δημιούργησε τον λογαριασμό.
  • Οι Προσαρμοσμένοι Όροι Παροχής Υπηρεσιών ζητούν από όλους να αποδεχτούν τους όρους σας πριν χρησιμοποιήσουν το Antimatter, και ξανά μετά από κάθε αλλαγή τους.

Συνηθισμένα προβλήματα

«Δεν είναι δυνατή η σύνδεση με τον διακομιστή», ή τα μηνύματα εμφανίζονται μόνο μετά από επαναφόρτωση

Το websocket δεν περνά. Ελέγξτε ότι το reverse proxy περνά τις κεφαλίδες Upgrade και Connection (βλ. το παράδειγμα nginx), και ότι το URL του χώρου εργασίας ταιριάζει ακριβώς με τη διεύθυνση στον περιηγητή, συμπεριλαμβανομένου του https.

Τα ανεβάσματα αποτυγχάνουν με «413 Request Entity Too Large»

Το proxy αρνείται το μέγεθος. Αυξήστε το όριο του (nginx client_max_body_size) σε τουλάχιστον Μέγιστο μέγεθος αρχείου στο Κονσόλα συστήματος › Περιβάλλον › Αποθήκευση αρχείων (FileSettings.MaxFileSize, 100 MB προεπιλεγμένα).

Οι χρήστες δεν μπορούν να ξεκινήσουν κλήσεις, ή συμμετέχουν αλλά δεν ακούνε τίποτα

Εάν μόνο οι διαχειριστές μπορούν να ξεκινήσουν κλήσεις, απενεργοποιήστε τη Λειτουργία δοκιμής των κλήσεων. Αν το κουμπί κλήσης λείπει στα κανάλια μιας κοινότητας, η κοινότητα είναι τύπου Κοινότητα, όπου οι κλήσεις είναι απενεργοποιημένες από προεπιλογή: οι διαχειριστές του καναλιού ή της κοινότητας μπορούν να ενεργοποιήσουν τις κλήσεις σε ένα κανάλι ή να αλλάξουν τον τύπο της κοινότητας (βλ. Πού είναι ενεργοποιημένες οι κλήσεις). Αν οι χρήστες συμμετέχουν αλλά δεν ακούνε τίποτα, η θύρα μέσων είναι μπλοκαρισμένη ή ο διακομιστής ανακοινώνει τη λάθος διεύθυνση: ανοίξτε το 8443 UDP και TCP και ορίστε Επικάλυψη φιξ ICE πίσω από NAT. Οι χρήστες σε δίκτυα που μπλοκάρουν και τα δύο χρειάζονται έναν διακομιστή TURN. Βλ. Κλήσεις και φωνή.

Ο επιλογέας GIF είναι άδειος

Ελέγξτε τη Διεύθυνση URL υπηρεσίας GIF (http://gifs:8080/v2 με το αρχείο σύνθεσης του χώρου) και το Κλειδί API (το GIFS_API_KEY του .env) στην Κονσόλα συστήματος › Προσθήκες › GIF, και ότι η υπηρεσία gifs εκτελείται: docker compose ps gifs.

Δεν φτάνουν email

Χρησιμοποιήστε Δοκιμή σύνδεσης στο Κονσόλα συστήματος › Περιβάλλον › SMTP, ελέγξτε ότι η Διεύθυνση αποστολέα ειδοποιήσεων δεν είναι ακόμα test@example.com, και αναζητήστε στο log για smtp ή mail.

Μια εφαρμογή εμφανίζει «Αποτυχία έναρξης»

Αναζητήστε το id της στο log (docker compose logs antimatter | grep <app id>). Απενεργοποιήστε και ενεργοποιήστε την στη Διαχείριση Plugins για επανεκκίνηση.

Ο διακομιστής δεν ξεκινά

Διαβάστε το τέλος του log. Συνήθως η βάση δεδομένων δεν είναι προσβάσιμη (ελέγξτε AM_SQLSETTINGS_DATASOURCE με antimatter db ping), μια μετανάστευση βάσης δεδομένων απέτυχε (επαναφέρετε το backup που ελήφθη πριν την αναβάθμιση και αναφέρετε το σφάλμα), ή η θύρα ακρόασης είναι απασχολημένη.

Κλειδωμένος από τον λογαριασμό διαχειριστή

Από τον διακομιστή, η τοπική λειτουργία δεν απαιτεί κωδικό πρόσβασης:

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

Αναφορά σφάλματος

Ανοίξτε ένα πρόβλημα στο ανθεκτικό αποθετήριο της κοινότητας Antimatter, αναφέροντας την έκδοση, τον τρόπο εγκατάστασης, τις ενέργειες που εκτελέσατε και τις σχετικές γραμμές του αρχείου καταγραφής. Αναφέρετε τα προβλήματα ασφαλείας ιδιωτικά, όπως εξηγεί η πολιτική ασφαλείας.