Operasyon

Pangangalagaan ang server, pagpapalaki ng kakayahang tumanggap ng mas maraming tao, pagpasya kung gaano katagal itatago ang data, at pag-aayos ng mga pinakakaraniwang problema ng mga administrator.

Health checks

  • amctl --local system status (sa loob ng container: docker compose exec antimatter amctl --local system status). Tinatakbo ng health check ng Docker image ito bawat 30 segundo, kaya ipapakita ng docker compose ps ang healthy o unhealthy.
  • GET /api/v4/system/ping ay sumasagot nang walang pag-sign in, para sa external monitor o load balancer: curl -fsS https://chat.example.com/api/v4/system/ping.
  • antimatter db ping ay sinusuri kung maabot ang database gamit ang naka-configure na settings.
  • System Console › Reporting › Mga Statistics ng System ang nagpapakita ng bilang ng mga user, post at session.
  • System Console › Reporting › Site health ang nagc-check sa database, search, cluster, push, jobs, sign-in, compliance at iba pa tuwing oras, at naglilista ng mga bagay na nangangailangan ng atensyon kasama ang antas ng seryosidad; i-mute ang isang natuklasan na hindi mo na kailangang makita muli, at hanapin ito mamaya sa tab na Muted kasama ang kung sino ang nag-mute at kailan. Naka-on bilang default; pinalitan nito ang Optimization ng Workspace para sa mga full system administrator (ang isang delegated administrator na makakabasa lamang ng mga statistics ng site ay nakikita pa rin ang Optimization ng Workspace). I-off ito gamit ang AM_FEATUREFLAGS_HEALTHDASHBOARD=false.
System Console › Reporting › Site health, with open findings grouped by severity
System Console › Reporting › Site health, nakagrupo ayon sa antas ng seryosidad.
System Console › Reporting › Server Logs, with level badges, filters and a live tail toggle
System Console › Reporting › Server Logs.

Metrics

Maaaring ipaglabas ng server ang mga Prometheus metrics: request rates at durations, websocket connections, database at cache use, jobs, plugin hooks, at iba pa. I-on ito sa System Console › Environment › Performance Monitoring:

SettingKey at variableDefault
Paggawin ang Performance MonitoringMetricsSettings.Enable, AM_METRICSSETTINGS_ENABLEOff
Listen AddressMetricsSettings.ListenAddress, AM_METRICSSETTINGS_LISTENADDRESS:8067
Paggawin ang Client Performance MonitoringMetricsSettings.EnableClientMetricson: ang mga browser at app ay nag-uulat ng sariling timings

Pagkatapos, isisigaw ng Prometheus ang http://<server>:8067/metrics. Bawat metric ay ipinaglabas gamit ang pangalan nito sa Mattermost (mattermost_…) at sa Antimatter (antimatter_…), kaya patuloy na gagana ang mga existing na Mattermost dashboards. Ang mga app ay naglilipat ng sariling metrics, halimbawa ang Agents app sa /plugins/mattermost-ai/metrics.

Hindi nangangailangan ng sign-in ang port ng metrics: itago ito sa private network. Hindi ipinaglabas nito ang compose file ng site; upang isigaw ito mula sa host, magdagdag ng "127.0.0.1:8067:8067" sa ports ng antimatter service.

Ang Metrics app

Kung walang Prometheus server, ang Metrics app (tingnan ang Mga bundled app) ay nagkolekta ng parehong metrics sa isang maliit na time-series database sa loob ng Antimatter: tuwing 60 segundo, at iniiwan ang mga ito sa loob ng 15 araw. Ang pag-on ng Paggawin ang Performance Monitoring ay nag-e-enable din ng app, maliban na lang kung ikaw mismo ang pinatay ito. Pinapagana nito ang metrics endpoint kapag nagsimula ito. Ang pahina nito sa System Console › Mga Plugin ay nagpapakita ng laki ng database at nagbibigay-daan sa iyo na i-download ang mga dump ng data, para sa iyong sariling pagsusuri o para idikit sa isang bug report; ang pinakabagong araw ay dinadagdag din sa mga support packet.

Support packet

Ang support packet ay isang zip file na may mga kailangan upang ma-diagnose ang isang problema: mga bersyon, estadistika, ang configuration na tinanggal ang mga sekreto, ang listahan ng mga app at jobs, ang schema ng database, ang kamakailang log at mga performance profile. I-generate ito gamit ang amctl system supportpacket, o sa System Console mula sa menu sa itaas ng kanyang sidebar (Commercial Support, na pagkatapos ay nagbibigay-daan sa iyo na piliin kung ano ang ilalagay). Basahin ito bago ibahagi: hindi ito naglalaman ng mga mensahe, ngunit naglalaman ito ng mga pangalan ng mga komunidad, user, at setting.

Performance at pagpapalawak

Ang isang server na may 2 CPU cores at 4 GB ng memory ay maaaring maglingkod sa ilang daang tao. Bago magdagdag ng server, tingnan ang:

  • Ang database. Ang PostgreSQL ang nagtatapos ng karamihan ng trabaho: bigyan ito ng mabilis na storage at memory. Ang mga read replica ay maaaring tumanggap ng read load (SqlSettings.DataSourceReplicas, isang listahan ng mga connection URL).
  • Paghahanap. Sa default, ang mga mensahe ay hinahanap sa database. Para sa malalaking server, ang Elasticsearch o OpenSearch ay maaaring tumanggap ng paghahanap at pag-index: System Console › Environment › Elasticsearch (ElasticsearchSettings: Uri ng backend Elasticsearch o OpenSearch, Server Connection Address, mga kredensyal, pagkatapos ay i-enable ang pag-index, i-build ang index, at i-enable ang paghahanap).
  • Mga Tawag. Ang media ng mga tawag ang pinakamabigat na load. Ilipat ito sa isang rtcd server: tingnan ang Mga Tawag at boses.
  • Mga bukas na file. Bawat konektadong tao ay may bukas na websocket. Ang production compose file ng antimatter-docker ay tinaas ang limit sa 49152 (ulimits: nofile); gawin ang pareho gamit ang systemd (LimitNOFILE).
  • Mga Log. Pababaan ang LogSettings.ConsoleLevel sa INFO o WARN: ang DEBUG ay maraming naglala sa isang mabibilog na server.
  • Compression. Kapag ang Web Server Mode ay nakatakda sa gzip, ang AM_FEATUREFLAGS_ENABLEBROTLICOMPRESSION=true ay nag-negotiate ng Brotli compression para sa mga API response sa mga client na tumatanggap nito, sa halip na gzip (opsyonal, naka-off bilang default; i-restart ang server pagkatapos baguhin ito).

Mataas na availability

Maraming Antimatter server ang maaaring tumakbo bilang cluster sa likod ng load balancer, nang walang lisensya. Dapat nilang magbahagi ng iisang PostgreSQL database, iisang S3 file storage, at ang configuration sa database (AM_CONFIG). Sa System Console › Environment › High Availability (ClusterSettings): i-on ang Enable High Availability Mode (ClusterSettings.Enable), bigyan ng iisang Cluster Name (ClusterSettings.ClusterName) ang bawat node, at payagan ang mga node na makapag-ugnayan sa bawat isa sa gossip port, 8074 TCP at UDP (ClusterSettings.GossipPort). Nakikilala ng mga node ang bawat isa sa pamamagitan ng database. Dapat ding ipasa ng load balancer ang websockets. Para sa mga tawag sa loob ng cluster, gamitin ang rtcd.

Retention ng data

Sa default, pinapanatili ng Antimatter ang lahat ng mensahe at file nang walang hanggan. Para matanggal ang lumang mga ito nang awtomatiko, pumunta sa System Console › Compliance › Data Retention Policies:

  • Ang Global retention policy ay nagtatakda ng Channel & direct message retention at File retention para sa buong server: Keep forever, o isang bilang ng oras, araw, o taon (DataRetentionSettings.EnableMessageDeletion, MessageRetentionHours, EnableFileDeletion, FileRetentionHours).
  • Ang mga Custom retention policies ay nagtatakda ng ibang haba ng panahon para sa mga napiling community at channel.
  • Ang deletion job ay tumatakbo araw-araw sa oras na iyong pipili (DataRetentionSettings.DeletionJobStartTime, 02:00 UTC sa default). Ang Run Deletion Job Now ay nagpapatupad nito agad, at ang Policy log ay naglilista ng mga tinanggal ng bawat run.
Ang mga tinanggal na mensahe at file ay nawawala nang buong-buo, mula sa database at mula sa file storage. Suriin ang mga haba ng panahon bago i-on ang isang policy, at tandaan na ang iyong mga backup ay nagpapatuloy pa rin na naglalaman ng tinanggal na data hanggang sa mag-expire.

Compliance export at audit logs

  • System Console › Pagkakaunawa › Pag-export ng Compliance ay nag-e-export ng lahat ng mensahe at file araw-araw (Enable Compliance Export, MessageExportSettings.EnableExport, off by default; Oras ng Compliance Export, 01:00 by default) sa isa sa mga format na nababasa ng mga archiving system: CSV, Actiance XML, o Global Relay (isang zip file, o EML na ipinapadala sa pamamagitan ng SMTP). Ang amctl compliance-export ay nagpapatakbo at nagda-download ng mga export mula sa command line.
  • Ang Compliance Monitoring (ComplianceSettings) ay sumusulat ng mga araw-araw na ulat sa isang directory. Ito ang mas lumang mekanismo; mas mainam ang Compliance Export.
  • Audit Logging (beta, ExperimentalAuditSettings) ang nagre-record ng mga administrative at security event (mga sign-in, pagbabago ng permiso at setting) sa isang sariling file. Ang isang single sign-on record ay nagsasabi din kung ang sign-in na iyon ay lumikha ba ng account.
  • Hinihingan ng Custom Terms of Service ang lahat na tanggapin ang iyong mga tuntunin bago gamitin ang Antimatter, at muli pagkatapos mong baguhin ito.

Mga karaniwang problema

"Hindi makakonekta sa server", o lumalabas lang ang mga mensahe pagkatapos ng reload

Hindi nakalilipat ang websocket. Tingnan kung ipinasa ng reverse proxy ang mga Upgrade at Connection headers (tingnan ang halimbawa ng nginx), at kung eksaktong tumutugma ang URL ng site sa address sa browser, kasama ang https.

Namamatay ang mga upload na may "413 Request Entity Too Large"

Tinutanggihan ng proxy ang laki. Ipagtaas ang limit nito (nginx client_max_body_size) ng hindi bababa sa Pinakamataas na Laki ng File sa System Console › Environment › File Storage (FileSettings.MaxFileSize, 100 MB ang default).

Hindi makapagsimula ng tawag ang mga tao, o sumasali pero walang naririnig

Kung walang makapagsimula ng tawag maliban sa mga administrator, isara ang Test mode ng Calls. Kung wala ang pindutan ng tawag sa mga channel ng isang komunidad, ang komunidad ay ng uri Komunidad, kung saan naka-off ang mga tawag sa default: maaaring i-on ng mga admin ng channel o komunidad ang tawag sa isang channel, o baguhin ang uri ng komunidad (tingnan ang Saan naka-on ang mga tawag). Kung sumasali ang mga tao pero walang naririnig, blokeado ang media port o maling address ang inuugnay ng server: buksan ang 8443 UDP at TCP, at i-set ang ICE Host Override sa likod ng NAT. Ang mga nasa network na blokeado ang parehong UDP at TCP ay nangangailangan ng TURN server. Tingnan ang Mga tawag at boses.

Walang laman ang GIF picker

Tingnan ang GIF service URL (http://gifs:8080/v2 sa compose file ng site) at API key (ang GIFS_API_KEY ng .env) sa System Console › Plugins › Mga GIF, at kung tumatakbo ang gifs service: docker compose ps gifs.

Walang dumating na email

Gamitin ang Test ng Connection sa System Console › Environment › SMTP, siguraduhing hindi pa rin test@example.com ang Mga Notisikasyon Mula sa Address, at hanapin sa log ang smtp o mail.

Napakita ng "Failed to start" ang isang app

Hanapin ang id nito sa log (docker compose logs antimatter | grep <app id>). I-disable at i-enable ito sa Plugin Management para i-restart ito.

Hindi tumatayo ang server

Basahin ang huling bahagi ng log. Sa karamihan ng mga kaso, hindi maabot ang database (suriin ang AM_SQLSETTINGS_DATASOURCE gamit ang antimatter db ping), nabigo ang migration ng database (ibalik ang backup na kinuha bago ang upgrade at ipa-report ang error), o kinuha na ang listen port.

Naka-lock out sa administrator account

Mula sa server, hindi kailangan ng password sa local mode:

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

Pag-uulat ng bug

Buksan ang issue sa Antimatter community repository, kasama ang bersyon, kung paano mo ito na-install, ang ginawa mo, at ang mga kaugnay na linya ng log. Ipa-report nang pribado ang mga problema sa seguridad, ayon sa paliwanag ng security policy.