Vận hành
Theo dõi máy chủ, giúp nó xử lý nhiều người dùng hơn, quyết định thời gian lưu trữ dữ liệu và khắc phục các vấn đề mà quản trị viên thường gặp nhất.
Kiểm tra sức khỏe
amctl --local system status(trong container:docker compose exec antimatter amctl --local system status). Kiểm tra sức khỏe của hình ảnh Docker chạy lệnh này mỗi 30 giây, do đódocker compose pssẽ hiển thịhealthyhoặcunhealthy.GET /api/v4/system/pingtrả lời mà không cần đăng nhập, dành cho bộ giám sát bên ngoài hoặc bộ cân bằng tải:curl -fsS https://chat.example.com/api/v4/system/ping.antimatter db pingkiểm tra xem cơ sở dữ liệu có thể truy cập được với các cài đặt đã cấu hình hay không.- Bảng điều khiển Hệ thống › Báo cáo › Thống kê Hệ thống hiển thị số lượng người dùng, bài đăng và phiên, và Tối ưu hóa Không gian làm việc liệt kê các vấn đề cấu hình cần xem xét.
Chỉ số đo lường
Máy chủ có thể xuất các chỉ số Prometheus: tần suất và thời gian xử lý yêu cầu, kết nối websocket, sử dụng cơ sở dữ liệu và bộ nhớ đệm, tác vụ, các hook của plugin và nhiều hơn nữa. Bật chúng trong Bảng điều khiển Hệ thống › Môi trường › Giám sát Hiệu suất:
| Cài đặt | Khóa và biến | Mặc định |
|---|---|---|
| Bật Giám sát Hiệu suất | MetricsSettings.Enable, AM_METRICSSETTINGS_ENABLE | Tắt |
| Địa chỉ nghe | MetricsSettings.ListenAddress, AM_METRICSSETTINGS_LISTENADDRESS | :8067 |
| Bật giám sát hiệu suất client | MetricsSettings.EnableClientMetrics | bật: trình duyệt và ứng dụng báo cáo thời gian của riêng chúng |
Prometheus sau đó sẽ thu thập dữ liệu từ http://<server>:8067/metrics. Mỗi chỉ số được xuất dưới tên Mattermost (mattermost_…) và tên Antimatter (antimatter_…), do đó các bảng điều khiển Mattermost hiện có vẫn hoạt động. Các ứng dụng xuất các chỉ số của riêng chúng, ví dụ ứng dụng Agents tại /plugins/mattermost-ai/metrics.
Cổng chỉ số không cần đăng nhập: hãy giữ nó trên mạng riêng. Tệp compose của trang web không xuất cổng này; để thu thập dữ liệu từ máy chủ, hãy thêm "127.0.0.1:8067:8067" vào ports của dịch vụ antimatter.
Ứng dụng Metrics
Nếu không có máy chủ Prometheus, ứng dụng Metrics (mặc định là tắt, xem Các ứng dụng tích hợp) sẽ thu thập các chỉ số tương tự vào một cơ sở dữ liệu chuỗi thời gian nhỏ bên trong Antimatter: mỗi 60 giây, lưu trong 15 ngày. Ứng dụng này sẽ bật điểm cuối (endpoint) của chỉ số khi khởi động. Trang của nó trong Bảng điều khiển Hệ thống › Các plugin hiển thị kích thước của cơ sở dữ liệu và cho phép bạn tải xuống các bản sao dữ liệu để tự phân tích hoặc đính kèm vào báo cáo lỗi; dữ liệu của ngày gần nhất cũng được thêm vào các gói hỗ trợ.
Gói hỗ trợ
Gói hỗ trợ là một tệp zip chứa các thông tin cần thiết để chẩn đoán vấn đề: các phiên bản, thống kê, cấu hình đã loại bỏ thông tin nhạy cảm, danh sách ứng dụng và tác vụ, lược đồ cơ sở dữ liệu, nhật ký gần đây và hồ sơ hiệu suất. Tạo một gói bằng lệnh amctl system supportpacket, hoặc trong Bảng điều khiển Hệ thống từ menu ở đầu thanh bên (Hỗ trợ thương mại, sau đó bạn có thể chọn những gì cần bao gồm). Hãy đọc kỹ trước khi chia sẻ: gói này không chứa tin nhắn, nhưng nó chứa tên của các cộng đồng, người dùng và cài đặt.
Hiệu năng và mở rộng
Một máy chủ với 2 nhân CPU và 4 GB bộ nhớ có thể phục vụ vài trăm người. Trước khi thêm máy chủ, hãy xem xét:
- Cơ sở dữ liệu. PostgreSQL thực hiện phần lớn công việc: hãy cung cấp cho nó bộ nhớ lưu trữ nhanh và bộ nhớ RAM. Các bản sao đọc (read replicas) có thể gánh tải đọc (
SqlSettings.DataSourceReplicas, một danh sách các URL kết nối). - Tìm kiếm. Tin nhắn được tìm kiếm trong cơ sở dữ liệu theo mặc định. Đối với các máy chủ lớn, Elasticsearch hoặc OpenSearch có thể đảm nhận việc tìm kiếm và lập chỉ mục: Bảng điều khiển Hệ thống › Môi trường › Elasticsearch (
ElasticsearchSettings: Loại hệ thống là Elasticsearch hoặc OpenSearch, Địa chỉ kết nối máy chủ, thông tin xác thực, sau đó bật lập chỉ mục, xây dựng chỉ mục và bật tìm kiếm). - Cuộc gọi. Phương tiện cuộc gọi là tải nặng nhất. Hãy chuyển chúng sang máy chủ rtcd: xem Cuộc gọi và thoại.
- Tệp mở. Mỗi người dùng kết nối giữ một websocket mở. Tệp compose cho môi trường sản xuất của antimatter-docker tăng giới hạn lên 49152 (
ulimits: nofile); hãy làm tương tự với systemd (LimitNOFILE). - Nhật ký. Hạ
LogSettings.ConsoleLevelxuốngINFOhoặcWARN: nhật ký ở mứcDEBUGghi lại rất nhiều trên một máy chủ bận rộn.
Khả dụng cao
Nhiều máy chủ Antimatter có thể chạy như một cụm (cluster) phía sau một bộ cân bằng tải (load balancer), không cần giấy phép. Chúng phải chia sẻ cùng một cơ sở dữ liệu PostgreSQL, cùng một bộ lưu trữ tệp S3 và cấu hình trong cơ sở dữ liệu (AM_CONFIG). Trong Bảng điều khiển Hệ thống › Môi trường › Tính Khả Dụng Cao (ClusterSettings): bật Bật Chế độ sẵn sàng cao (ClusterSettings.Enable), đặt cùng một Tên cụm (ClusterSettings.ClusterName) cho mọi nút (node), và cho phép các nút liên lạc với nhau qua cổng gossip, 8074 TCP và UDP (ClusterSettings.GossipPort). Các nút sẽ tìm thấy nhau thông qua cơ sở dữ liệu. Bộ cân bằng tải phải truyền qua các kết nối websocket. Đối với các cuộc gọi trong một cụm, hãy sử dụng rtcd.
Giữ dữ liệu
Mặc định, Antimatter sẽ giữ lại mọi tin nhắn và tệp vĩnh viễn. Để tự động xóa các nội dung cũ, hãy truy cập Bảng điều khiển Hệ thống › Tuân thủ › Chính sách lưu giữ dữ liệu:
- Chính sách duy trì chung thiết lập Lưu giữ tin nhắn kênh & tin nhắn trực tiếp và Lưu giữ tệp cho toàn bộ máy chủ: Giữ mãi, hoặc một số giờ, ngày hoặc năm nhất định (
DataRetentionSettings.EnableMessageDeletion,MessageRetentionHours,EnableFileDeletion,FileRetentionHours). - Chính sách lưu trữ tùy chỉnh thiết lập thời hạn khác cho các cộng đồng và kênh được chọn.
- Công việc xóa sẽ chạy mỗi ngày vào thời điểm bạn chọn (
DataRetentionSettings.DeletionJobStartTime, mặc định là02:00UTC). Chạy công việc xóa ngay bây giờ sẽ thực thi ngay lập tức, và Chính sách lưu log sẽ liệt kê những gì đã bị xóa trong mỗi lần chạy.
Xuất dữ liệu tuân thủ và nhật ký kiểm toán
- Bảng điều khiển Hệ thống › Tuân thủ › Xuất tuân thủ (Beta) sẽ xuất tất cả tin nhắn và tệp mỗi ngày (Bật tính năng Xuất theo Tuân thủ,
MessageExportSettings.EnableExport, mặc định là tắt; Tuân thủ Thời gian xuất, mặc định là01:00) ở một trong các định dạng mà hệ thống lưu trữ có thể đọc: CSV, Actiance XML, hoặc Global Relay (tệp zip, hoặc EML gửi qua SMTP). Lệnhamctl compliance-exportcho phép chạy và tải xuống các bản xuất từ dòng lệnh. - Giám sát tuân thủ (
ComplianceSettings) ghi các báo cáo hàng ngày vào một thư mục. Đây là cơ chế cũ hơn; hãy ưu tiên sử dụng Xuất dữ liệu tuân thủ. - Ghi nhật ký kiểm toán (beta,
ExperimentalAuditSettings) ghi lại các sự kiện quản trị và bảo mật (đăng nhập, thay đổi quyền và cài đặt) vào một tệp riêng. - Điều khoản Dịch vụ Tùy chỉnh (Beta) yêu cầu mọi người chấp nhận các điều khoản của bạn trước khi sử dụng Antimatter, và một lần nữa sau khi bạn thay đổi chúng.
Các vấn đề thường gặp
"Không thể kết nối đến máy chủ", hoặc tin nhắn chỉ xuất hiện sau khi tải lại
Websocket không đi qua được. Hãy kiểm tra xem reverse proxy có truyền các header Upgrade và Connection không (xem ví dụ nginx), và đảm bảo URL của trang web khớp chính xác với địa chỉ trong trình duyệt, bao gồm cả https.
Tải lên thất bại với lỗi "413 Request Entity Too Large"
Proxy từ chối kích thước này. Hãy tăng giới hạn của nó (nginx client_max_body_size) lên ít nhất bằng Kích thước tệp tối đa trong Bảng điều khiển Hệ thống › Môi trường › Lưu trữ Tệp (FileSettings.MaxFileSize, mặc định là 100 MB).
Người dùng không thể bắt đầu cuộc gọi, hoặc tham gia được nhưng không nghe thấy gì
Nếu chỉ quản trị viên mới có thể bắt đầu cuộc gọi, hãy tắt Chế độ thử nghiệm của Calls. Nếu nút cuộc gọi không có trong các kênh của một cộng đồng, cộng đồng đó thuộc loại Cộng đồng, nơi cuộc gọi bị tắt theo mặc định: quản trị viên của kênh hoặc cộng đồng có thể bật cuộc gọi trong một kênh, hoặc thay đổi loại của cộng đồng (xem Nơi cuộc gọi được bật). Nếu người dùng tham gia nhưng không nghe thấy gì, cổng media bị chặn hoặc máy chủ công bố địa chỉ sai: hãy mở UDP và TCP trên cổng 8443, và đặt ICE Host Override phía sau NAT. Người dùng trên các mạng chặn cả hai sẽ cần một máy chủ TURN. Xem Cuộc gọi và thoại.
Bộ chọn GIF trống
Kiểm tra URL dịch vụ GIF (http://gifs:8080/v2 trong tệp compose của trang web) và Khóa API (giá trị GIFS_API_KEY trong tệp .env) trong Bảng điều khiển Hệ thống › Các plugin › GIF, và đảm bảo rằng dịch vụ gifs đang chạy: docker compose ps gifs.
Không nhận được email
Sử dụng Kiểm tra kết nối trong Bảng điều khiển Hệ thống › Môi trường › SMTP, kiểm tra xem Thông báo từ địa chỉ có còn là test@example.com hay không, và tìm kiếm trong log các từ smtp hoặc mail.
Một ứng dụng hiển thị "Failed to start"
Tìm id của nó trong nhật ký (docker compose logs antimatter | grep <app id>). Vô hiệu hóa rồi kích hoạt lại nó trong Plugin Management để khởi động lại.
Máy chủ không khởi động
Đọc phần cuối của nhật ký. Nguyên nhân phổ biến nhất là không thể truy cập cơ sở dữ liệu (kiểm tra AM_SQLSETTINGS_DATASOURCE bằng antimatter db ping), một bản di chuyển cơ sở dữ liệu thất bại (khôi phục bản sao lưu được tạo trước khi nâng cấp và báo cáo lỗi), hoặc cổng nghe đã bị chiếm dụng.
Bị khóa tài khoản quản trị viên
Từ máy chủ, chế độ cục bộ không cần mật khẩu:
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
Báo cáo lỗi
Mở một vấn đề trong kho Antimatter community, kèm theo phiên bản, cách bạn đã cài đặt, những gì bạn đã làm và các dòng nhật ký liên quan. Báo cáo các vấn đề bảo mật riêng tư, như chính sách bảo mật đã nêu.