Operasional
Pantau server, buat server mampu menangani lebih banyak orang, tentukan berapa lama data disimpan, dan perbaiki masalah yang paling sering ditemui administrator.
Pemeriksaan kesehatan
amctl --local system status(di dalam kontainer:docker compose exec antimatter amctl --local system status). Pemeriksaan kesehatan pada image Docker menjalankannya setiap 30 detik, sehinggadocker compose psmenampilkanhealthyatauunhealthy.GET /api/v4/system/pingmerespons tanpa perlu masuk, untuk monitor eksternal atau load balancer:curl -fsS https://chat.example.com/api/v4/system/ping.antimatter db pingmemeriksa bahwa database dapat dijangkau dengan pengaturan yang dikonfigurasi.- Konsol Sistem › Pelaporan › Statistik Sistem menampilkan jumlah pengguna, kiriman, dan sesi, serta Optimasi Ruang Kerja mencantumkan masalah konfigurasi yang perlu diperiksa.
Metrik
Server dapat menerbitkan metrik Prometheus: laju dan durasi permintaan, koneksi websocket, penggunaan database dan cache, pekerjaan, hook plugin, dan lainnya. Aktifkan di Konsol Sistem › Lingkungan › Pemantauan Kinerja:
| Pengaturan | Kunci dan variabel | Bawaan |
|---|---|---|
| Aktifkan Pemantauan Kinerja | MetricsSettings.Enable, AM_METRICSSETTINGS_ENABLE | nonaktif |
| Alamat Dengar | MetricsSettings.ListenAddress, AM_METRICSSETTINGS_LISTENADDRESS | :8067 |
| Aktifkan Pemantauan Kinerja Klien | MetricsSettings.EnableClientMetrics | on: browser dan aplikasi melaporkan waktu mereka sendiri |
Prometheus kemudian mengambil (scrape) http://<server>:8067/metrics. Setiap metrik diterbitkan dengan nama Mattermost (mattermost_…) dan nama Antimatter (antimatter_…), sehingga dasbor Mattermost yang ada tetap berfungsi. Aplikasi menerbitkan metrik mereka sendiri, misalnya aplikasi Agents di /plugins/mattermost-ai/metrics.
Port metrik tidak memerlukan masuk: simpan di jaringan privat. File compose situs tidak menerbitkannya; untuk mengambilnya dari host, tambahkan "127.0.0.1:8067:8067" ke ports dari layanan antimatter.
Aplikasi Metrics
Tanpa server Prometheus, aplikasi Metrik (nonaktif secara bawaan, lihat Aplikasi bawaan) mengumpulkan metrik yang sama ke dalam basis data deret waktu kecil di dalam Antimatter: setiap 60 detik, disimpan selama 15 hari. Aplikasi ini mengaktifkan endpoint metrik saat dimulai. Halamannya di Konsol Sistem › Plugin menampilkan ukuran basis data dan memungkinkan Anda mengunduh dump data, untuk analisis Anda sendiri atau untuk dilampirkan pada laporan bug; hari terakhir juga ditambahkan ke paket dukungan.
Paket dukungan
Paket dukungan adalah file zip yang berisi apa yang diperlukan untuk mendiagnosis masalah: versi, statistik, konfigurasi dengan rahasia dihapusnya, daftar aplikasi dan tugas, skema basis data, log terbaru, dan profil kinerja. Buat satu dengan amctl system supportpacket, atau di Konsol Sistem dari menu di bagian atas bilah sampingnya (Dukungan Komersial, yang kemudian memungkinkan Anda memilih apa yang akan disertakan). Bacalah sebelum membagikannya: paket ini tidak berisi pesan, tetapi berisi nama komunitas, pengguna, dan pengaturan.
Kinerja dan penskalaan
Satu server dengan 2 inti CPU dan 4 GB memori dapat melayani beberapa ratus orang. Sebelum menambahkan server, perhatikan:
- Basis data. PostgreSQL melakukan sebagian besar pekerjaan: berikan penyimpanan dan memori yang cepat. Replika baca dapat mengambil beban baca (
SqlSettings.DataSourceReplicas, daftar URL koneksi). - Cari. Pesan dicari di database secara bawaan. Untuk server besar, Elasticsearch atau OpenSearch dapat mengambil alih pencarian dan penindexan: Konsol Sistem › Lingkungan › Elasticsearch (
ElasticsearchSettings: Jenis backend Elasticsearch atau OpenSearch, Alamat Koneksi Server, kredensial, lalu aktifkan penindexan, bangun indeks, dan aktifkan pencarian). - Panggilan. Media panggilan adalah beban terberat. Pindahkan ke server rtcd: lihat Panggilan dan suara.
- Berkas terbuka. Setiap orang yang terhubung mempertahankan satu websocket terbuka. File compose produksi dari antimatter-docker menaikkan batasnya menjadi 49152 (
ulimits: nofile); lakukan hal yang sama dengan systemd (LimitNOFILE). - Log. Turunkan
LogSettings.ConsoleLevelkeINFOatauWARN: logDEBUGmenghasilkan banyak output di server yang sibuk.
Ketersediaan tinggi
Beberapa server Antimatter dapat dijalankan sebagai klaster di belakang load balancer, tanpa lisensi. Mereka harus berbagi database PostgreSQL yang sama, penyimpanan file S3 yang sama, dan konfigurasi di database (AM_CONFIG). Di Konsol Sistem › Lingkungan › Ketersediaan Tinggi (ClusterSettings): aktifkan Aktifkan Mode Ketersediaan Tinggi (ClusterSettings.Enable), berikan setiap node Nama Klaster yang sama (ClusterSettings.ClusterName), dan biarkan node saling terhubung melalui port gossip, 8074 TCP dan UDP (ClusterSettings.GossipPort). Node menemukan satu sama lain melalui database. Load balancer harus meneruskan websockets. Untuk panggilan dalam klaster, gunakan rtcd.
Retensi data
Secara default, Antimatter menyimpan setiap pesan dan file selamanya. Untuk menghapus yang lama secara otomatis, buka Konsol Sistem › Kepatuhan › Kebijakan Retensi Data:
- Kebijakan retensi global mengatur Retensi pesan kanal & langsung dan Retensi file untuk seluruh server: Simpan selamanya, atau jumlah jam, hari, atau tahun (
DataRetentionSettings.EnableMessageDeletion,MessageRetentionHours,EnableFileDeletion,FileRetentionHours). - Kebijakan retensi khusus mengatur durasi lain untuk komunitas dan kanal yang dipilih.
- Tugas penghapusan dijalankan setiap hari pada waktu yang Anda pilih (
DataRetentionSettings.DeletionJobStartTime, default02:00UTC). Jalankan Tugas Penghapusan Sekarang menjalankannya seketika, dan Log kebijakan mencantumkan apa yang dihapus oleh setiap eksekusi.
Ekspor kepatuhan dan log audit
- Konsol Sistem › Kepatuhan › Ekspor Kepatuhan mengekspor semua pesan dan file setiap hari (Aktifkan Ekspor Kepatuhan,
MessageExportSettings.EnableExport, nonaktif secara default; Waktu Ekspor Kepatuhan, default01:00) dalam salah satu format yang dibaca oleh sistem pengarsipan: CSV, Actiance XML, atau Global Relay (file zip, atau EML yang dikirim melalui SMTP).amctl compliance-exportmenjalankan dan mengunduh ekspor dari baris perintah. - Pemantauan Kepatuhan (
ComplianceSettings) menulis laporan harian ke sebuah direktori. Ini adalah mekanisme yang lebih lama; lebih disarankan menggunakan Compliance Export. - Pencatatan Audit (beta,
ExperimentalAuditSettings) mencatat peristiwa administratif dan keamanan (masuk, perubahan izin dan pengaturan) ke file khusus. - Syarat dan Ketentuan Kustom meminta semua orang untuk menerima syarat Anda sebelum menggunakan Antimatter, dan lagi setelah Anda mengubahnya.
Masalah umum
"Tidak dapat terhubung ke server", atau pesan hanya muncul setelah dimuat ulang
Websocket tidak dapat terhubung. Periksa apakah reverse proxy meneruskan header Upgrade dan Connection (lihat contoh nginx), dan pastikan URL situs cocok persis dengan alamat di browser, termasuk https.
Unggahan gagal dengan "413 Request Entity Too Large"
Proxy menolak ukuran tersebut. Naikkan batasnya (nginx client_max_body_size) menjadi setidaknya Ukuran File Maksimum di Konsol Sistem › Lingkungan › Penyimpanan File (FileSettings.MaxFileSize, 100 MB secara default).
Pengguna tidak dapat memulai panggilan, atau bergabung tetapi tidak mendengar apa-apa
Jika hanya admin yang dapat memulai panggilan, matikan Mode uji untuk Panggilan. Jika tombol panggilan tidak ada di kanal komunitas, komunitas tersebut berjenis Komunitas, di mana panggilan dimatikan secara bawaan: admin kanal atau komunitas dapat mengaktifkan panggilan di kanal, atau mengubah jenis komunitas (lihat Di mana panggilan diaktifkan). Jika orang bergabung tetapi tidak mendengar apa-apa, port media diblokir atau server mengumumkan alamat yang salah: buka 8443 UDP dan TCP, serta atur ICE Host Override di belakang NAT. Orang di jaringan yang memblokir keduanya membutuhkan server TURN. Lihat Panggilan dan suara.
Pemilih GIF kosong
Periksa URL layanan GIF (http://gifs:8080/v2 dengan file compose situs) dan kunci API (GIFS_API_KEY dari .env) di Konsol Sistem › Plugins › GIFs, serta pastikan layanan gifs berjalan: docker compose ps gifs.
Email tidak diterima
Gunakan Uji Koneksi di Konsol Sistem › Lingkungan › SMTP, periksa apakah Alamat Dari Notifikasi tidak masih test@example.com, dan cari smtp atau mail di log.
Aplikasi menampilkan "Gagal dimulai"
Cari id-nya di log (docker compose logs antimatter | grep <app id>). Nonaktifkan dan aktifkan di Manajemen Plugin untuk memulai ulang.
Server tidak dimulai
Baca bagian akhir log-nya. Paling sering database tidak dapat dijangkau (periksa AM_SQLSETTINGS_DATASOURCE dengan antimatter db ping), migrasi database gagal (pulihkan cadangan yang diambil sebelum peningkatan dan laporkan error), atau port dengarkan sudah digunakan.
Terkunci dari akun administrator
Dari server, mode lokal tidak memerlukan kata sandi:
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
Melaporkan bug
Buat masalah (issue) di repositori komunitas Antimatter, sertakan versi, cara instalasi, apa yang Anda lakukan, dan baris log yang relevan. Laporkan masalah keamanan secara pribadi, seperti dijelaskan dalam kebijakan keamanan.