Product 메뉴를 선택하고 System Console을 선택한 후 Environment를 선택하여 System Console에서 다음 환경 구성 옵션을 검토하고 관리하세요: 셀프 호스팅 Mattermost 배포를 관리하는 시스템 관리자는 다음 테이블에서 설명한 대로 config.json 파일을 편집할 수 있습니다.
Product 메뉴를 선택하고 System Console을 선택한 후 Environment를 선택하여 System Console에서 다음 환경 구성 옵션을 검토하고 관리하세요:
셀프 호스팅 Mattermost 배포를 관리하는 시스템 관리자는 다음 테이블에서 설명한 대로 config.json 파일을 편집할 수 있습니다. 아래 각 구성 값에는 JSON 인식 도구를 사용하여 config.json 파일에서 프로그래밍 방식으로 값에 접근하기 위한 JSON 경로가 포함되어 있습니다. 예를 들어, SiteURL 값은 ServiceSettings 아래에 있습니다.
jq 같은 도구를 사용하는 경우: cat config/config.json | jq '.ServiceSettings.SiteURL'
config.json 파일을 수동으로 작업하는 경우, ServiceSettings 같은 객체를 찾은 다음 해당 객체 내에서 SiteURL 키를 찾으세요.
셀프 호스팅 배포에서는 System Console > Environment > Web Server로 이동하거나 다음 테이블에서 설명한 대로 config.json 파일을 업데이트하여 Mattermost가 배포된 네트워크 환경을 구성할 수 있습니다. 이 섹션의 구성 설정 변경 사항은 적용되기 전에 서버를 다시 시작해야 합니다.
The URL that users use to access Mattermost. The port number is required if it’s not a standard port, such as 80 or 443. This field is required. Select the Test Live URL button in the System Console to validate the Site URL.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > SiteURL - Environment variable: MM_SERVICESETTINGS_SITEURL
Note
URL에는 https://example.com/company/mattermost 와 같이 서브 경로가 포함될 수 있습니다.
사이트 URL 값을 변경하면 데스크톱 앱에서 로그아웃한 후 새 도메인으로 다시 로그인하세요.
사이트 URL이 설정되지 않은 경우:
이메일 알림에 깨진 링크가 포함되고, 이메일 일괄 처리가 작동하지 않습니다.
GitLab, Google, Entra ID를 포함한 OAuth 2.0을 통한 인증이 실패합니다.
The longest URL, in characters, including query parameters, accepted by the Mattermost server. Longer URLs are rejected, and API calls fail with an error. Numeric value. Default is 2048 characters.
The address and port to which to bind and listen. Specifying :8065 will bind to all network interfaces.
Specifying 127.0.0.1:8065 will only bind to the network interface having that IP address.
The address and port to which to bind and listen. Specifying :8065 will bind to all network interfaces. Specifying 127.0.0.1:8065 will only bind to the network interface having that IP address. If you choose a port of a lower level (called “system ports” or “well-known ports”, in the range of 0-1023), you must have permissions to bind to that port.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > ListenAddress - Environment variable: MM_SERVICESETTINGS_LISTENADDRESS
Note
웹 서버는 address:port (예: ":8065")를 사용하는 반면, Metrics 는 포트 번호만 사용합니다 (예: 8067).
true: Forwards all insecure traffic from port 80 to secure port 443.
false: (Default) When using a proxy such as NGINX in front of Mattermost this setting is unnecessary and should be set to false.
Forward insecure traffic from port 80 to port 443. - true: Forwards all insecure traffic from port 80 to secure port 443. - false: (Default) When using a proxy such as NGINX in front of Mattermost this setting is unnecessary and should be set to false.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > Forward80To443 > false - Environment variable: MM_SERVICESETTINGS_FORWARD80TO443
Not specified: Mattermost will connect over an unsecure connection.
TLS: Encrypts the communication between Mattermost clients and your server.
Connection security between Mattermost clients and the server. - Not specified: Mattermost will connect over an unsecure connection. - TLS: Encrypts the communication between Mattermost clients and your server.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > ConnectionSecurity - Environment variable: MM_SERVICESETTINGS_CONNECTIONSECURITY
Enable the automatic retrieval of certificates from Let’s Encrypt. - true: The certificate will be retrieved when a client attempts to connect from a new domain. This will work with multiple domains. - false: (Default) Manual certificate specification based on the TLS Certificate File and TLS Key File specified above.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > UseLetsEncrypt > false - Environment variable: MM_SERVICESETTINGS_USELETSENCRYPT
Maximum time allowed from when the connection is accepted to when the request body is fully read. Numerical input in seconds. Default is 300 seconds.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > ReadTimeout > 300 - Environment variable: MM_SERVICESETTINGS_READTIMEOUT
If using HTTP (insecure), this is the maximum time, in seconds, allowed from the end of reading the request headers until the response is written.
If using HTTPS, it's the total time, in seconds, from when the connection is accepted until the response is written.
Default is 300 seconds.
- If using HTTP (insecure), this is the maximum time allowed from the end of reading the request headers until the response is written. - If using HTTPS, it's the total time from when the connection is accepted until the response is written. Numerical input in seconds. Default is 300 seconds.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > WriteTimeout > 300 - Environment variable: MM_SERVICESETTINGS_WRITETIMEOUT
Set an explicit idle timeout in the HTTP server. This is the maximum time allowed before an idle connection is disconnected. Numerical input in seconds. Default is 300 seconds.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > IdleTimeout > 300 - Environment variable: MM_SERVICESETTINGS_IDLETIMEOUT
gzip: (Default) The Mattermost server will serve static files compressed with gzip to improve performance.
Uncompressed: The Mattermost server will serve static files uncompressed.
Disabled: The Mattermost server will not serve static files.
We recommend gzip to improve performance unless your environment has specific restrictions, such as a web proxy that distributes gzip files poorly. - gzip: (Default) The Mattermost server will serve static files compressed with gzip to improve performance. gzip compression applies to the HTML, CSS, Javascript, and other static content files that make up the Mattermost web client. - Uncompressed: The Mattermost server will serve static files uncompressed. - Disabled: The Mattermost server will not serve static files.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > WebserverMode > "gzip" - Environment variable: MM_SERVICESETTINGS_WEBSERVERMODE
true: Outgoing HTTPS requests, including S3 clients, can accept unverified, self-signed certificates.
false: (Default) Only secure HTTPS requests are allowed.
Configure Mattermost to allow insecure outgoing connections. - true: Outgoing HTTPS requests, including S3 clients, can accept unverified, self-signed certificates. For example, outgoing webhooks to a server with a self-signed TLS certificate, using any domain, will be allowed, and will skip TLS verification. - false: (Default) Only secure HTTPS requests are allowed.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > EnableInsecureOutgoingConnections > false - Environment variable: MM_SERVICESETTINGS_ENABLEINSECUREOUTGOINGCONNECTIONS
Warning
이 기능을 활성화하면 해당 연결이 중간자 공격(man-in-the-middle attacks)에 취약해집니다.
A comma-separated list of paths within the Mattermost domain that are managed by a third party service instead of Mattermost itself. Links to these paths will be opened in a new tab/window by Mattermost apps. For example, if Mattermost is running on https://mymattermost.com, setting this to conference will cause links such as https://mymattermost.com/conference to open in a new window.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > ManagedResourcePaths - Environment variable: MM_SERVICESETTINGS_MANAGEDRESOURCEPATHS
Note
Mattermost 데스크톱 앱을 사용하는 경우 브라우저 대신 데스크톱 앱 내에서 링크를 열기 위한 추가 구성이 필요합니다. 자세한 내용은 desktop managed resources 문서를 참조하세요.
You must change the database line in the config.json file, and then reload configuration to fail over without taking the server down. Select the Reload configuration from disk button in the System Console after changing your database configuration. Then, go to Environment > Database and select Recycle Database Connections to complete the reload.
- System Config path: Environment > Web Server - config.json setting: N/A - Environment variable: N/A
The path and filename of the license file on disk. On startup, if Mattermost can't find a valid license in the database from a previous upload, it looks in this path for the license file. String input. Can be an absolute path or a path relative to the mattermost directory.
Specified headers that will be checked, one by one, for IP addresses (order is important). All other headers are ignored. String array input consisting of header names, such as ["X-Forwarded-For", "X-Real-Ip"].
- true: Adds the Strict Transport Security (HSTS) header to all responses, forcing the browser to request all resources via HTTPS. - false: (Default) No restrictions on TLS transport. Strict Transport Security (HSTS) header isn't added to responses.
The time, in seconds, that the browser remembers a site is only to be accessed using HTTPS. After this period, a site can't be accessed using HTTP unless TLSStrictTransport is set to true. Numerical input. Default is 63072000 (2 years).
Set TLS ciphers overwrites to meet requirements from legacy clients which don't support modern ciphers, or to limit the types of accepted ciphers. If none specified, the Mattermost server assumes a set of currently considered secure ciphers, and allows overwrites in the edge case. String array input.
Set a threshold on the number of goroutines when the Mattermost system is considered to be in a healthy state. When goroutines exceed this limit, a warning is returned in the server logs. Numeric input. Default is -1 which turns off checking for the threshold.
Define the frequency, in milliseconds, of cluster request time logging for performance monitoring. Numerical input. Default is 2000 milliseconds (2 seconds).
The maximum payload size in bytes for all APIs except APIs that receive a file as an input. For example, the upload attachment API or the API to upload a custom emoji. Numerical value. Default is 300000 (300 kB).
셀프 호스팅 배포에서는 System Console > Environment > Database로 이동하거나 다음 테이블에서 설명한 대로 config.json 파일을 편집하여 Mattermost가 배포된 데이터베이스 환경을 구성할 수 있습니다. 이 섹션의 구성 설정 변경 사항은 적용되기 전에 서버를 다시 시작해야 합니다.
PostgreSQL 서버에 대한 연결을 암호화하는 매개변수는 sslmode입니다. PostgreSQL 서버와 상호 작용하는 데 사용되는 라이브러리는 pq입니다. 현재 표준 PostgreSQL 클라이언트 psql "sslmode=value"에 전달할 수 있는 모든 값을 사용하는 것은 불가능합니다. 자세한 내용은 SSL 모드 설명 문서를 참조하세요.
데이터베이스 관리자는 아래에 설명된 지원되는 값에 따라 기능을 구성해야 합니다.
Short description of the sslmode parameter
Value
Example of a data source name
Don't use TLS / SSL encryption against the PostgreSQL server. Default value in file config.json
The amount of time to wait, in seconds, for a response from the database after opening a connection and sending the query. Numerical input in seconds. Default is 30 seconds.
The number of seconds to wait for a response from the database after opening a connection and sending certain analytics queries. This setting only applies to long queries which are run in the background to populate some information in the Team and Site Statistics pages. Numerical input in seconds. Default is 300 seconds.
Maximum lifetime for a connection to the database, in milliseconds. Use this setting to configure the maximum amount of time a connection to the database may be reused Numerical input in milliseconds. Default is 3600000 milliseconds (1 hour).
Executed SQL statements can be written to the log for development. - true: Executing SQL statements are written to the log. - false: (Default) SQL statements aren't written to the log.
Select the Recycle Database Connections button to manually recycle the connection pool by closing the current set of open connections to the database within 20 seconds, and then creating a new set of connections. To fail over without stopping the server, change the database line in the config.json file, select Reload Configuration from Disk via Environment > Web Server, then select Recycle Database Connections.
true: Disables the use of the database to perform searches. If another search engine isn't configured, setting this value to true will result in empty search results.
When enterprise-scale search, database search can be disabled from performing searches. - true: Disables the use of the database to perform searches. If another search engine isn't configured, setting this value to true will result in empty search results. - false: (Default) Database search isn't disabled.
Elasticsearch가 실패하거나 비활성화된 경우, Mattermost는 Bleve 검색이 활성화된 경우 이를 사용하려고 시도합니다. Bleve 검색은 Mattermost v11.0에서 더 이상 지원되지 않습니다. 엔터프라이즈 검색 기능을 위해 Elasticsearch 또는 OpenSearch를 사용하는 것을 권장합니다.
이러한 방법이 실패하거나 비활성화된 경우, Mattermost는 데이터베이스를 직접 검색하려고 시도합니다 (이 방법이 활성화된 경우).
위의 모든 방법이 실패하거나 비활성화된 경우, 검색 결과가 비어 있게 됩니다.
Note
대규모 배포에서 이 구성 설정을 비활성화하면 다음 영역에서 서버 성능이 향상될 수 있습니다:
데이터베이스 부하 감소: 데이터베이스 검색이 활성화되면 사용자가 실행하는 모든 검색 쿼리가 데이터베이스와 상호 작용해야 하므로 데이터베이스 서버에 추가 부하가 발생합니다. 데이터베이스 검색을 비활성화하면 이러한 쿼리를 피할 수 있어 데이터베이스 부하가 줄어듭니다.
응답 시간 개선: 특히 대용량 데이터셋의 경우 데이터베이스 검색은 시간이 많이 걸릴 수 있습니다. 데이터베이스 검색을 비활성화하면 시스템이 데이터베이스에서 검색 결과를 가져와 처리하는 데 시간을 소비하지 않으므로 더 빠른 응답 시간을 얻을 수 있습니다.
인덱싱 서비스로 검색 오프로드: 데이터베이스 검색을 비활성화하면 검색이 Elasticsearch와 같은 검색 작업에 최적화된 전문 인덱싱 서비스로 오프로드되는 경우가 많습니다. 이러한 서비스는 기존 데이터베이스 검색에 비해 더 빠르고 효율적인 검색 기능을 제공할 수 있습니다.
리소스 소비 감소: 데이터베이스에 대해 직접 검색 쿼리를 실행하면 리소스(CPU 및 메모리 사용)가 많이 소모될 수 있습니다. 데이터베이스 검색을 비활성화하면 이러한 리소스를 다른 중요한 기능에 할당하여 전반적인 시스템 성능을 개선할 수 있습니다.
확장성 향상: 사용자 수와 데이터 볼륨이 증가함에 따라 데이터베이스 검색의 효율성이 떨어질 수 있습니다. 전문 검색 서비스는 더 효과적으로 확장할 수 있도록 설계되어 전반적인 시스템 확장성과 성능을 향상시킵니다.
단, Mattermost에서 데이터베이스 검색을 수행하는 기능은 특히 다른 검색 엔진이 활성화되지 않은 경우 많은 사용자에게 중요한 기능입니다. 이 기능을 비활성화하면 사용자가 Mattermost 검색 상자를 사용하려고 할 때 오류가 표시됩니다. 성능 향상과 조직 및 사용자의 요구 사항 간의 균형을 맞추는 것이 중요합니다.
AWS 고가용성 RDS 클러스터 배포의 경우, 이 구성 설정을 RDS 클러스터 내의 기본 읽기 전용 노드 엔드포인트로 직접 지정하여 AWS/RDS가 처리하는 장애 조치/부하 분산을 우회하세요 (쓰기 트래픽 제외). Mattermost는 읽기 전용 연결을 균형 잡는 자체 방법이 있으며, 해당 노드가 실패할 경우 데이터 소스/쓰기+읽기 연결에 대한 쿼리도 균형 잡을 수 있습니다. 자세한 내용은 고가용성 데이터베이스 구성 문서를 참조하세요.
Specifies the connection strings for the search replica databases.
A search replica is similar to a read replica, but is used only for handling search queries.
Specifies the connection strings for the search replica databases. A search replica is similar to a read replica, but is used only for handling search queries.
AWS 고가용성 RDS 클러스터 배포의 경우, 이 구성 설정을 RDS 클러스터 내의 기본 읽기 전용 노드 엔드포인트로 직접 지정하여 AWS/RDS가 처리하는 장애 조치/부하 분산을 우회하세요 (쓰기 트래픽 제외). Mattermost는 읽기 전용 연결을 균형 잡는 자체 방법이 있으며, 해당 노드가 실패할 경우 데이터 소스/쓰기+읽기 연결에 대한 쿼리도 균형 잡을 수 있습니다. 자세한 내용은 고가용성 데이터베이스 구성 문서를 참조하세요.
String array input specifies a connection string and user-defined SQL queries on the database to measure replica lag for a single replica instance. These settings monitor absolute lag based on binlog distance/transaction queue length, and the time taken for the replica to catch up. String array input consists of: - DataSource: The database credentials to connect to the database instance. - QueryAbsoluteLag: A plain SQL query that must return a single row. The first column must be the node value of the Prometheus metric, and the second column must be the value of the lag used to measure absolute lag. - QueryTimeLag: A plain SQL query that must return a single row. The first column must be the node value of the Prometheus metric, and the second column must be the value of the lag used to measure the time lag.
QueryAbsoluteLag 및 QueryTimeLag 쿼리는 단일 행을 반환해야 합니다.
이를 올바르게 모니터링하려면 Mattermost에 대한 성능 모니터링 을 설정해야 합니다.
데이터베이스 유형에 따라 복제본 지연 지표를 구성합니다. 각 데이터베이스 유형 구성에 대한 자세한 내용은 다음 탭을 참조하세요.
아래 강조 표시된 구성을 SqlSettings.ReplicaLagSettings 배열에 추가합니다. AWS Aurora 노드의 복제 통계는 클러스터 구성원인 모든 서버 인스턴스에서 볼 수 있으므로 이 작업은 한 번만 수행하면 됩니다. 그룹의 단일 노드를 가리키도록 DataSource를 변경하세요.
{
"SqlSettings": {
"ReplicaLagSettings": [
{
"DataSource": "replica-1",
"QueryAbsoluteLag": "select server_id, highest_lsn_rcvd-durable_lsn as bindiff from aurora_global_db_instance_status() where server_id=<>",
"QueryTimeLag": "select server_id, visibility_lag_in_msec from aurora_global_db_instance_status() where server_id=<>"
}
]
}
}
<h4>MySQL Group Replication</h4>
아래 강조 표시된 구성을 <code>SqlSettings.ReplicaLagSettings</code> 배열에 추가합니다. 모든 노드의 복제 통계는 MySQL 복제 그룹 구성원인 모든 서버 인스턴스에서 공유되므로 이 작업은 한 번만 수행하면 됩니다. 그룹의 단일 노드를 가리키도록 <code>DataSource</code>를 변경하세요.
그룹 복제 통계에 대한 자세한 내용은 <a href="https://dev.mysql.com/doc/refman/8.0/en/group-replication-replication-group-member-stats.html">MySQL 문서</a>를 참조하세요.
예시
{
"SqlSettings": {
"ReplicaLagSettings": [
{
"DataSource": "replica-1",
"QueryAbsoluteLag": "select member_id, count_transactions_remote_in_applier_queue FROM performance_schema.replication_group_member_stats where member_id=<>",
"QueryTimeLag": ""
}
]
}
}
<h4>PostgreSQL replication slots</h4>
1. 아래 강조 표시된 구성을 <code>SqlSettings.ReplicaLagSettings</code> 배열에 추가합니다. 이 쿼리는 클러스터의<strong>기본</strong> 노드에 대해 실행해야 합니다. 이를 위해 <code>DataSource</code>를 구성한 <a href="#data-source">SqlSettings.DataSource</a> 설정과 일치하도록 변경하세요.
pg_stat_replication에 대한 자세한 내용은 <a href="https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-REPLICATION-VIEW">PostgreSQL 문서</a>를 참조하세요.
<strong>예시:</strong>
{
"SqlSettings": {
"ReplicaLagSettings": [
{
"DataSource": "postgres://mmuser:password@localhost:5432/mattermost_test?sslmode=disable&connect_timeout=10.",
"QueryAbsoluteLag": "select usename, pg_wal_lsn_diff(pg_current_wal_lsn(),replay_lsn) as metric from pg_stat_replication;",
"QueryTimeLag": ""
}
]
}
}
2. <code>pg_monitor</code>에 대한 데이터베이스 사용자 권한을 부여합니다. 이 사용자는 위의 <code>DataSource</code> 문자열에 구성된 것과 동일한 사용자여야 합니다.
역할에 대한 자세한 내용은 <a href="https://www.postgresql.org/docs/10/default-roles.html">PostgreSQL 문서</a>를 참조하세요.
sudo -u postgres psql
postgres=# GRANT pg_monitor TO mmuser;
QueryTimeLag 차트는 기존 Replica Lag 차트를 활용하여 이미 설정되어 있습니다. QueryAbsoluteLag 지표를 사용하는 경우 Replica Lag 차트를 복사하고 쿼리를 편집하여 아래 절대 지연 지표를 사용하고 제목을 Replica Lag Absolute로 수정하세요.
mattermost_db_replica_lag_abs{instance=~"$server"}
:alt: A screenshot showing how to clone a chart within Grafana
:alt: A screenshot showing the specific edits to make to the cloned grafana chart.
Specifies how frequently unhealthy replicas will be monitored for liveness check. Mattermost will dynamically choose a replica if it's alive.
Specifies how frequently unhealthy replicas will be monitored for liveness check. Mattermost will dynamically choose a replica if it's alive. Numerical input. Default is 5 seconds.
핵심 데이터베이스 검색은 관계형 데이터베이스에서 이루어지며 약 2~3백만 개 이하의 게시물 및 파일 항목이 있는 배포를 위한 것입니다. 그 이상의 규모에서는 3백만 게시물에 도달하기 전에 최적의 검색 성능을 위해 Elasticsearch 또는 AWS OpenSearch를 사용한 엔터프라이즈 검색을 활성화하는 것이 강력히 권장됩니다.
3백만 개 이상의 게시물이 있는 셀프 호스팅 배포에서는 메시지 검색 및 @멘션에서 타임아웃과 같은 심각한 성능 문제를 방지하기 위해 Elasticsearch 또는 AWS OpenSearch가 필요합니다.
System Console > Environment > Elasticsearch로 이동하여 Mattermost 엔터프라이즈 검색을 구성할 수 있습니다. 다음 구성 설정은 Elasticsearch와 AWS OpenSearch 모두에 적용됩니다. 다음 테이블에서 설명한 대로 config.json 파일을 편집할 수도 있습니다. 이 섹션의 구성 설정 변경 사항은 적용되기 전에 서버를 다시 시작해야 합니다.
true: Indexing of new posts occurs automatically.
false: (Default) Elasticsearch indexing is disabled and new messages aren't indexed.
Configure Mattermost to index new posts automatically. - true: Indexing of new messages occurs automatically. - false: (Default) Indexing of new messages is disabled, and new messages aren't indexed.
Optional path to the Custom Certificate Authority certificates for the Elasticsearch or AWS OpenSearch server.
- System Config path: Environment > Elasticsearch - config.json setting: ElasticsearchSettings > CA - Environment variable: MM_ELASTICSEARCHSETTINGS_CA
Note
Mattermost v7.8부터 사용 가능합니다. 인증서 경로는 /opt/mattermost/data/elasticsearch/ 또는 /opt/mattermost/data/opensearch 여야 하며 System Console에서 ./elasticsearch/cert.pem 또는 ./opensearch/cert.pem 으로 구성되어야 합니다.
기본 인증 자격 증명과 함께 또는 대체하여 사용할 수 있습니다. 운영 체제의 기본 인증 기관 인증서를 사용하려면 이 설정을 비워두세요.
The certificate step for TLS connections can be skipped. - true: Skips the certificate verification step for TLS connections. - false: (Default) Mattermost requires certificate verification.
true: Sniffing finds and connects to all data nodes in your cluster automatically.
false: (Default) Cluster sniffing is disabled.
Warning
Do not enable cluster sniffing when using cloud-hosted search providers such as Amazon OpenSearch Service. Cloud providers typically hide search cluster nodes behind a proxy, so sniffed node addresses may be unreachable from your network. The provider handles connection pooling for you, making sniffing unnecessary and potentially disruptive.
Configure Mattermost to automatically find and connect to all data nodes in a cluster. - true: Sniffing finds and connects to all data nodes in your cluster automatically. - false: (Default) Cluster sniffing is disabled. Do not enable cluster sniffing when using cloud-hosted search providers such as Amazon OpenSearch Service.
System Console의 채널 인덱스 재구성 버튼을 선택하여 채널 인덱스를 제거하세요. 이 프로세스를 시작하기 전에 대량 인덱싱 테이블을 통해 진행 중인 다른 인덱싱 작업이 없는지 확인하세요. 인덱싱 중에는 채널 자동 완성을 사용할 수 있지만 인덱싱 작업이 완료될 때까지 검색 결과가 불완전할 수 있습니다.
Specify index names to ignore while purging indexes. Separate multiple index names with commas. Use an asterisk (*) to match a sequence of index name characters.
true: Elasticsearch or AWS OpenSearch is used for all search queries using the latest index. Search results may be incomplete until a bulk index of the existing message database is completed.
false: (Default) Relational database search is used for search queries.
Configure Mattermost to use Elasticsearch or AWS OpenSearch for all search queries using the latest index. - true: Elasticsearch or AWS OpenSearch is used for all search queries using the latest index. Search results may be incomplete until a bulk index of the existing message database is completed. - false: (Default) Database search is used for search queries.
Configure Mattermost to use Elasticsearch or AWS OpenSearch for all autocompletion queries on users and channels using the latest index. - true: Elasticsearch or AWS OpenSearch will be used for all autocompletion queries on users and channels using the latest index. - false: (Default) Database autocomplete is used.
Allow users to search for messages in public channels they have not joined. When enabled for the first time, existing posts are updated in the background with channel type information. This backfill process is throttled to ~10,000 posts per second to avoid impacting search performance. - true: Users can find messages in public channels they haven't joined, scoped to teams they belong to. - false: (Default) Users can only search messages in channels they are a member of.
n개의 데이터 노드가 있는 경우, 각 인덱스의 샤드당 복제본 수는 n-1이어야 합니다. Elasticsearch 또는 AWS OpenSearch 클러스터의 노드 수가 변경되면, 이 구성 설정과 함께 게시물 인덱스 복제본 및 사용자 인덱스 복제본 도 적절히 업데이트해야 합니다.
n개의 데이터 노드가 있는 경우, 각 인덱스의 샤드당 복제본 수는 n-1이어야 합니다. Elasticsearch 또는 AWS OpenSearch 클러스터의 노드 수가 변경되면, 이 구성 설정과 함께 게시물 인덱스 복제본 및 사용자 인덱스 복제본 도 적절히 업데이트해야 합니다.
Elasticsearch or AWS OpenSearch indexes older than the age specified by this setting, in days, will be aggregated during the daily scheduled job. Numerical input. Default is 365 days.
The start time of the daily scheduled aggregator job. Must be a 24-hour time stamp in the form HH:MM based on the local time of the server. Default is 03:00 (3 AM)
이 설정이 사용되면 Mattermost에서 생성한 모든 Elasticsearch 또는 AWS OpenSearch 인덱스에 이 접두사가 붙습니다. 여러 Mattermost 배포가 인덱스 이름이 충돌하지 않도록 Elasticsearch 또는 AWS OpenSearch 클러스터를 공유할 수 있도록 다른 접두사를 설정할 수 있습니다.
Enable global search across multiple Elasticsearch indices with the same index prefix. This is helpful for setups with multiple data centers where Elasticsearch instances share data using cross-cluster replication. It allows for easier and unified searching across distributed indices. Value must be a prefix of IndexPrefix.
The number of new posts needed before those posts are added to the Elasticsearch or AWS OpenSearch index. Once added to the index, the post becomes searchable. On servers with more than 1 post per second, we suggest setting this value to the average number of posts over a 20 second period of time. Numerical input. Default is 1. Every post is indexed synchronously as they are created.
초당 1개 이상의 게시물을 처리하는 설치의 경우, Elasticsearch 또는 AWS OpenSearch 클러스터의 속도 제한 또는 리소스 제한에 도달하지 않으려면 이 값을 늘려야 할 수 있습니다.
이 값을 증가시키면 정확히 어떤 일이 발생하나요?
주요 영향은 게시물의 임계값이 충족된 후 게시물이 Elasticsearch 또는 AWS OpenSearch에 인덱싱되어 Mattermost 내에서 게시물을 검색할 수 있게 된다는 것입니다. 따라서 더 큰 서버에 대한 권장 사항을 기반으로 이 값을 설정하고 게시물을 작성하면 평균적으로 약 10~20초 동안 검색을 통해 찾을 수 없습니다. 현실적으로 이렇게 빠르게 게시물을 활발하게 검색하는 사용자의 수가 제한되어 있으므로 어떤 사용자도 이 영향을 느끼지 않아야 합니다. Elasticsearch 또는 AWS OpenSearch 서버 사양에 따라 이 값을 더 낮거나 높게 설정할 수 있습니다.
사용량이 많은 기간에는 더 많은 트래픽이 발생하여 더 많은 게시물이 생성되고 인덱스 번호에 도달하는 시간이 빨라지므로 이 지연이 더 빨라집니다. 사용량이 적은 기간에는 그 반대를 예상하세요.
서버에 적합한 숫자를 찾는 방법
서버에서 매분 얼마나 많은 게시물이 작성되는지 이해해야 합니다. 아래 쿼리를 실행하여 서버의 분당 평균 게시물 수를 계산하세요.
이 쿼리는 부하가 클 수 있으므로 비피크 시간에 실행하는 것을 권장합니다.
또한 WHERE 절을 조정하여 다른 기간의 분당 게시물 수를 확인할 수 있습니다. 현재 31536000000은 1년의 밀리초 수를 나타냅니다.
SELECT
AVG(postsPerMinute) as averagePostsPerMinute
FROM (
SELECT
count(*) as postsPerMinute,
date_trunc('minute', to_timestamp(createat/1000))
FROM posts
WHERE createAt > ( (extract(epoch from now()) * 1000 ) - 31536000000)
GROUP BY date_trunc('minute', to_timestamp(createat/1000))
) as ppm;
환경에 허용 가능한 인덱스 창을 결정하고, 분당 평균 게시물 수를 그것으로 나눕니다. 10-20초를 권장합니다. 평균적으로 분당 600개의 게시물이 있고 20초마다 인덱싱하려면 (60초 / 20초 = 3`) 600 / 3을 계산하여 200이라는 숫자가 나옵니다. 200개의 게시물 후에 Mattermost는 게시물을 Elasticsearch 또는 AWS OpenSearch에 인덱싱합니다. 따라서 평균적으로 검색 가능성에 20초의 지연이 있습니다.
config.json을 편집하거나 mmctl을 실행하여 LiveIndexingBatchSize 설정을 수정합니다
error: Creates the error trace when initializing the Elasticsearch or AWS OpenSearch client and prints any template creation or search query that returns an error as part of the error message.
all: Creates the three traces (error, trace and info) for the driver and doesn’t print the queries because they will be part of the trace log level of the driver.
not specified: (Default) No error trace is created.
Options for printing Elasticsearch or AWS OpenSearch trace errors. - error: Creates the error trace when initializing the Elasticsearch or AWS OpenSearch client and prints any template creation or search query that returns an error as part of the error message. - all: Creates the three traces (error, trace and info) for the driver and doesn’t print the queries because they will be part of the trace log level of the driver. - not specified: (Default) No error trace is created.
When enabled, Mattermost uses language-specific analyzer plugins to improve search results for Korean, Japanese, and Chinese content. The required analyzer plugins must be installed on the Elasticsearch or AWS OpenSearch server before enabling this setting. Supported plugins: - analysis-nori (Korean) - analysis-kuromoji (Japanese) - analysis-smartcn (Chinese) - true: CJK language-specific analyzers are enabled. - false: (Default) Standard analyzers are used.
Mattermost v11.6부터 사용 가능합니다. 전체 분석 지원을 위해 이 설정을 활성화하기 전에 Elasticsearch 또는 AWS OpenSearch 서버에 필요한 분석기 플러그인이 설치되어 있어야 합니다. 플러그인이 감지되지 않으면 경고가 기록됩니다. 플러그인 설치 지침은 Elasticsearch setup 및 AWS OpenSearch setup 문서를 참조하세요.
이전에 Elasticsearch 또는 AWS OpenSearch를 실행하던 서버에서 이 설정을 활성화하는 경우, 기존 콘텐츠가 새 분석기로 올바르게 검색 가능하도록 검색 인덱스를 제거하고 재구성해야 합니다. 인덱스 제거 및 재구성 지침은 Elasticsearch setup 문서를 참조하세요.
셀프 호스팅 배포에서는 System Console > Environment > File Storage로 이동하거나 다음 테이블에서 설명한 대로 config.json 파일을 편집하여 파일 스토리지 설정을 구성할 수 있습니다.
Note
현재 Mattermost는 로컬 파일 시스템 및 Amazon S3 또는 S3 호환 컨테이너에 파일을 저장하는 것을 지원합니다. Digital Ocean Spaces 로 Mattermost를 테스트했지만 시장의 모든 S3 호환 컨테이너는 테스트하지 않았습니다. 다른 S3 호환 컨테이너를 사용하려는 경우 자체적으로 테스트를 완료하는 것을 권장합니다. NFS를 사용하여 로컬 스토리지 또는 네트워크 드라이브를 사용할 수도 있습니다.
local: (Default) Files and images are stored in the specified local file directory.
amazons3: Files and images are stored on Amazon S3 based on the access key, bucket, and region fields provided.
The type of file storage system used. Can be either Local File System or Amazon S3. - local: (Default) Files and images are stored in the specified local file directory. - amazons3: Files and images are stored on Amazon S3 based on the access key, bucket, and region fields provided. The driver is compatible with other S3-compatible services, such as Digital Ocean Spaces.
The local directory to which files are written when the File storage system is set to local. Can be any directory writable by the user Mattermost is running as, and is relative to the directory where Mattermost is installed. Defaults to ./data/.
The maximum file size for message attachments and plugin uploads. This value must be specified in mebibytes in the System Console, and in bytes in the config.json file. The default is 104857600 bytes (100 mebibytes).
Enable users to search the contents of documents attached to messages. - true: (Default) Documents are searchable by their content. - false: Documents aren’t searchable by their content. When document content search is disabled, users can search for files by file name only.
파일에서 콘텐츠를 추출할 때 내용으로 문서 검색 활성화가 필요합니다. Mattermost 파일 검색 과 Mattermost Agents 모두 필요한 의존성이 활성화된 경우 파일과 해당 콘텐츠에 접근할 수 있습니다. Mattermost Server v5.35로 업그레이드하기 전에 공유된 파일의 문서 콘텐츠 검색 결과는 mmctl 을 사용하여 추출 명령을 실행할 때까지 불완전할 수 있습니다. 이 명령이 실행되지 않으면 사용자는 파일 이름으로만 이전 파일을 검색할 수 있습니다.
선택적으로 다음 의존성 을 설치하여 Mattermost의 콘텐츠 검색 지원을 DOC, RTF, XML, HTML과 같이 PDF, DOCX, ODT 이외의 파일 형식으로 확장할 수 있습니다:
tidy: HTML 문서의 콘텐츠 검색에 사용됩니다.
wv: DOC 문서의 콘텐츠 검색에 사용됩니다.
poppler-utils: PDF 문서 콘텐츠 추출 시 서버 성능을 크게 향상시키는 데 사용됩니다.
Enables users to search the contents of compressed ZIP files attached to messages. - true: Contents of documents within ZIP files are returned in search results. This may have an impact on server performance for large files. the specified local file directory. - false: (Default) The contents of documents within ZIP files aren’t returned in search results.
The AWS region you selected when creating your Amazon S3 bucket in AWS. A string with the AWS region containing the bucket. If no region is set, Mattermost attempts to get the appropriate region from AWS, and sets it to us-east-1 if none found.
By default, Mattermost uses Signature v4 to sign API calls to AWS, but under some circumstances, v2 is required. - true: Use Signature v2 signing process. - false: (Default) Use Signature v4 signing process.
Enable or disable Amazon S3 debugging to capture additional debugging information in system logs. - true: Log additional debugging information is logged to the system logs. - false: (Default) No Amazon S3 debugging information is included in the system logs. Typically set to false in production.
일부 Amazon S3 호환 스토리지 솔루션은 업로드 요청에 스토리지 클래스 파라미터가 포함되어야 하며, 그렇지 않으면 요청이 거부됩니다. S3 호환 솔루션에서 요구하는 스토리지 클래스를 설정합니다.
The storage class to use for uploads to S3-compatible storage solutions. String input. Default is an empty string "". Select Test Connection to test the configured connection.
The font used in auto-generated profile pictures with colored backgrounds and username initials. A string with the font file name. Default is nunito-bold.ttf.
자체 호스팅 배포에서는 이미지 프록시를 사용하여 Mattermost 앱이 원격 자체 호스팅 서버에 직접 연결되지 않도록 할 수 있습니다. System Console > Environment > Image Proxy로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 이미지 프록시를 설정합니다.
true: Enables an image proxy for loading external images.
An image proxy anonymizes Mattermost app connections and prevents them from accessing insecure content. - true: Enables an image proxy for loading external images. - false: (Default) Disables the image proxy.
The type of image proxy used by Mattermost. - local: (Default) The Mattermost server itself acts as the image proxy. - atmos/camo: An external atmos/camo image proxy is used.
Enable or disable SMTP authentication. - true: SMTP username and password are used for authenticating to the SMTP server. - false: (Default) Mattermost doesn’t attempt to authenticate to the SMTP server.
Specify connection security for emails sent using SMTP. - Not specified: (Default) Send email over an unsecure connection. - TLS: Communication between Mattermost and your email server is encrypted. - STARTTLS: Attempts to upgrade an existing insecure connection to a secure connection using TLS.
Configure Mattermost to skip the verification of the email server certificate. - true: Mattermost won't verify the email server certificate. - false: (Default) Mattermost verifies the email server certificate.
Enable or disable security alerts. - true: (Default) System admins are notified by email if a relevant security fix alert is announced. Requires email to be enabled. - false: Security alerts are disabled.
자체 호스팅 배포에서는 System Console > Environment > Push Notification Server 로 이동하거나 아래 표에 설명된 대로 config.json 파일을 편집하여 Mattermost 모바일 푸시 알림을 구성할 수 있습니다. 이 섹션의 구성 설정을 변경하려면 적용되기 전에 서버를 재시작해야 합니다.
Do not send push notifications: 모바일 푸시 알림이 비활성화됩니다.
Use HPNS connection with uptime SLA to send notifications to iOS and Android apps: (기본값) Mattermost 호스팅 푸시 알림 서비스를 사용합니다.
Use TPNS connection to send notifications to iOS and Android apps: Mattermost 테스트 푸시 알림 서비스를 사용합니다.
Manually enter Push Notification Service location: 커스텀 모바일 앱을 빌드할 때는 자체 모바일 푸시 프록시 서비스를 호스팅하고 해당 URL을 Push Notification Server 필드에 지정해야 합니다.
Mattermost 푸시 알림을 활성화하거나 비활성화합니다. - Do not send push notifications: 모바일 푸시 알림이 비활성화됩니다. - Use HPNS connection with uptime SLA to send notifications to iOS and Android apps: (기본값) Mattermost의 호스팅 푸시 알림 서비스를 사용합니다. - Use TPNS connection to send notifications to iOS and Android apps: Mattermost의 테스트 푸시 알림 서비스를 사용합니다. - Manually enter Push Notification Service location: 커스텀 모바일 앱을 빌드할 때는 자체 모바일 푸시 프록시 서비스를 호스팅하고 해당 URL을 Push Notification Server 필드에 지정해야 합니다.
- System Config path: Environment > Push Notification Server - config.json setting: EmailSettings > SendPushNotifications - Environment variable: MM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS
관리자는 Mattermost 구성 설정을 통해 Apple 및 Google에 전송되는 데이터를 제한하여 iOS 및 Android 알림 인프라 침해에 대해 Mattermost 고객을 보호하기 위해 모바일 알림을 완전히 비공개로 설정할 수 있습니다.
iOS 및 Android 애플리케이션에 알림을 보내는 표준 방식은 Apple 또는 Google에 일반 텍스트 메시지를 전송하여 사용자의 전화기로 전달하고 iOS 또는 Android에 표시하는 것입니다. Apple이나 Google은 데이터를 수집하거나 저장하지 않는다고 보장하지만, 해당 조직이 침해되거나 강요를 받는 경우 플랫폼의 모든 표준 모바일 알림이 손상될 수 있습니다.
이러한 위험을 피하기 위해 Mattermost는 모바일 알림 텍스트를 Apple이나 Google에 어떤 정보도 전달하지 않는 메시지 ID 번호로 대체하도록 구성할 수 있습니다. 사용자 전화기의 Mattermost 모바일 애플리케이션이 메시지 ID를 수신하면, 해당 ID를 사용하여 Mattermost 서버와 비공개로 통신하고 암호화된 채널을 통해 모바일 알림 메시지를 가져옵니다. 즉, 메시지 텍스트는 Apple이나 Google의 메시지 릴레이 시스템에 표시되지 않습니다. 메시지 내용은 Mattermost에도 도달하지 않습니다.
Mattermost의 ID 전용 푸시 알림을 통한 비공개 모바일 기능으로 알림 메시지를 검색하는 추가 단계로 인해 최종 사용자는 Apple 및 Google 플랫폼을 통해 일반 텍스트를 전송하는 경우와 비교하여 모바일 알림이 완전히 표시되기 전에 약간의 지연을 경험할 수 있습니다.
ID 전용 푸시 알림 구성 설정에 대한 자세한 내용은 구성 설정 문서를 참조하세요. 데이터 프라이버시를 위한 ID 전용 푸시 알림 사용에 대한 자세한 내용은 모바일 앱 FAQ 문서 를 참조하세요.
자체 호스팅 배포에서는 System Console > Environment > High Availability로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 Mattermost를 고가용성 클러스터 기반 배포로 구성할 수 있습니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작해야 적용됩니다.
Mattermost 고가용성 클러스터 기반 배포에서는 System Console이 읽기 전용으로 설정되며, 설정은 config.json 파일을 직접 편집해야만 변경할 수 있습니다. 단, 고가용성 클러스터 기반 환경을 테스트하려면 config.json 파일에서 ClusterSettings.ReadOnlyConfig를 false로 설정하여 비활성화할 수 있습니다. 이렇게 하면 System Console을 통해 적용된 변경 사항이 구성 파일에 저장됩니다.
true: The Mattermost server will attempt inter-node communication with the other servers in the cluster that have the same cluster name.
false: (Default) Mattermost high availability mode is disabled.
You can enable high availability mode. - true: The Mattermost server will attempt inter-node communication with the other servers in the cluster that have the same cluster name. This sets the System Console to read-only mode to keep the servers' config.json files in sync. - false: (Default) Mattermost high availability mode is disabled.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > Enable > false - Environment variable: MM_CLUSTERSETTINGS_ENABLE
The cluster to join by name in a high availability cluster-based deployment. Only nodes with the same cluster name will join together. This is to support blue-green deployments or staging pointing to the same database.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > ClusterName - Environment variable: MM_CLUSTERSETTINGS_CLUSTERNAME
You can override the hostname of this server. - This property can be set to a specific IP address if needed; however, we don’t recommend overriding the hostname unless it's necessary. - If left blank, Mattermost attempts to get the hostname from the operating system or uses the IP address.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > OverrideHostname - Environment variable: MM_CLUSTERSETTINGS_OVERRIDEHOSTNAME
You can configure your high availability cluster-based deployment to communicate using the hostname instead of the IP address. - true: (Default) The cluster attempts to communicate using the IP address specified. - false: The cluster attempts to communicate using the hostname.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > UseIPAddress > true - Environment variable: MM_CLUSTERSETTINGS_USEIPADDRESS
true: (Default) The server attempts to communicate via the gossip protocol over the gossip port specified.
false: The server attempts to communicate over the streaming port.
Gossip encryption uses AES-256 by default, and this value isn't configurable by design. - true: (Default) The server attempts to communicate via the gossip protocol over the gossip port specified. - false: The server attempts to communicate over the streaming port.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > EnableGossipEncryption > true - Environment variable: MM_CLUSTERSETTINGS_ENABLEGOSSIPENCRYPTION
Note
Gossip 프로토콜은 코넬 대학교 연구진이 개발한 SWIM 프로토콜에 설명된 원칙을 기반으로 합니다. Gossip 프로토콜은 분산 시스템에서 노드가 무작위로 정보를 교환하여 네트워크 전체의 데이터 일관성을 보장하는 통신 메커니즘입니다. 탈중앙화, 확장성, 내결함성을 갖추고 있어 노드 수가 많은 시스템에 이상적입니다. 정보는 소셜 가십과 유사한 방식으로 확산되며, 네트워크가 일관된 상태로 수렴될 때까지 노드가 주기적으로 랜덤 피어에게 업데이트를 "가십"합니다. 분산 데이터베이스, 블록체인 네트워크, P2P 시스템에서 널리 사용되며, 구현이 간단하고 노드 장애에 강하지만 대규모 네트워크에서는 중복성과 전파 지연이 발생할 수 있습니다.
또는 Systems 테이블에서 ClusterEncryptionKey 행 값을 수동으로 설정할 수 있습니다. 키는 base64로 변환된 바이트 배열입니다. AES-128, AES-192, AES-256을 선택하려면 이 값을 각각 16, 24, 32바이트로 설정합니다.
Mattermost v10.11부터 모든 새 배포에서 기본적으로 가십 암호화가 활성화됩니다. 기존 배포에서는 수동으로 암호화를 활성화하지 않으면 Gossip 프로토콜을 사용하는 모든 통신이 암호화되지 않은 상태로 유지됩니다. v10.11 이전에는 Cloud 배포에서 기본적으로 가십 암호화가 활성화되고 자체 호스팅 배포에서는 기본적으로 비활성화됩니다.
true: (Default) All communication through the cluster uses gossip compression.
false: All communication using the gossip protocol remains uncompressed.
We recommend that you disable this configuration setting for better performance. - true: (Default for self-hosted deployments) All communication through the cluster uses gossip compression. This setting is enabled by default to maintain compatibility with older servers. - false: (Default for Cloud deployments) All communication using the gossip protocol remains uncompressed.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > EnableGossipCompression > true - Environment variable: MM_CLUSTERSETTINGS_ENABLEGOSSIPCOMPRESSION
- true: (Default) Changes made to settings in the System Console are ignored. - false: Changes made to settings in the System Console are written to config.json.
An IP address used to bind cluster traffic to a specific network device. This setting is used primarily for servers with multiple network devices or different Bind Address and Advertise Address like in deployments that involve NAT (Network Address Translation). String input.
The IP address used to access the server from other nodes. This settings is used primary when cluster nodes are not in the same network and involve NAT (Network Address Translation). String input.
속도 제한 이 활성화된 경우 다양한 속도 제한 설정에 따라 시스템에 연결된 최대 사용자 세션 수입니다. 숫자 입력. 기본값은 10000 입니다. 일반적으로 시스템의 사용자 수로 설정합니다. 예상 사용자 수로 이 값을 설정하는 것을 권장합니다. 값이 높으면 리소스가 충분히 활용되지 않을 수 있으며, 값이 낮으면 사용자 세션/토큰이 너무 자주 만료될 수 있습니다.
속도 제한 이 활성화된 경우 IP 주소별로 API 접근을 속도 제한하도록 Mattermost를 구성합니다. - true: (기본값) IP 주소별로 API 접근을 속도 제한합니다. 프록시 사용 시 권장됩니다. - false: IP 주소별로 속도 제한이 다르게 적용되지 않습니다.
속도 제한 이 활성화된 경우 인증 토큰별로 API 접근을 속도 제한할지 여부를 설정합니다. - true: 사용자 인증 토큰별로 API 접근을 속도 제한합니다. 프록시 사용 시 권장됩니다. - false: (기본값) 사용자 인증 토큰별로 속도 제한이 다르게 적용되지 않습니다.
지정된 HTTP 헤더 필드에 따라 API 접근 속도 제한을 다르게 적용하도록 Mattermost를 구성합니다. 프록시 사용 시 권장됩니다. - NGINX 구성 시 X-Real-IP 로 설정합니다. - AmazonELB 구성 시 X-Forwarded-For 로 설정합니다.
기본적으로 모든 Mattermost 에디션은 콘솔과 머신이 읽을 수 있는 JSON 형식의 mattermost.log 파일 모두에 로그를 기록합니다. Mattermost Enterprise 및 Professional 고객은 syslog 및 TCP 소켓 대상에 직접 로그를 기록할 수도 있습니다.
Configure Mattermost to output general logs to the console. - true: (Default) Output log messages are written to the console based on the console log level configuration. The server writes messages to the standard output stream (stdout). - false: Output log messages aren’t written to the console.
The level of detail in general log events written when Mattermost outputs log messages to the console. - DEBUG: (Default) Outputs verbose detail for developers debugging issues. - ERROR: Outputs only error messages. - INFO: Outputs error messages and information around startup and initialization.
Configure Mattermost to output general console logs as JSON. - true: (Default) Logged events are written in a machine-readable JSON format. - false: Logged events are written in plain text.
Enables system admins to display plain text general log level details in color. - true: When logged events are output to the console as plain text, colorize log levels details. - false: (Default) Plain text log details aren't colorized in the console.
true: (Default) General events are written based on the file log level configuration to a mattermost.log file located in the directory configured via file location.
Configure Mattermost to output general console logs to a file. - true: (Default) Logged events are written based on the file log level configuration to a mattermost.log file located in the directory configured via file location. - false: Logged events aren’t written to a file.
설정한 경로가 존재해야 하며, Mattermost는 해당 디렉터리에 쓰기 권한을 가져야 합니다.
Mattermost v11.4부터 MM_LOG_PATH 환경 변수를 사용하여 로그 파일 위치를 지정된 루트 디렉터리로 제한할 수 있습니다. 이 보안 기능은 LogSettings.FileLocation 또는 LogSettings.AdvancedLoggingJSON을 통해 구성된 모든 로그 파일이 승인된 로깅 디렉터리 내에 유지되도록 합니다.
MM_LOG_PATH가 설정되지 않은 경우 기본 logs 디렉터리가 사용됩니다. 루트 디렉터리 외부의 경로는 오류 로그를 생성하며 지원 패킷 다운로드에서 제외됩니다. 자세한 내용은 로그 경로 제한 문서를 참조하세요.
DEBUG: Outputs verbose detail for developers debugging issues.
ERROR: Outputs only error messages.
INFO: (Default) Outputs error messages and information around startup and initialization.
The level of detail in general log events when when Mattermost outputs log messages to a file. - DEBUG: Outputs verbose detail for developers debugging issues. - ERROR: Outputs only error messages. - INFO: (Default) Outputs error messages and information around startup and initialization.
Configure Mattermost to output general file logs as JSON. - true: (Default) Logged events are written in a machine-readable JSON format. - false: Logged events are written in plain text.
Configure Mattermost to capture the contents of general incoming webhooks to console and/or file logs for debugging. - true: (Default) The contents of incoming webhooks are printed to log files for debugging. - false: The contents of incoming webhooks aren’t printed to log files.
Configure Mattermost to allow any combination of console, local file, syslog, and TCP socket targets, and send general log records to multiple targets. String input can contain a filespec to another configuration file, a database DSN, or JSON.
Whether or not general diagnostics and error reports are sent to Mattermost, Inc. - true: (Default) Send diagnostics and error reports. - false: Diagnostics and error reports aren't sent.
Whether or not verbose general diagnostics information is sent. - true: Send verbose diagnostics information. - false: (Default) Verbose diagnostics information isn't sent.
Whether or not general error reports are sent to Sentry. - true: (Default) Send error reports to Sentry. Default matches the EnableDiagnostics setting. - false: Error reports are not sent to Sentry.
Mattermost v11부터 알림 로그 설정이 표준 콘솔 로그 및 mattermost.log 파일에 통합되었습니다. 이제 메인 로그 수준 설정이 서버 로그와 알림 로그를 모두 제어하므로, 고급 로깅 설정 없이는 알림 로깅을 비활성화할 수 없습니다.
AdvancedLoggingJSON 구성에서 NotificationError, NotificationWarn, NotificationInfo, NotificationDebug, NotificationTrace와 같은 개별 알림 로그 수준을 사용하여 알림 로그를 별도 파일로 분리하고 문제 해결 시 노이즈를 줄일 수 있습니다. 자세한 내용은 고급 로깅을 참조하세요.
다음 구성 설정은 Mattermost 서버 v11.0 이전 버전에만 적용됩니다.
다음 표에서 설명한 대로 config.json 파일을 편집하여 Mattermost 알림에 특화된 로깅을 구성할 수 있습니다. 이 설정은 메인 LogSettings와 독립적으로 작동하며 알림 하위 시스템에 특화된 로깅 동작을 맞춤 설정할 수 있습니다. 이 설정 변경 사항은 서버를 재시작해야 적용됩니다.
true: (Default) Notification logs are written to the console based on the console log level configuration.
false: Output log messages aren’t written to the console.
Configure Mattermost to output notification logs to the console. - true: (Default) Output log messages are written to the console based on the console log level configuration. The server writes messages to the standard output stream (stdout). - false: Output log messages aren't written to the console.
The level of detail in notification log events written when Mattermost outputs log messages to the console. - DEBUG: (Default) Outputs verbose detail for developers debugging issues. - ERROR: Outputs only error messages. - INFO: Outputs error messages and information around startup and initialization.
Configure Mattermost to output notification console logs as JSON. - true: (Default) Logged events are written in a machine-readable JSON format. - false: Logged events are written in plain text.
Enables system admins to display plain text notification log level details in color. - true: When logged events are output to the console as plain text, colorize log levels details. - false: (Default) Plain text log details aren't colorized in the console.
true: (Default) Notification events are written based on the file log level configuration to a notifications.log file located in the directory configured via file location.
Configure Mattermost to output notification console logs to a file. - true: (Default) Logged events are written based on the file log level configuration to a notifications.log file located in the directory configured via file location. - false: Logged events aren't written to a file.
The level of detail in notification log events when Mattermost outputs log messages to a file. - DEBUG: Outputs verbose detail for developers debugging issues. - ERROR: Outputs only error messages. - INFO: (Default) Outputs error messages and information around startup and initialization.
Configure Mattermost to output notification file logs as JSON. - true: (Default) Logged events are written in a machine-readable JSON format. - false: Logged events are written in plain text.
Configure Mattermost to allow any combination of console, local file, syslog, and TCP socket targets, and send notification log records to multiple targets. String input can contain a filespec to another configuration file, a database DSN, or JSON.
System Console > Compliance > Audit Logging으로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 감사 로깅을 구성합니다. 이 설정은 메인 LogSettings와 독립적으로 작동하며 감사 하위 시스템에 특화된 로깅 동작을 맞춤 설정할 수 있습니다. 이 설정 변경 사항은 서버를 재시작해야 적용됩니다.
true: Logged events are written to the file specified by the audit file name configuration setting.
Whether to write audit log files to disk. - true: Logged events are written to the file specified by the audit file name configuration setting. - false: (Default) Audit log files aren't written.
The name of the audit log files. The path that you set to the audit file must exist and Mattermost must have write permissions in it. Example:/var/log/mattermost_audit.log
자체 호스팅 배포에서 사용자 세션은 사용자가 로그인을 시도할 때 지워지며, 세션 데이터베이스 테이블에서 24시간마다 세션이 지워집니다. System Console > Environment > Session Lengths로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 세션 길이를 구성합니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작해야 적용됩니다.
true: (Default) Sessions are automatically extended when users are active in their Mattermost client.
false: Sessions won't extend with activity in Mattermost.
Improves the user experience by extending sessions and keeping users logged in if they are active in their Mattermost apps. - true: (Default) Sessions are automatically extended when users are active in their Mattermost client. User sessions only expire when users aren’t active in their Mattermost client for the entire duration of the session lengths defined. - false: Sessions won't extend with activity in Mattermost. User sessions immediately expire at the end of the session length or based on the session idle timeout configured.
true: (Default for new deployments) Session revocation is enabled. All sessions of a user expire if their password is changed (by themselves or a system admin). If the password change is initiated by the user, their current session isn't terminated.
false: (Default for existing deployments) Session revocation is disabled. When users change their password, only the user's current session is revoked. When a system admin changes the user's password, none of the user's sessions are revoked.
Enable or disable session revocation when a user's password changes. - true: (Default for new deployments) Session revocation is enabled. All sessions of a user expire if their password is changed (by themselves or by a system admin). If the password change is initiated by the user, their current session isn't terminated. - false: (Default for existing deployments) Session revocation is disabled. When users change their password, only the user's current session is revoked. When a system admin changes the user's password, none of the user's sessions are revoked.
Set the number of hours counted from the last time a user entered their credentials into the web app or the desktop app to the expiry of the user’s session on email and AD/LDAP authentication.
Default is 720 hours.
Set the number of hours counted from the last time a user entered their credentials into the web app or the desktop app to the expiry of the user’s session on email and AD/LDAP authentication. Numerical input in hours. Default is 720 hours.
Set the number of hours counted from the last time a user entered their credential into the mobile app to the expiry of the user’s session. Numerical input in hours. Default is 720 hours.
Set the number of hours from the last time a user entered their SSO credentials to the expiry of the user’s session. This setting defines the session length for SSO authentication, such as SAML, GitLab, and OAuth 2.0. Numerical input in hours. Default is 720 hours. Numbers as decimals are also valid values for this configuration setting.
The number of minutes from the last time a user was active on the system to the expiry of the user’s session. Once expired, the user will need to log in to continue.
Default is 43200 minutes (30 days). Minimum value is 5 minutes, and a value of 0 sets the time as unlimited.
The number of minutes from the last time a user was active on the system to the expiry of the user’s session. Once expired, the user will need to log in to continue. Numerical input in minutes. Default is 43200 (30 days). Minimum value is 5 minutes, and a value of 0 sets the time as unlimited.
Enable or disable performance monitoring. - true: Performance monitoring data collection and profiling is enabled. - false: (Default) Mattermost performance monitoring is disabled.
Control how often Mattermost collects data about delays caused by blocking operations within Mattermost (such as when one part of the program has to wait for another). Default is 0 (profiling is disabled). The profiler aims to sample an average of one blocking event per rate nanoseconds spent blocked. Default is 0.
Enable or disable notification metrics data collection. - true: (Default) Mattermost notification data collection is enabled for client-side web and desktop app users. - false: Mattermost notification data collection is disabled.
- System Config path: Site Configuration > Notifications - config.json setting: MetricsSettings > EnableNotificationMetrics > true - Environment variable: MM_METRICSSETTINGS_ENABLENOTIFICATIONMETRICS
Note
MetricsSettings.Enable이 true로 설정되어 있어야 합니다.
NotificationMonitoring 기능 플래그가 true로 설정되어 있어야 합니다.
자체 호스팅 배포에서는 System Console > Environment > Developer로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 개발자 모드를 구성할 수 있습니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작해야 적용됩니다.
true: (Default) The /test slash command is enabled to load test accounts and test data. Use this setting only in isolated non-production environments and never in production.
Enable or disable the /test slash command. - true: (Default) The /test slash command is enabled to load test accounts and test data. Use this setting only in isolated non-production environments and never in production. - false: The /test slash command is disabled.
Enable or disable developer mode. - true: (Default) Javascript errors are shown in a banner at the top of Mattermost the user interface. Not recommended for use in production. - false: Users are not alerted to Javascript errors.
Enable or disable client-side debugging settings found in Settings > Advanced > Debugging for individual users. - true: Those settings are visible and can be enabled by users. - false: (Default) Those settings are hidden and disabled.
이 설정은 로컬 네트워크 외부에 있는 사용자가 Mattermost 서버를 통해 네트워크 내부의 기밀 데이터를 요청하지 못하도록 하기 위한 것입니다. 로컬 네트워크에 대한 의도치 않은 접근을 방지하기 위해 이 설정을 구성할 때 주의해야 합니다.
Limit the ability for the Mattermost server to make untrusted requests within its local network. A request is considered “untrusted” when it’s made on behalf of a client.
이 설정은 Mattermost 서버가 요청할 수 있는 로컬 네트워크 주소의 허용 목록입니다. 공백으로 구분된 호스트명, IP 주소, CIDR 범위 목록으로 구성됩니다.
시스템 관리자만 구성할 수 있는 요청은 신뢰할 수 있는 것으로 간주되어 이 설정에 영향을 받지 않습니다. 신뢰할 수 있는 URL에는 OAuth 로그인이나 푸시 알림 전송에 사용되는 URL이 포함됩니다.
다음 기능은 신뢰할 수 없는 요청을 하며 이 설정의 영향을 받습니다:
웹훅, 슬래시 명령 또는 메시지 액션을 사용하는 통합. 이를 통해 로컬 네트워크 내의 엔드포인트를 요청할 수 없게 합니다.
링크 미리보기. 로컬 네트워크 주소 링크가 채팅 메시지에 게시될 때 링크 미리보기가 표시되지 않도록 합니다.
로컬 이미지 프록시. 로컬 이미지 프록시가 활성화된 경우 로컬 네트워크에 있는 이미지를 통합에서 사용하거나 채팅 메시지에 게시할 수 없습니다.
이 설정을 수정할 수 있는 몇 가지 예시:
Matterpoll과 같이 자체 이미지를 포함하는 플러그인을 설치하는 경우 Mattermost 서버의 도메인 이름을 이 목록에 추가해야 합니다.
로컬 네트워크에서 봇 또는 웹훅 기반 통합을 실행하는 경우 봇/통합의 호스트명을 이 목록에 추가해야 합니다.
공개적으로 접근 가능한 웹 페이지나 이미지가 내부 IP 주소를 통해 Mattermost 서버에서 접근되는 방식으로 네트워크가 구성된 경우 해당 서버의 호스트명을 이 목록에 추가해야 합니다.
Note
Mattermost 애플리케이션 서버 자체의 공인 IP도 예약된 IP로 간주됩니다.
호스트명, IP 주소 또는 CIDR 범위를 나열할 때 쉼표 대신 공백을 사용하세요. 예: webhooks.internal.example.com, 127.0.0.1, 또는 10.0.16.0/28.
IP 주소 및 도메인 이름 규칙은 호스트 해석 전에 적용됩니다.
CIDR 규칙은 호스트 해석 후에 적용되며, DNS 해석이 필요한 것은 CIDR 규칙뿐입니다.
Mattermost는 먼저 해석 없이 IP 주소와 호스트명을 일치시키려 합니다. 실패하면 로컬 리졸버(먼저 /etc/hosts 파일을 읽어)를 사용하여 해석한 다음 일치하는 CIDR 규칙을 확인합니다. 예를 들어, 도메인 “webhooks.internal.example.com”이 IP 주소 10.0.16.20으로 해석되는 경우, URL https://webhooks.internal.example.com/webhook을 가진 웹훅은 webhooks.internal.example.com 또는 10.0.16.16/28을 사용하여 허용 목록에 추가할 수 있지만 10.0.16.20은 사용할 수 없습니다.
Mattermost v10.7 및 모바일 앱 v2.27부터 EMM 공급자에 의존하지 않고 생체 인증을 구성하고, 탈옥 또는 루팅된 기기에서 Mattermost 사용을 방지하며, 화면 캡처를 차단할 수 있습니다. System Console > Environment > Mobile Security로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 이 옵션을 구성합니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작하고 사용자가 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인해야 적용됩니다.
true: Biometric authentication is enabled.
false: (Default) Biometric authentication is disabled.
Enforce biometric authentication, with PIN/passcode fallback, before accessing the app. Users will be prompted based on session activity and server switching rules. - true: Biometric authentication is enabled. - false: (Default) Biometric authentication is disabled.
- System Config path: Environment > Mobile Security - config.json setting: NativeAppSettings > MobileEnableBiometrics > false - Environment variable: MM_NATIVEAPPSETTINGS_MOBILEENABLEBIOMETRICS
Note
이 구성 설정을 변경하면 모바일 사용자가 Mattermost 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인할 때 적용됩니다.
다음 상황에서 사용자는 인증해야 합니다:
새 서버 추가 시: 모바일 앱에 새 서버가 추가되고 생체 인증이 활성화된 경우.
모바일 앱 열기 시: 활성 서버가 인증을 요구할 때 앱 실행 시.
백그라운드 사용 후 복귀 시: 앱이 5분 이상 백그라운드에 있었고 활성 서버가 인증을 요구하는 경우.
여러 서버 사용 시: 처음으로 서버에 접근할 때, 서버에서 5분 이상 비활성 상태 후, 그리고 마지막 인증 시도가 실패했을 때.
true: Jailbreak/Root protection is enabled.
false: (Default) Jailbreak/Root protection is disabled.
Prevent access to the app on devices detected as jailbroken or rooted. If a device fails the security check, users will be denied access or prompted to switch to a compliant server. - true: Jailbreak/Root protection is enabled. - false: (Default) Jailbreak/Root protection is disabled.
- System Config path: Environment > Mobile Security - config.json setting: NativeAppSettings > MobileJailbreakProtection > false - Environment variable: MM_NATIVEAPPSETTINGS_MOBILEJAILBREAKPROTECTION
Note
이 구성 설정을 변경하면 모바일 사용자가 Mattermost 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인할 때 적용됩니다.
Block screenshots and screen recordings when using the mobile app. Screenshots will appear blank, and screen recordings will blur (iOS) or show a black screen (Android). Also applies when switching apps. - true: Screen capture blocking is enabled. - false: (Default) Screen capture blocking is disabled.
- System Config path: Environment > Mobile Security - config.json setting: NativeAppSettings > MobilePreventScreenCapture > false - Environment variable: MM_NATIVEAPPSETTINGS_MOBILEPREVENTSCREENCAPTURE
Note
Changing this configuration setting takes effect when mobile users restart their Mattermost mobile app or log out and log back in.
true: Prevents file downloads, previews, and sharing for most file types. Allows in-app previews for PDFs, videos, and images only. Files are stored temporarily in the app's cache and cannot be exported or shared.
false: (Default) Secure file preview mode is disabled.
이 설정은 필수 파일 보기 기능은 유지하면서 파일 접근을 제한하여 조직의 모바일 보안 태세를 강화합니다.
- true: Prevents file downloads, previews, and sharing for most file types, even when the Allow file downloads on mobile configuration setting is enabled. Allows in-app previews for PDFs, videos, and images only. Files are stored temporarily in the app's cache and cannot be exported or shared. - false: (Default) Secure file preview mode is disabled.
- System Config path: Site Configuration > File sharing and downloads - config.json setting: FileSettings > MobileEnableSecureFilePreview > false - Environment variable: MM_FILESETTINGS_MOBILEENABLESECUREFILEPREVIEW
Note
이 구성 설정을 변경하면 모바일 사용자가 Mattermost 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인할 때 적용됩니다.
true: (Default) Enables tapping links inside PDFs on mobile when Secure File Preview Mode is active. Links will open in the device browser or supported app.
false: Disables link navigation in PDFs when Secure File Preview Mode is active.
- true: (Default) Enables tapping links inside PDFs on mobile when Secure File Preview Mode is active. Links will open in the device browser or supported app. - false: Disables link navigation in PDFs when Secure File Preview Mode is active.
- System Config path: Site Configuration > File sharing and downloads - config.json setting: FileSettings > MobileAllowPdfLinkNavigation > true - Environment variable: MM_FILESETTINGS_MOBILEALLOWPDFLINKNAVIGATION
Note
이 구성 설정을 변경하면 모바일 사용자가 Mattermost 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인할 때 적용됩니다.
Enable or disable customer portal requests. - true: (Default) Server-side requests made to the customer portal are disabled. - false: Server-side requests made to the Mattermost Customer Portal are enabled, but will always fail in air-gapped and restricted deployment environments.
true: The api/v4/teams/{teamid}?permanent=true API endpoint can be called by team admins and system admins (or users with appropriate permissions), or by running the mmctl team delete command, to permanently delete a team.
false: (Default) The API endpoint cannot be called, but api/v4/teams/{teamid} can still be used to soft delete a team.
Allow permanent team deletion via API. - true: Team and system admins (or users with appropriate permissions) can call api/v4/teams/{teamid}?permanent=true or use mmctl team delete to permanently delete a team. - false: (Default) Endpoint not available; api/v4/teams/{teamid} still soft deletes a team.
이 설정은 System Console에서 사용할 수 없으며 config.json에서만 설정할 수 있습니다.
true: The api/v4/users/{userid}?permanent=true API endpoint can be called by system admins (or users with appropriate permissions), or by running the mmctl user delete command, to permanently delete a user.
false: (Default) The API endpoint cannot be called, but api/v4/users/{userid} can still be used to soft delete a user.
Allow permanent user deletion via API. - true: System admins (or users with appropriate permissions) can call api/v4/users/{userid}?permanent=true or use mmctl user delete to permanently delete a user. - false: (Default) Endpoint not available; api/v4/users/{userid} still soft deletes a user.
이 설정은 System Console에서 사용할 수 없으며 config.json에서만 설정할 수 있습니다.
true: The api/v4/channels/{channelid}?permanent=true API endpoint can be called by system admins (or users with appropriate permissions), or by running the mmctl channel delete command, to permanently delete a channel.
false: (Default) The API endpoint cannot be called, but api/v4/channels/{channelid} can still be used to soft delete a channel.
Allow permanent channel deletion via API. - true: System admins (or users with appropriate permissions) can call api/v4/channels/{channelid}?permanent=true or use mmctl channel delete to permanently delete a channel. - false: (Default) Endpoint not available; api/v4/channels/{channelid} still soft deletes a channel.
Desktop App v5.10부터 이 설정은 Mattermost 데스크탑 앱의 View > Developer Tools 메뉴에서 사용할 수 있는 개발자 디버깅 옵션을 활성화합니다.
이 설정은 System Console에서 사용할 수 없으며 config.json에서 환경 변수 MM_DESKTOP_DEVELOPER_MODE를 true로 설정해야만 활성화할 수 있습니다. 기본적으로 비활성화되어 있습니다.
True: 문제 해결 및 디버깅을 위해 데스크탑 앱에서 다음 옵션을 잠금 해제합니다. Mattermost 개발자의 지시가 있을 때만 이 설정을 활성화해야 합니다:
Browser Mode Only: 프리로드 스크립트를 완전히 비활성화하고 웹 앱 구성 요소가 데스크탑 앱에 있다는 것을 인식하지 못하도록 합니다. 이 옵션은 웹 앱 구성 요소가 성능 및/또는 메모리 보유 문제를 일으키는지 여부의 가장 좋은 지표여야 합니다. 이 옵션은 알림, 크로스 탭 탐색, 읽지 않음/멘션 배지, 통화 위젯을 비활성화하고 macOS에서 크기 조정을 중단합니다.
Disable Notification Storage: 선택하고 읽을 때까지 읽지 않은 알림에 대한 참조를 유지하는 맵을 끕니다. 이 옵션은 Mattermost가 사용되지 않는 알림에 대한 참조를 너무 많이 유지하는 경우 디버깅에 유용합니다.
Disable User Activity Monitor: 사용자가 자리를 비웠는지 여부를 확인하는 인터벌을 끕니다. 이 옵션은 사용자의 상태가 예상치 못한 데스크탑 앱 동작을 일으키는지 여부를 디버깅하는 데 유용합니다.
Disable Context Menu: BrowserView에 연결된 컨텍스트 메뉴를 끕니다. 이 옵션은 라이브러리 정상성 확인에 유용합니다.
Force Legacy Messaging API: 앱이 최신 contextBridge API 대신 이전 메시징 API로 되돌아가도록 강제합니다. 이 옵션은 새 API가 메모리 보유 원인인지 확인하는 정상성 확인에 유용합니다.
Force New Messaging API: 앱이 contextBridge API를 사용하도록 강제하고 이전 API를 완전히 비활성화합니다. 이 옵션은 이전 API에 대한 리스너를 강제로 끕니다.
False: (Default) 개발자 디버깅 옵션이 잠기고 데스크탑 앱에서 사용할 수 없습니다.
Mattermost v10.4부터 자체 호스팅 배포를 사용하는 Mattermost Enterprise 고객은 대안적인 캐시 백엔드로 Redis (Remote Dictionary Server)를 구성할 수 있습니다. Redis는 데이터베이스, 캐시, 메시지 브로커로 사용할 수 있는 오픈 소스 인메모리 데이터 구조 저장소입니다. 다양한 데이터 구조를 지원하며 메모리에 데이터를 저장하고 매우 빠른 데이터 접근을 제공하는 성능으로 최우선 선택지가 됩니다.
Redis를 캐싱 솔루션으로 사용하면 고동시성 및 대규모 사용자 기반을 가진 엔터프라이즈급 배포에서 Mattermost가 고사용량에서도 고성능과 효율성을 유지할 수 있습니다.
다음 표에서 설명한 대로 config.json 파일을 편집하여 Redis 캐시를 구성합니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작해야 적용됩니다.
lru: (Default) Mattermost uses the in-memory cache store.
redis: Mattermost uses the configured Redis cache store.
Disables the client-side cache of Redis. - true: Client-side cache of Redis is disabled. Typically used as a test option, and not in production environments. - false: (Default) Client-side cache of Redis is enabled.
모든 Redis 캐시 키에 접두사를 추가하면 키 충돌을 줄이고, 디버깅을 단순화하며, 데이터를 격리하고, Redis 기반 시스템을 관리하고 확장하기 위한 명확한 구조를 제공합니다. 여러 시스템 또는 테넌트가 동일한 Redis 인스턴스를 사용하는 환경에서는 접두사가 데이터 무결성과 운영 효율성을 유지하는 데 중요합니다.
true: Improves websocket broadcasting performance; however, performance may decrease when users join or leave a channel. Not recommended unless you have at least 200,000 concurrent users actively using Mattermost.
false: (Default) Websocket broadcasting performance in channels is disabled.
Control the performance of websocket broadcasting in channels. When enabled, improves websocket broadcasting performance; however, performance may decrease when users join or leave a channel. Not recommended unless you have at least 200,000 concurrent users actively using Mattermost. Disabled by default.
Enables the ability to specify an alternate filestore target for Mattermost bulk exports and compliance exports. - True: A new ExportFileBackend() is generated under FileSettings using new configuration values for the following configuration settings: - ExportDriverName - ExportDirectory - ExportAmazonS3AccessKeyId - ExportAmazonS3SecretAccessKey - ExportAmazonS3Bucket - ExportAmazonS3PathPrefix - ExportAmazonS3Region - ExportAmazonS3Endpoint - ExportAmazonS3SSL - ExportAmazonS3SignV2 - ExportAmazonS3SSE - ExportAmazonS3Trace - ExportAmazonS3RequestTimeoutMilliseconds - ExportAmazonS3PresignExpiresSeconds - False: (Default) Standard file storage is used. Standard file storage will also be used when the configuration setting or value is omitted.
대체 파일스토리지 대상이 구성된 경우 Mattermost Cloud 관리자는 /exportlink [job-id|zip file|latest] 슬래시 명령을 사용하여 내보내기를 위한 S3 사전 서명 URL을 생성할 수 있습니다. 자세한 내용은 Mattermost 데이터 마이그레이션 문서를 참조하세요. 또는 Cloud 및 자체 호스팅 관리자가 mmctl export generate-presigned-url 명령을 사용하여 mmctl에서 직접 사전 서명 URL을 생성할 수 있습니다.
S3 사전 서명 URL을 생성하려면 기능 플래그 EnableExportDirectDownload가 true로 설정되어 있어야 하고, 스토리지가 S3 링크 생성과 호환되어야 하며, 이 실험적 구성 설정이 true로 설정되어 있어야 합니다. 공유 스토리지를 사용하는 시스템에서는 내보내기를 위한 사전 서명 URL이 지원되지 않습니다.
Product 메뉴를 선택하고 System Console을 선택한 후 Environment를 선택하여 System Console에서 다음 환경 구성 옵션을 검토하고 관리하세요: 셀프 호스팅 Mattermost 배포를 관리하는 시스템 관리자는 다음 테이블에서 설명한 대로 config.json 파일을 편집할 수 있습니다.
Product 메뉴를 선택하고 System Console을 선택한 후 Environment를 선택하여 System Console에서 다음 환경 구성 옵션을 검토하고 관리하세요:
셀프 호스팅 Mattermost 배포를 관리하는 시스템 관리자는 다음 테이블에서 설명한 대로 config.json 파일을 편집할 수 있습니다. 아래 각 구성 값에는 JSON 인식 도구를 사용하여 config.json 파일에서 프로그래밍 방식으로 값에 접근하기 위한 JSON 경로가 포함되어 있습니다. 예를 들어, SiteURL 값은 ServiceSettings 아래에 있습니다.
jq 같은 도구를 사용하는 경우: cat config/config.json | jq '.ServiceSettings.SiteURL'
config.json 파일을 수동으로 작업하는 경우, ServiceSettings 같은 객체를 찾은 다음 해당 객체 내에서 SiteURL 키를 찾으세요.
셀프 호스팅 배포에서는 System Console > Environment > Web Server로 이동하거나 다음 테이블에서 설명한 대로 config.json 파일을 업데이트하여 Mattermost가 배포된 네트워크 환경을 구성할 수 있습니다. 이 섹션의 구성 설정 변경 사항은 적용되기 전에 서버를 다시 시작해야 합니다.
The URL that users use to access Mattermost. The port number is required if it’s not a standard port, such as 80 or 443. This field is required. Select the Test Live URL button in the System Console to validate the Site URL.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > SiteURL - Environment variable: MM_SERVICESETTINGS_SITEURL
Note
URL에는 https://example.com/company/mattermost 와 같이 서브 경로가 포함될 수 있습니다.
사이트 URL 값을 변경하면 데스크톱 앱에서 로그아웃한 후 새 도메인으로 다시 로그인하세요.
사이트 URL이 설정되지 않은 경우:
이메일 알림에 깨진 링크가 포함되고, 이메일 일괄 처리가 작동하지 않습니다.
GitLab, Google, Entra ID를 포함한 OAuth 2.0을 통한 인증이 실패합니다.
The longest URL, in characters, including query parameters, accepted by the Mattermost server. Longer URLs are rejected, and API calls fail with an error. Numeric value. Default is 2048 characters.
The address and port to which to bind and listen. Specifying :8065 will bind to all network interfaces.
Specifying 127.0.0.1:8065 will only bind to the network interface having that IP address.
The address and port to which to bind and listen. Specifying :8065 will bind to all network interfaces. Specifying 127.0.0.1:8065 will only bind to the network interface having that IP address. If you choose a port of a lower level (called “system ports” or “well-known ports”, in the range of 0-1023), you must have permissions to bind to that port.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > ListenAddress - Environment variable: MM_SERVICESETTINGS_LISTENADDRESS
Note
웹 서버는 address:port (예: ":8065")를 사용하는 반면, Metrics 는 포트 번호만 사용합니다 (예: 8067).
true: Forwards all insecure traffic from port 80 to secure port 443.
false: (Default) When using a proxy such as NGINX in front of Mattermost this setting is unnecessary and should be set to false.
Forward insecure traffic from port 80 to port 443. - true: Forwards all insecure traffic from port 80 to secure port 443. - false: (Default) When using a proxy such as NGINX in front of Mattermost this setting is unnecessary and should be set to false.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > Forward80To443 > false - Environment variable: MM_SERVICESETTINGS_FORWARD80TO443
Not specified: Mattermost will connect over an unsecure connection.
TLS: Encrypts the communication between Mattermost clients and your server.
Connection security between Mattermost clients and the server. - Not specified: Mattermost will connect over an unsecure connection. - TLS: Encrypts the communication between Mattermost clients and your server.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > ConnectionSecurity - Environment variable: MM_SERVICESETTINGS_CONNECTIONSECURITY
Enable the automatic retrieval of certificates from Let’s Encrypt. - true: The certificate will be retrieved when a client attempts to connect from a new domain. This will work with multiple domains. - false: (Default) Manual certificate specification based on the TLS Certificate File and TLS Key File specified above.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > UseLetsEncrypt > false - Environment variable: MM_SERVICESETTINGS_USELETSENCRYPT
Maximum time allowed from when the connection is accepted to when the request body is fully read. Numerical input in seconds. Default is 300 seconds.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > ReadTimeout > 300 - Environment variable: MM_SERVICESETTINGS_READTIMEOUT
If using HTTP (insecure), this is the maximum time, in seconds, allowed from the end of reading the request headers until the response is written.
If using HTTPS, it's the total time, in seconds, from when the connection is accepted until the response is written.
Default is 300 seconds.
- If using HTTP (insecure), this is the maximum time allowed from the end of reading the request headers until the response is written. - If using HTTPS, it's the total time from when the connection is accepted until the response is written. Numerical input in seconds. Default is 300 seconds.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > WriteTimeout > 300 - Environment variable: MM_SERVICESETTINGS_WRITETIMEOUT
Set an explicit idle timeout in the HTTP server. This is the maximum time allowed before an idle connection is disconnected. Numerical input in seconds. Default is 300 seconds.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > IdleTimeout > 300 - Environment variable: MM_SERVICESETTINGS_IDLETIMEOUT
gzip: (Default) The Mattermost server will serve static files compressed with gzip to improve performance.
Uncompressed: The Mattermost server will serve static files uncompressed.
Disabled: The Mattermost server will not serve static files.
We recommend gzip to improve performance unless your environment has specific restrictions, such as a web proxy that distributes gzip files poorly. - gzip: (Default) The Mattermost server will serve static files compressed with gzip to improve performance. gzip compression applies to the HTML, CSS, Javascript, and other static content files that make up the Mattermost web client. - Uncompressed: The Mattermost server will serve static files uncompressed. - Disabled: The Mattermost server will not serve static files.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > WebserverMode > "gzip" - Environment variable: MM_SERVICESETTINGS_WEBSERVERMODE
true: Outgoing HTTPS requests, including S3 clients, can accept unverified, self-signed certificates.
false: (Default) Only secure HTTPS requests are allowed.
Configure Mattermost to allow insecure outgoing connections. - true: Outgoing HTTPS requests, including S3 clients, can accept unverified, self-signed certificates. For example, outgoing webhooks to a server with a self-signed TLS certificate, using any domain, will be allowed, and will skip TLS verification. - false: (Default) Only secure HTTPS requests are allowed.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > EnableInsecureOutgoingConnections > false - Environment variable: MM_SERVICESETTINGS_ENABLEINSECUREOUTGOINGCONNECTIONS
Warning
이 기능을 활성화하면 해당 연결이 중간자 공격(man-in-the-middle attacks)에 취약해집니다.
A comma-separated list of paths within the Mattermost domain that are managed by a third party service instead of Mattermost itself. Links to these paths will be opened in a new tab/window by Mattermost apps. For example, if Mattermost is running on https://mymattermost.com, setting this to conference will cause links such as https://mymattermost.com/conference to open in a new window.
- System Config path: Environment > Web Server - config.json setting: ServiceSettings > ManagedResourcePaths - Environment variable: MM_SERVICESETTINGS_MANAGEDRESOURCEPATHS
Note
Mattermost 데스크톱 앱을 사용하는 경우 브라우저 대신 데스크톱 앱 내에서 링크를 열기 위한 추가 구성이 필요합니다. 자세한 내용은 desktop managed resources 문서를 참조하세요.
You must change the database line in the config.json file, and then reload configuration to fail over without taking the server down. Select the Reload configuration from disk button in the System Console after changing your database configuration. Then, go to Environment > Database and select Recycle Database Connections to complete the reload.
- System Config path: Environment > Web Server - config.json setting: N/A - Environment variable: N/A
The path and filename of the license file on disk. On startup, if Mattermost can't find a valid license in the database from a previous upload, it looks in this path for the license file. String input. Can be an absolute path or a path relative to the mattermost directory.
Specified headers that will be checked, one by one, for IP addresses (order is important). All other headers are ignored. String array input consisting of header names, such as ["X-Forwarded-For", "X-Real-Ip"].
- true: Adds the Strict Transport Security (HSTS) header to all responses, forcing the browser to request all resources via HTTPS. - false: (Default) No restrictions on TLS transport. Strict Transport Security (HSTS) header isn't added to responses.
The time, in seconds, that the browser remembers a site is only to be accessed using HTTPS. After this period, a site can't be accessed using HTTP unless TLSStrictTransport is set to true. Numerical input. Default is 63072000 (2 years).
Set TLS ciphers overwrites to meet requirements from legacy clients which don't support modern ciphers, or to limit the types of accepted ciphers. If none specified, the Mattermost server assumes a set of currently considered secure ciphers, and allows overwrites in the edge case. String array input.
Set a threshold on the number of goroutines when the Mattermost system is considered to be in a healthy state. When goroutines exceed this limit, a warning is returned in the server logs. Numeric input. Default is -1 which turns off checking for the threshold.
Define the frequency, in milliseconds, of cluster request time logging for performance monitoring. Numerical input. Default is 2000 milliseconds (2 seconds).
The maximum payload size in bytes for all APIs except APIs that receive a file as an input. For example, the upload attachment API or the API to upload a custom emoji. Numerical value. Default is 300000 (300 kB).
셀프 호스팅 배포에서는 System Console > Environment > Database로 이동하거나 다음 테이블에서 설명한 대로 config.json 파일을 편집하여 Mattermost가 배포된 데이터베이스 환경을 구성할 수 있습니다. 이 섹션의 구성 설정 변경 사항은 적용되기 전에 서버를 다시 시작해야 합니다.
PostgreSQL 서버에 대한 연결을 암호화하는 매개변수는 sslmode입니다. PostgreSQL 서버와 상호 작용하는 데 사용되는 라이브러리는 pq입니다. 현재 표준 PostgreSQL 클라이언트 psql "sslmode=value"에 전달할 수 있는 모든 값을 사용하는 것은 불가능합니다. 자세한 내용은 SSL 모드 설명 문서를 참조하세요.
데이터베이스 관리자는 아래에 설명된 지원되는 값에 따라 기능을 구성해야 합니다.
Short description of the sslmode parameter
Value
Example of a data source name
Don't use TLS / SSL encryption against the PostgreSQL server. Default value in file config.json
The amount of time to wait, in seconds, for a response from the database after opening a connection and sending the query. Numerical input in seconds. Default is 30 seconds.
The number of seconds to wait for a response from the database after opening a connection and sending certain analytics queries. This setting only applies to long queries which are run in the background to populate some information in the Team and Site Statistics pages. Numerical input in seconds. Default is 300 seconds.
Maximum lifetime for a connection to the database, in milliseconds. Use this setting to configure the maximum amount of time a connection to the database may be reused Numerical input in milliseconds. Default is 3600000 milliseconds (1 hour).
Executed SQL statements can be written to the log for development. - true: Executing SQL statements are written to the log. - false: (Default) SQL statements aren't written to the log.
Select the Recycle Database Connections button to manually recycle the connection pool by closing the current set of open connections to the database within 20 seconds, and then creating a new set of connections. To fail over without stopping the server, change the database line in the config.json file, select Reload Configuration from Disk via Environment > Web Server, then select Recycle Database Connections.
true: Disables the use of the database to perform searches. If another search engine isn't configured, setting this value to true will result in empty search results.
When enterprise-scale search, database search can be disabled from performing searches. - true: Disables the use of the database to perform searches. If another search engine isn't configured, setting this value to true will result in empty search results. - false: (Default) Database search isn't disabled.
Elasticsearch가 실패하거나 비활성화된 경우, Mattermost는 Bleve 검색이 활성화된 경우 이를 사용하려고 시도합니다. Bleve 검색은 Mattermost v11.0에서 더 이상 지원되지 않습니다. 엔터프라이즈 검색 기능을 위해 Elasticsearch 또는 OpenSearch를 사용하는 것을 권장합니다.
이러한 방법이 실패하거나 비활성화된 경우, Mattermost는 데이터베이스를 직접 검색하려고 시도합니다 (이 방법이 활성화된 경우).
위의 모든 방법이 실패하거나 비활성화된 경우, 검색 결과가 비어 있게 됩니다.
Note
대규모 배포에서 이 구성 설정을 비활성화하면 다음 영역에서 서버 성능이 향상될 수 있습니다:
데이터베이스 부하 감소: 데이터베이스 검색이 활성화되면 사용자가 실행하는 모든 검색 쿼리가 데이터베이스와 상호 작용해야 하므로 데이터베이스 서버에 추가 부하가 발생합니다. 데이터베이스 검색을 비활성화하면 이러한 쿼리를 피할 수 있어 데이터베이스 부하가 줄어듭니다.
응답 시간 개선: 특히 대용량 데이터셋의 경우 데이터베이스 검색은 시간이 많이 걸릴 수 있습니다. 데이터베이스 검색을 비활성화하면 시스템이 데이터베이스에서 검색 결과를 가져와 처리하는 데 시간을 소비하지 않으므로 더 빠른 응답 시간을 얻을 수 있습니다.
인덱싱 서비스로 검색 오프로드: 데이터베이스 검색을 비활성화하면 검색이 Elasticsearch와 같은 검색 작업에 최적화된 전문 인덱싱 서비스로 오프로드되는 경우가 많습니다. 이러한 서비스는 기존 데이터베이스 검색에 비해 더 빠르고 효율적인 검색 기능을 제공할 수 있습니다.
리소스 소비 감소: 데이터베이스에 대해 직접 검색 쿼리를 실행하면 리소스(CPU 및 메모리 사용)가 많이 소모될 수 있습니다. 데이터베이스 검색을 비활성화하면 이러한 리소스를 다른 중요한 기능에 할당하여 전반적인 시스템 성능을 개선할 수 있습니다.
확장성 향상: 사용자 수와 데이터 볼륨이 증가함에 따라 데이터베이스 검색의 효율성이 떨어질 수 있습니다. 전문 검색 서비스는 더 효과적으로 확장할 수 있도록 설계되어 전반적인 시스템 확장성과 성능을 향상시킵니다.
단, Mattermost에서 데이터베이스 검색을 수행하는 기능은 특히 다른 검색 엔진이 활성화되지 않은 경우 많은 사용자에게 중요한 기능입니다. 이 기능을 비활성화하면 사용자가 Mattermost 검색 상자를 사용하려고 할 때 오류가 표시됩니다. 성능 향상과 조직 및 사용자의 요구 사항 간의 균형을 맞추는 것이 중요합니다.
AWS 고가용성 RDS 클러스터 배포의 경우, 이 구성 설정을 RDS 클러스터 내의 기본 읽기 전용 노드 엔드포인트로 직접 지정하여 AWS/RDS가 처리하는 장애 조치/부하 분산을 우회하세요 (쓰기 트래픽 제외). Mattermost는 읽기 전용 연결을 균형 잡는 자체 방법이 있으며, 해당 노드가 실패할 경우 데이터 소스/쓰기+읽기 연결에 대한 쿼리도 균형 잡을 수 있습니다. 자세한 내용은 고가용성 데이터베이스 구성 문서를 참조하세요.
Specifies the connection strings for the search replica databases.
A search replica is similar to a read replica, but is used only for handling search queries.
Specifies the connection strings for the search replica databases. A search replica is similar to a read replica, but is used only for handling search queries.
AWS 고가용성 RDS 클러스터 배포의 경우, 이 구성 설정을 RDS 클러스터 내의 기본 읽기 전용 노드 엔드포인트로 직접 지정하여 AWS/RDS가 처리하는 장애 조치/부하 분산을 우회하세요 (쓰기 트래픽 제외). Mattermost는 읽기 전용 연결을 균형 잡는 자체 방법이 있으며, 해당 노드가 실패할 경우 데이터 소스/쓰기+읽기 연결에 대한 쿼리도 균형 잡을 수 있습니다. 자세한 내용은 고가용성 데이터베이스 구성 문서를 참조하세요.
String array input specifies a connection string and user-defined SQL queries on the database to measure replica lag for a single replica instance. These settings monitor absolute lag based on binlog distance/transaction queue length, and the time taken for the replica to catch up. String array input consists of: - DataSource: The database credentials to connect to the database instance. - QueryAbsoluteLag: A plain SQL query that must return a single row. The first column must be the node value of the Prometheus metric, and the second column must be the value of the lag used to measure absolute lag. - QueryTimeLag: A plain SQL query that must return a single row. The first column must be the node value of the Prometheus metric, and the second column must be the value of the lag used to measure the time lag.
QueryAbsoluteLag 및 QueryTimeLag 쿼리는 단일 행을 반환해야 합니다.
이를 올바르게 모니터링하려면 Mattermost에 대한 성능 모니터링 을 설정해야 합니다.
데이터베이스 유형에 따라 복제본 지연 지표를 구성합니다. 각 데이터베이스 유형 구성에 대한 자세한 내용은 다음 탭을 참조하세요.
아래 강조 표시된 구성을 SqlSettings.ReplicaLagSettings 배열에 추가합니다. AWS Aurora 노드의 복제 통계는 클러스터 구성원인 모든 서버 인스턴스에서 볼 수 있으므로 이 작업은 한 번만 수행하면 됩니다. 그룹의 단일 노드를 가리키도록 DataSource를 변경하세요.
{
"SqlSettings": {
"ReplicaLagSettings": [
{
"DataSource": "replica-1",
"QueryAbsoluteLag": "select server_id, highest_lsn_rcvd-durable_lsn as bindiff from aurora_global_db_instance_status() where server_id=<>",
"QueryTimeLag": "select server_id, visibility_lag_in_msec from aurora_global_db_instance_status() where server_id=<>"
}
]
}
}
<h4>MySQL Group Replication</h4>
아래 강조 표시된 구성을 <code>SqlSettings.ReplicaLagSettings</code> 배열에 추가합니다. 모든 노드의 복제 통계는 MySQL 복제 그룹 구성원인 모든 서버 인스턴스에서 공유되므로 이 작업은 한 번만 수행하면 됩니다. 그룹의 단일 노드를 가리키도록 <code>DataSource</code>를 변경하세요.
그룹 복제 통계에 대한 자세한 내용은 <a href="https://dev.mysql.com/doc/refman/8.0/en/group-replication-replication-group-member-stats.html">MySQL 문서</a>를 참조하세요.
예시
{
"SqlSettings": {
"ReplicaLagSettings": [
{
"DataSource": "replica-1",
"QueryAbsoluteLag": "select member_id, count_transactions_remote_in_applier_queue FROM performance_schema.replication_group_member_stats where member_id=<>",
"QueryTimeLag": ""
}
]
}
}
<h4>PostgreSQL replication slots</h4>
1. 아래 강조 표시된 구성을 <code>SqlSettings.ReplicaLagSettings</code> 배열에 추가합니다. 이 쿼리는 클러스터의<strong>기본</strong> 노드에 대해 실행해야 합니다. 이를 위해 <code>DataSource</code>를 구성한 <a href="#data-source">SqlSettings.DataSource</a> 설정과 일치하도록 변경하세요.
pg_stat_replication에 대한 자세한 내용은 <a href="https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-REPLICATION-VIEW">PostgreSQL 문서</a>를 참조하세요.
<strong>예시:</strong>
{
"SqlSettings": {
"ReplicaLagSettings": [
{
"DataSource": "postgres://mmuser:password@localhost:5432/mattermost_test?sslmode=disable&connect_timeout=10.",
"QueryAbsoluteLag": "select usename, pg_wal_lsn_diff(pg_current_wal_lsn(),replay_lsn) as metric from pg_stat_replication;",
"QueryTimeLag": ""
}
]
}
}
2. <code>pg_monitor</code>에 대한 데이터베이스 사용자 권한을 부여합니다. 이 사용자는 위의 <code>DataSource</code> 문자열에 구성된 것과 동일한 사용자여야 합니다.
역할에 대한 자세한 내용은 <a href="https://www.postgresql.org/docs/10/default-roles.html">PostgreSQL 문서</a>를 참조하세요.
sudo -u postgres psql
postgres=# GRANT pg_monitor TO mmuser;
QueryTimeLag 차트는 기존 Replica Lag 차트를 활용하여 이미 설정되어 있습니다. QueryAbsoluteLag 지표를 사용하는 경우 Replica Lag 차트를 복사하고 쿼리를 편집하여 아래 절대 지연 지표를 사용하고 제목을 Replica Lag Absolute로 수정하세요.
mattermost_db_replica_lag_abs{instance=~"$server"}
:alt: A screenshot showing how to clone a chart within Grafana
:alt: A screenshot showing the specific edits to make to the cloned grafana chart.
Specifies how frequently unhealthy replicas will be monitored for liveness check. Mattermost will dynamically choose a replica if it's alive.
Specifies how frequently unhealthy replicas will be monitored for liveness check. Mattermost will dynamically choose a replica if it's alive. Numerical input. Default is 5 seconds.
핵심 데이터베이스 검색은 관계형 데이터베이스에서 이루어지며 약 2~3백만 개 이하의 게시물 및 파일 항목이 있는 배포를 위한 것입니다. 그 이상의 규모에서는 3백만 게시물에 도달하기 전에 최적의 검색 성능을 위해 Elasticsearch 또는 AWS OpenSearch를 사용한 엔터프라이즈 검색을 활성화하는 것이 강력히 권장됩니다.
3백만 개 이상의 게시물이 있는 셀프 호스팅 배포에서는 메시지 검색 및 @멘션에서 타임아웃과 같은 심각한 성능 문제를 방지하기 위해 Elasticsearch 또는 AWS OpenSearch가 필요합니다.
System Console > Environment > Elasticsearch로 이동하여 Mattermost 엔터프라이즈 검색을 구성할 수 있습니다. 다음 구성 설정은 Elasticsearch와 AWS OpenSearch 모두에 적용됩니다. 다음 테이블에서 설명한 대로 config.json 파일을 편집할 수도 있습니다. 이 섹션의 구성 설정 변경 사항은 적용되기 전에 서버를 다시 시작해야 합니다.
true: Indexing of new posts occurs automatically.
false: (Default) Elasticsearch indexing is disabled and new messages aren't indexed.
Configure Mattermost to index new posts automatically. - true: Indexing of new messages occurs automatically. - false: (Default) Indexing of new messages is disabled, and new messages aren't indexed.
Optional path to the Custom Certificate Authority certificates for the Elasticsearch or AWS OpenSearch server.
- System Config path: Environment > Elasticsearch - config.json setting: ElasticsearchSettings > CA - Environment variable: MM_ELASTICSEARCHSETTINGS_CA
Note
Mattermost v7.8부터 사용 가능합니다. 인증서 경로는 /opt/mattermost/data/elasticsearch/ 또는 /opt/mattermost/data/opensearch 여야 하며 System Console에서 ./elasticsearch/cert.pem 또는 ./opensearch/cert.pem 으로 구성되어야 합니다.
기본 인증 자격 증명과 함께 또는 대체하여 사용할 수 있습니다. 운영 체제의 기본 인증 기관 인증서를 사용하려면 이 설정을 비워두세요.
The certificate step for TLS connections can be skipped. - true: Skips the certificate verification step for TLS connections. - false: (Default) Mattermost requires certificate verification.
true: Sniffing finds and connects to all data nodes in your cluster automatically.
false: (Default) Cluster sniffing is disabled.
Warning
Do not enable cluster sniffing when using cloud-hosted search providers such as Amazon OpenSearch Service. Cloud providers typically hide search cluster nodes behind a proxy, so sniffed node addresses may be unreachable from your network. The provider handles connection pooling for you, making sniffing unnecessary and potentially disruptive.
Configure Mattermost to automatically find and connect to all data nodes in a cluster. - true: Sniffing finds and connects to all data nodes in your cluster automatically. - false: (Default) Cluster sniffing is disabled. Do not enable cluster sniffing when using cloud-hosted search providers such as Amazon OpenSearch Service.
System Console의 채널 인덱스 재구성 버튼을 선택하여 채널 인덱스를 제거하세요. 이 프로세스를 시작하기 전에 대량 인덱싱 테이블을 통해 진행 중인 다른 인덱싱 작업이 없는지 확인하세요. 인덱싱 중에는 채널 자동 완성을 사용할 수 있지만 인덱싱 작업이 완료될 때까지 검색 결과가 불완전할 수 있습니다.
Specify index names to ignore while purging indexes. Separate multiple index names with commas. Use an asterisk (*) to match a sequence of index name characters.
true: Elasticsearch or AWS OpenSearch is used for all search queries using the latest index. Search results may be incomplete until a bulk index of the existing message database is completed.
false: (Default) Relational database search is used for search queries.
Configure Mattermost to use Elasticsearch or AWS OpenSearch for all search queries using the latest index. - true: Elasticsearch or AWS OpenSearch is used for all search queries using the latest index. Search results may be incomplete until a bulk index of the existing message database is completed. - false: (Default) Database search is used for search queries.
Configure Mattermost to use Elasticsearch or AWS OpenSearch for all autocompletion queries on users and channels using the latest index. - true: Elasticsearch or AWS OpenSearch will be used for all autocompletion queries on users and channels using the latest index. - false: (Default) Database autocomplete is used.
Allow users to search for messages in public channels they have not joined. When enabled for the first time, existing posts are updated in the background with channel type information. This backfill process is throttled to ~10,000 posts per second to avoid impacting search performance. - true: Users can find messages in public channels they haven't joined, scoped to teams they belong to. - false: (Default) Users can only search messages in channels they are a member of.
n개의 데이터 노드가 있는 경우, 각 인덱스의 샤드당 복제본 수는 n-1이어야 합니다. Elasticsearch 또는 AWS OpenSearch 클러스터의 노드 수가 변경되면, 이 구성 설정과 함께 게시물 인덱스 복제본 및 사용자 인덱스 복제본 도 적절히 업데이트해야 합니다.
n개의 데이터 노드가 있는 경우, 각 인덱스의 샤드당 복제본 수는 n-1이어야 합니다. Elasticsearch 또는 AWS OpenSearch 클러스터의 노드 수가 변경되면, 이 구성 설정과 함께 게시물 인덱스 복제본 및 사용자 인덱스 복제본 도 적절히 업데이트해야 합니다.
Elasticsearch or AWS OpenSearch indexes older than the age specified by this setting, in days, will be aggregated during the daily scheduled job. Numerical input. Default is 365 days.
The start time of the daily scheduled aggregator job. Must be a 24-hour time stamp in the form HH:MM based on the local time of the server. Default is 03:00 (3 AM)
이 설정이 사용되면 Mattermost에서 생성한 모든 Elasticsearch 또는 AWS OpenSearch 인덱스에 이 접두사가 붙습니다. 여러 Mattermost 배포가 인덱스 이름이 충돌하지 않도록 Elasticsearch 또는 AWS OpenSearch 클러스터를 공유할 수 있도록 다른 접두사를 설정할 수 있습니다.
Enable global search across multiple Elasticsearch indices with the same index prefix. This is helpful for setups with multiple data centers where Elasticsearch instances share data using cross-cluster replication. It allows for easier and unified searching across distributed indices. Value must be a prefix of IndexPrefix.
The number of new posts needed before those posts are added to the Elasticsearch or AWS OpenSearch index. Once added to the index, the post becomes searchable. On servers with more than 1 post per second, we suggest setting this value to the average number of posts over a 20 second period of time. Numerical input. Default is 1. Every post is indexed synchronously as they are created.
초당 1개 이상의 게시물을 처리하는 설치의 경우, Elasticsearch 또는 AWS OpenSearch 클러스터의 속도 제한 또는 리소스 제한에 도달하지 않으려면 이 값을 늘려야 할 수 있습니다.
이 값을 증가시키면 정확히 어떤 일이 발생하나요?
주요 영향은 게시물의 임계값이 충족된 후 게시물이 Elasticsearch 또는 AWS OpenSearch에 인덱싱되어 Mattermost 내에서 게시물을 검색할 수 있게 된다는 것입니다. 따라서 더 큰 서버에 대한 권장 사항을 기반으로 이 값을 설정하고 게시물을 작성하면 평균적으로 약 10~20초 동안 검색을 통해 찾을 수 없습니다. 현실적으로 이렇게 빠르게 게시물을 활발하게 검색하는 사용자의 수가 제한되어 있으므로 어떤 사용자도 이 영향을 느끼지 않아야 합니다. Elasticsearch 또는 AWS OpenSearch 서버 사양에 따라 이 값을 더 낮거나 높게 설정할 수 있습니다.
사용량이 많은 기간에는 더 많은 트래픽이 발생하여 더 많은 게시물이 생성되고 인덱스 번호에 도달하는 시간이 빨라지므로 이 지연이 더 빨라집니다. 사용량이 적은 기간에는 그 반대를 예상하세요.
서버에 적합한 숫자를 찾는 방법
서버에서 매분 얼마나 많은 게시물이 작성되는지 이해해야 합니다. 아래 쿼리를 실행하여 서버의 분당 평균 게시물 수를 계산하세요.
이 쿼리는 부하가 클 수 있으므로 비피크 시간에 실행하는 것을 권장합니다.
또한 WHERE 절을 조정하여 다른 기간의 분당 게시물 수를 확인할 수 있습니다. 현재 31536000000은 1년의 밀리초 수를 나타냅니다.
SELECT
AVG(postsPerMinute) as averagePostsPerMinute
FROM (
SELECT
count(*) as postsPerMinute,
date_trunc('minute', to_timestamp(createat/1000))
FROM posts
WHERE createAt > ( (extract(epoch from now()) * 1000 ) - 31536000000)
GROUP BY date_trunc('minute', to_timestamp(createat/1000))
) as ppm;
환경에 허용 가능한 인덱스 창을 결정하고, 분당 평균 게시물 수를 그것으로 나눕니다. 10-20초를 권장합니다. 평균적으로 분당 600개의 게시물이 있고 20초마다 인덱싱하려면 (60초 / 20초 = 3`) 600 / 3을 계산하여 200이라는 숫자가 나옵니다. 200개의 게시물 후에 Mattermost는 게시물을 Elasticsearch 또는 AWS OpenSearch에 인덱싱합니다. 따라서 평균적으로 검색 가능성에 20초의 지연이 있습니다.
config.json을 편집하거나 mmctl을 실행하여 LiveIndexingBatchSize 설정을 수정합니다
error: Creates the error trace when initializing the Elasticsearch or AWS OpenSearch client and prints any template creation or search query that returns an error as part of the error message.
all: Creates the three traces (error, trace and info) for the driver and doesn’t print the queries because they will be part of the trace log level of the driver.
not specified: (Default) No error trace is created.
Options for printing Elasticsearch or AWS OpenSearch trace errors. - error: Creates the error trace when initializing the Elasticsearch or AWS OpenSearch client and prints any template creation or search query that returns an error as part of the error message. - all: Creates the three traces (error, trace and info) for the driver and doesn’t print the queries because they will be part of the trace log level of the driver. - not specified: (Default) No error trace is created.
When enabled, Mattermost uses language-specific analyzer plugins to improve search results for Korean, Japanese, and Chinese content. The required analyzer plugins must be installed on the Elasticsearch or AWS OpenSearch server before enabling this setting. Supported plugins: - analysis-nori (Korean) - analysis-kuromoji (Japanese) - analysis-smartcn (Chinese) - true: CJK language-specific analyzers are enabled. - false: (Default) Standard analyzers are used.
Mattermost v11.6부터 사용 가능합니다. 전체 분석 지원을 위해 이 설정을 활성화하기 전에 Elasticsearch 또는 AWS OpenSearch 서버에 필요한 분석기 플러그인이 설치되어 있어야 합니다. 플러그인이 감지되지 않으면 경고가 기록됩니다. 플러그인 설치 지침은 Elasticsearch setup 및 AWS OpenSearch setup 문서를 참조하세요.
이전에 Elasticsearch 또는 AWS OpenSearch를 실행하던 서버에서 이 설정을 활성화하는 경우, 기존 콘텐츠가 새 분석기로 올바르게 검색 가능하도록 검색 인덱스를 제거하고 재구성해야 합니다. 인덱스 제거 및 재구성 지침은 Elasticsearch setup 문서를 참조하세요.
셀프 호스팅 배포에서는 System Console > Environment > File Storage로 이동하거나 다음 테이블에서 설명한 대로 config.json 파일을 편집하여 파일 스토리지 설정을 구성할 수 있습니다.
Note
현재 Mattermost는 로컬 파일 시스템 및 Amazon S3 또는 S3 호환 컨테이너에 파일을 저장하는 것을 지원합니다. Digital Ocean Spaces 로 Mattermost를 테스트했지만 시장의 모든 S3 호환 컨테이너는 테스트하지 않았습니다. 다른 S3 호환 컨테이너를 사용하려는 경우 자체적으로 테스트를 완료하는 것을 권장합니다. NFS를 사용하여 로컬 스토리지 또는 네트워크 드라이브를 사용할 수도 있습니다.
local: (Default) Files and images are stored in the specified local file directory.
amazons3: Files and images are stored on Amazon S3 based on the access key, bucket, and region fields provided.
The type of file storage system used. Can be either Local File System or Amazon S3. - local: (Default) Files and images are stored in the specified local file directory. - amazons3: Files and images are stored on Amazon S3 based on the access key, bucket, and region fields provided. The driver is compatible with other S3-compatible services, such as Digital Ocean Spaces.
The local directory to which files are written when the File storage system is set to local. Can be any directory writable by the user Mattermost is running as, and is relative to the directory where Mattermost is installed. Defaults to ./data/.
The maximum file size for message attachments and plugin uploads. This value must be specified in mebibytes in the System Console, and in bytes in the config.json file. The default is 104857600 bytes (100 mebibytes).
Enable users to search the contents of documents attached to messages. - true: (Default) Documents are searchable by their content. - false: Documents aren’t searchable by their content. When document content search is disabled, users can search for files by file name only.
파일에서 콘텐츠를 추출할 때 내용으로 문서 검색 활성화가 필요합니다. Mattermost 파일 검색 과 Mattermost Agents 모두 필요한 의존성이 활성화된 경우 파일과 해당 콘텐츠에 접근할 수 있습니다. Mattermost Server v5.35로 업그레이드하기 전에 공유된 파일의 문서 콘텐츠 검색 결과는 mmctl 을 사용하여 추출 명령을 실행할 때까지 불완전할 수 있습니다. 이 명령이 실행되지 않으면 사용자는 파일 이름으로만 이전 파일을 검색할 수 있습니다.
선택적으로 다음 의존성 을 설치하여 Mattermost의 콘텐츠 검색 지원을 DOC, RTF, XML, HTML과 같이 PDF, DOCX, ODT 이외의 파일 형식으로 확장할 수 있습니다:
tidy: HTML 문서의 콘텐츠 검색에 사용됩니다.
wv: DOC 문서의 콘텐츠 검색에 사용됩니다.
poppler-utils: PDF 문서 콘텐츠 추출 시 서버 성능을 크게 향상시키는 데 사용됩니다.
Enables users to search the contents of compressed ZIP files attached to messages. - true: Contents of documents within ZIP files are returned in search results. This may have an impact on server performance for large files. the specified local file directory. - false: (Default) The contents of documents within ZIP files aren’t returned in search results.
The AWS region you selected when creating your Amazon S3 bucket in AWS. A string with the AWS region containing the bucket. If no region is set, Mattermost attempts to get the appropriate region from AWS, and sets it to us-east-1 if none found.
By default, Mattermost uses Signature v4 to sign API calls to AWS, but under some circumstances, v2 is required. - true: Use Signature v2 signing process. - false: (Default) Use Signature v4 signing process.
Enable or disable Amazon S3 debugging to capture additional debugging information in system logs. - true: Log additional debugging information is logged to the system logs. - false: (Default) No Amazon S3 debugging information is included in the system logs. Typically set to false in production.
일부 Amazon S3 호환 스토리지 솔루션은 업로드 요청에 스토리지 클래스 파라미터가 포함되어야 하며, 그렇지 않으면 요청이 거부됩니다. S3 호환 솔루션에서 요구하는 스토리지 클래스를 설정합니다.
The storage class to use for uploads to S3-compatible storage solutions. String input. Default is an empty string "". Select Test Connection to test the configured connection.
The font used in auto-generated profile pictures with colored backgrounds and username initials. A string with the font file name. Default is nunito-bold.ttf.
자체 호스팅 배포에서는 이미지 프록시를 사용하여 Mattermost 앱이 원격 자체 호스팅 서버에 직접 연결되지 않도록 할 수 있습니다. System Console > Environment > Image Proxy로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 이미지 프록시를 설정합니다.
true: Enables an image proxy for loading external images.
An image proxy anonymizes Mattermost app connections and prevents them from accessing insecure content. - true: Enables an image proxy for loading external images. - false: (Default) Disables the image proxy.
The type of image proxy used by Mattermost. - local: (Default) The Mattermost server itself acts as the image proxy. - atmos/camo: An external atmos/camo image proxy is used.
Enable or disable SMTP authentication. - true: SMTP username and password are used for authenticating to the SMTP server. - false: (Default) Mattermost doesn’t attempt to authenticate to the SMTP server.
Specify connection security for emails sent using SMTP. - Not specified: (Default) Send email over an unsecure connection. - TLS: Communication between Mattermost and your email server is encrypted. - STARTTLS: Attempts to upgrade an existing insecure connection to a secure connection using TLS.
Configure Mattermost to skip the verification of the email server certificate. - true: Mattermost won't verify the email server certificate. - false: (Default) Mattermost verifies the email server certificate.
Enable or disable security alerts. - true: (Default) System admins are notified by email if a relevant security fix alert is announced. Requires email to be enabled. - false: Security alerts are disabled.
자체 호스팅 배포에서는 System Console > Environment > Push Notification Server 로 이동하거나 아래 표에 설명된 대로 config.json 파일을 편집하여 Mattermost 모바일 푸시 알림을 구성할 수 있습니다. 이 섹션의 구성 설정을 변경하려면 적용되기 전에 서버를 재시작해야 합니다.
Do not send push notifications: 모바일 푸시 알림이 비활성화됩니다.
Use HPNS connection with uptime SLA to send notifications to iOS and Android apps: (기본값) Mattermost 호스팅 푸시 알림 서비스를 사용합니다.
Use TPNS connection to send notifications to iOS and Android apps: Mattermost 테스트 푸시 알림 서비스를 사용합니다.
Manually enter Push Notification Service location: 커스텀 모바일 앱을 빌드할 때는 자체 모바일 푸시 프록시 서비스를 호스팅하고 해당 URL을 Push Notification Server 필드에 지정해야 합니다.
Mattermost 푸시 알림을 활성화하거나 비활성화합니다. - Do not send push notifications: 모바일 푸시 알림이 비활성화됩니다. - Use HPNS connection with uptime SLA to send notifications to iOS and Android apps: (기본값) Mattermost의 호스팅 푸시 알림 서비스를 사용합니다. - Use TPNS connection to send notifications to iOS and Android apps: Mattermost의 테스트 푸시 알림 서비스를 사용합니다. - Manually enter Push Notification Service location: 커스텀 모바일 앱을 빌드할 때는 자체 모바일 푸시 프록시 서비스를 호스팅하고 해당 URL을 Push Notification Server 필드에 지정해야 합니다.
- System Config path: Environment > Push Notification Server - config.json setting: EmailSettings > SendPushNotifications - Environment variable: MM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS
관리자는 Mattermost 구성 설정을 통해 Apple 및 Google에 전송되는 데이터를 제한하여 iOS 및 Android 알림 인프라 침해에 대해 Mattermost 고객을 보호하기 위해 모바일 알림을 완전히 비공개로 설정할 수 있습니다.
iOS 및 Android 애플리케이션에 알림을 보내는 표준 방식은 Apple 또는 Google에 일반 텍스트 메시지를 전송하여 사용자의 전화기로 전달하고 iOS 또는 Android에 표시하는 것입니다. Apple이나 Google은 데이터를 수집하거나 저장하지 않는다고 보장하지만, 해당 조직이 침해되거나 강요를 받는 경우 플랫폼의 모든 표준 모바일 알림이 손상될 수 있습니다.
이러한 위험을 피하기 위해 Mattermost는 모바일 알림 텍스트를 Apple이나 Google에 어떤 정보도 전달하지 않는 메시지 ID 번호로 대체하도록 구성할 수 있습니다. 사용자 전화기의 Mattermost 모바일 애플리케이션이 메시지 ID를 수신하면, 해당 ID를 사용하여 Mattermost 서버와 비공개로 통신하고 암호화된 채널을 통해 모바일 알림 메시지를 가져옵니다. 즉, 메시지 텍스트는 Apple이나 Google의 메시지 릴레이 시스템에 표시되지 않습니다. 메시지 내용은 Mattermost에도 도달하지 않습니다.
Mattermost의 ID 전용 푸시 알림을 통한 비공개 모바일 기능으로 알림 메시지를 검색하는 추가 단계로 인해 최종 사용자는 Apple 및 Google 플랫폼을 통해 일반 텍스트를 전송하는 경우와 비교하여 모바일 알림이 완전히 표시되기 전에 약간의 지연을 경험할 수 있습니다.
ID 전용 푸시 알림 구성 설정에 대한 자세한 내용은 구성 설정 문서를 참조하세요. 데이터 프라이버시를 위한 ID 전용 푸시 알림 사용에 대한 자세한 내용은 모바일 앱 FAQ 문서 를 참조하세요.
자체 호스팅 배포에서는 System Console > Environment > High Availability로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 Mattermost를 고가용성 클러스터 기반 배포로 구성할 수 있습니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작해야 적용됩니다.
Mattermost 고가용성 클러스터 기반 배포에서는 System Console이 읽기 전용으로 설정되며, 설정은 config.json 파일을 직접 편집해야만 변경할 수 있습니다. 단, 고가용성 클러스터 기반 환경을 테스트하려면 config.json 파일에서 ClusterSettings.ReadOnlyConfig를 false로 설정하여 비활성화할 수 있습니다. 이렇게 하면 System Console을 통해 적용된 변경 사항이 구성 파일에 저장됩니다.
true: The Mattermost server will attempt inter-node communication with the other servers in the cluster that have the same cluster name.
false: (Default) Mattermost high availability mode is disabled.
You can enable high availability mode. - true: The Mattermost server will attempt inter-node communication with the other servers in the cluster that have the same cluster name. This sets the System Console to read-only mode to keep the servers' config.json files in sync. - false: (Default) Mattermost high availability mode is disabled.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > Enable > false - Environment variable: MM_CLUSTERSETTINGS_ENABLE
The cluster to join by name in a high availability cluster-based deployment. Only nodes with the same cluster name will join together. This is to support blue-green deployments or staging pointing to the same database.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > ClusterName - Environment variable: MM_CLUSTERSETTINGS_CLUSTERNAME
You can override the hostname of this server. - This property can be set to a specific IP address if needed; however, we don’t recommend overriding the hostname unless it's necessary. - If left blank, Mattermost attempts to get the hostname from the operating system or uses the IP address.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > OverrideHostname - Environment variable: MM_CLUSTERSETTINGS_OVERRIDEHOSTNAME
You can configure your high availability cluster-based deployment to communicate using the hostname instead of the IP address. - true: (Default) The cluster attempts to communicate using the IP address specified. - false: The cluster attempts to communicate using the hostname.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > UseIPAddress > true - Environment variable: MM_CLUSTERSETTINGS_USEIPADDRESS
true: (Default) The server attempts to communicate via the gossip protocol over the gossip port specified.
false: The server attempts to communicate over the streaming port.
Gossip encryption uses AES-256 by default, and this value isn't configurable by design. - true: (Default) The server attempts to communicate via the gossip protocol over the gossip port specified. - false: The server attempts to communicate over the streaming port.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > EnableGossipEncryption > true - Environment variable: MM_CLUSTERSETTINGS_ENABLEGOSSIPENCRYPTION
Note
Gossip 프로토콜은 코넬 대학교 연구진이 개발한 SWIM 프로토콜에 설명된 원칙을 기반으로 합니다. Gossip 프로토콜은 분산 시스템에서 노드가 무작위로 정보를 교환하여 네트워크 전체의 데이터 일관성을 보장하는 통신 메커니즘입니다. 탈중앙화, 확장성, 내결함성을 갖추고 있어 노드 수가 많은 시스템에 이상적입니다. 정보는 소셜 가십과 유사한 방식으로 확산되며, 네트워크가 일관된 상태로 수렴될 때까지 노드가 주기적으로 랜덤 피어에게 업데이트를 "가십"합니다. 분산 데이터베이스, 블록체인 네트워크, P2P 시스템에서 널리 사용되며, 구현이 간단하고 노드 장애에 강하지만 대규모 네트워크에서는 중복성과 전파 지연이 발생할 수 있습니다.
또는 Systems 테이블에서 ClusterEncryptionKey 행 값을 수동으로 설정할 수 있습니다. 키는 base64로 변환된 바이트 배열입니다. AES-128, AES-192, AES-256을 선택하려면 이 값을 각각 16, 24, 32바이트로 설정합니다.
Mattermost v10.11부터 모든 새 배포에서 기본적으로 가십 암호화가 활성화됩니다. 기존 배포에서는 수동으로 암호화를 활성화하지 않으면 Gossip 프로토콜을 사용하는 모든 통신이 암호화되지 않은 상태로 유지됩니다. v10.11 이전에는 Cloud 배포에서 기본적으로 가십 암호화가 활성화되고 자체 호스팅 배포에서는 기본적으로 비활성화됩니다.
true: (Default) All communication through the cluster uses gossip compression.
false: All communication using the gossip protocol remains uncompressed.
We recommend that you disable this configuration setting for better performance. - true: (Default for self-hosted deployments) All communication through the cluster uses gossip compression. This setting is enabled by default to maintain compatibility with older servers. - false: (Default for Cloud deployments) All communication using the gossip protocol remains uncompressed.
- System Config path: Environment > High Availability - config.json setting: ClusterSettings > EnableGossipCompression > true - Environment variable: MM_CLUSTERSETTINGS_ENABLEGOSSIPCOMPRESSION
- true: (Default) Changes made to settings in the System Console are ignored. - false: Changes made to settings in the System Console are written to config.json.
An IP address used to bind cluster traffic to a specific network device. This setting is used primarily for servers with multiple network devices or different Bind Address and Advertise Address like in deployments that involve NAT (Network Address Translation). String input.
The IP address used to access the server from other nodes. This settings is used primary when cluster nodes are not in the same network and involve NAT (Network Address Translation). String input.
속도 제한 이 활성화된 경우 다양한 속도 제한 설정에 따라 시스템에 연결된 최대 사용자 세션 수입니다. 숫자 입력. 기본값은 10000 입니다. 일반적으로 시스템의 사용자 수로 설정합니다. 예상 사용자 수로 이 값을 설정하는 것을 권장합니다. 값이 높으면 리소스가 충분히 활용되지 않을 수 있으며, 값이 낮으면 사용자 세션/토큰이 너무 자주 만료될 수 있습니다.
속도 제한 이 활성화된 경우 IP 주소별로 API 접근을 속도 제한하도록 Mattermost를 구성합니다. - true: (기본값) IP 주소별로 API 접근을 속도 제한합니다. 프록시 사용 시 권장됩니다. - false: IP 주소별로 속도 제한이 다르게 적용되지 않습니다.
속도 제한 이 활성화된 경우 인증 토큰별로 API 접근을 속도 제한할지 여부를 설정합니다. - true: 사용자 인증 토큰별로 API 접근을 속도 제한합니다. 프록시 사용 시 권장됩니다. - false: (기본값) 사용자 인증 토큰별로 속도 제한이 다르게 적용되지 않습니다.
지정된 HTTP 헤더 필드에 따라 API 접근 속도 제한을 다르게 적용하도록 Mattermost를 구성합니다. 프록시 사용 시 권장됩니다. - NGINX 구성 시 X-Real-IP 로 설정합니다. - AmazonELB 구성 시 X-Forwarded-For 로 설정합니다.
기본적으로 모든 Mattermost 에디션은 콘솔과 머신이 읽을 수 있는 JSON 형식의 mattermost.log 파일 모두에 로그를 기록합니다. Mattermost Enterprise 및 Professional 고객은 syslog 및 TCP 소켓 대상에 직접 로그를 기록할 수도 있습니다.
Configure Mattermost to output general logs to the console. - true: (Default) Output log messages are written to the console based on the console log level configuration. The server writes messages to the standard output stream (stdout). - false: Output log messages aren’t written to the console.
The level of detail in general log events written when Mattermost outputs log messages to the console. - DEBUG: (Default) Outputs verbose detail for developers debugging issues. - ERROR: Outputs only error messages. - INFO: Outputs error messages and information around startup and initialization.
Configure Mattermost to output general console logs as JSON. - true: (Default) Logged events are written in a machine-readable JSON format. - false: Logged events are written in plain text.
Enables system admins to display plain text general log level details in color. - true: When logged events are output to the console as plain text, colorize log levels details. - false: (Default) Plain text log details aren't colorized in the console.
true: (Default) General events are written based on the file log level configuration to a mattermost.log file located in the directory configured via file location.
Configure Mattermost to output general console logs to a file. - true: (Default) Logged events are written based on the file log level configuration to a mattermost.log file located in the directory configured via file location. - false: Logged events aren’t written to a file.
설정한 경로가 존재해야 하며, Mattermost는 해당 디렉터리에 쓰기 권한을 가져야 합니다.
Mattermost v11.4부터 MM_LOG_PATH 환경 변수를 사용하여 로그 파일 위치를 지정된 루트 디렉터리로 제한할 수 있습니다. 이 보안 기능은 LogSettings.FileLocation 또는 LogSettings.AdvancedLoggingJSON을 통해 구성된 모든 로그 파일이 승인된 로깅 디렉터리 내에 유지되도록 합니다.
MM_LOG_PATH가 설정되지 않은 경우 기본 logs 디렉터리가 사용됩니다. 루트 디렉터리 외부의 경로는 오류 로그를 생성하며 지원 패킷 다운로드에서 제외됩니다. 자세한 내용은 로그 경로 제한 문서를 참조하세요.
DEBUG: Outputs verbose detail for developers debugging issues.
ERROR: Outputs only error messages.
INFO: (Default) Outputs error messages and information around startup and initialization.
The level of detail in general log events when when Mattermost outputs log messages to a file. - DEBUG: Outputs verbose detail for developers debugging issues. - ERROR: Outputs only error messages. - INFO: (Default) Outputs error messages and information around startup and initialization.
Configure Mattermost to output general file logs as JSON. - true: (Default) Logged events are written in a machine-readable JSON format. - false: Logged events are written in plain text.
Configure Mattermost to capture the contents of general incoming webhooks to console and/or file logs for debugging. - true: (Default) The contents of incoming webhooks are printed to log files for debugging. - false: The contents of incoming webhooks aren’t printed to log files.
Configure Mattermost to allow any combination of console, local file, syslog, and TCP socket targets, and send general log records to multiple targets. String input can contain a filespec to another configuration file, a database DSN, or JSON.
Whether or not general diagnostics and error reports are sent to Mattermost, Inc. - true: (Default) Send diagnostics and error reports. - false: Diagnostics and error reports aren't sent.
Whether or not verbose general diagnostics information is sent. - true: Send verbose diagnostics information. - false: (Default) Verbose diagnostics information isn't sent.
Whether or not general error reports are sent to Sentry. - true: (Default) Send error reports to Sentry. Default matches the EnableDiagnostics setting. - false: Error reports are not sent to Sentry.
Mattermost v11부터 알림 로그 설정이 표준 콘솔 로그 및 mattermost.log 파일에 통합되었습니다. 이제 메인 로그 수준 설정이 서버 로그와 알림 로그를 모두 제어하므로, 고급 로깅 설정 없이는 알림 로깅을 비활성화할 수 없습니다.
AdvancedLoggingJSON 구성에서 NotificationError, NotificationWarn, NotificationInfo, NotificationDebug, NotificationTrace와 같은 개별 알림 로그 수준을 사용하여 알림 로그를 별도 파일로 분리하고 문제 해결 시 노이즈를 줄일 수 있습니다. 자세한 내용은 고급 로깅을 참조하세요.
다음 구성 설정은 Mattermost 서버 v11.0 이전 버전에만 적용됩니다.
다음 표에서 설명한 대로 config.json 파일을 편집하여 Mattermost 알림에 특화된 로깅을 구성할 수 있습니다. 이 설정은 메인 LogSettings와 독립적으로 작동하며 알림 하위 시스템에 특화된 로깅 동작을 맞춤 설정할 수 있습니다. 이 설정 변경 사항은 서버를 재시작해야 적용됩니다.
true: (Default) Notification logs are written to the console based on the console log level configuration.
false: Output log messages aren’t written to the console.
Configure Mattermost to output notification logs to the console. - true: (Default) Output log messages are written to the console based on the console log level configuration. The server writes messages to the standard output stream (stdout). - false: Output log messages aren't written to the console.
The level of detail in notification log events written when Mattermost outputs log messages to the console. - DEBUG: (Default) Outputs verbose detail for developers debugging issues. - ERROR: Outputs only error messages. - INFO: Outputs error messages and information around startup and initialization.
Configure Mattermost to output notification console logs as JSON. - true: (Default) Logged events are written in a machine-readable JSON format. - false: Logged events are written in plain text.
Enables system admins to display plain text notification log level details in color. - true: When logged events are output to the console as plain text, colorize log levels details. - false: (Default) Plain text log details aren't colorized in the console.
true: (Default) Notification events are written based on the file log level configuration to a notifications.log file located in the directory configured via file location.
Configure Mattermost to output notification console logs to a file. - true: (Default) Logged events are written based on the file log level configuration to a notifications.log file located in the directory configured via file location. - false: Logged events aren't written to a file.
The level of detail in notification log events when Mattermost outputs log messages to a file. - DEBUG: Outputs verbose detail for developers debugging issues. - ERROR: Outputs only error messages. - INFO: (Default) Outputs error messages and information around startup and initialization.
Configure Mattermost to output notification file logs as JSON. - true: (Default) Logged events are written in a machine-readable JSON format. - false: Logged events are written in plain text.
Configure Mattermost to allow any combination of console, local file, syslog, and TCP socket targets, and send notification log records to multiple targets. String input can contain a filespec to another configuration file, a database DSN, or JSON.
System Console > Compliance > Audit Logging으로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 감사 로깅을 구성합니다. 이 설정은 메인 LogSettings와 독립적으로 작동하며 감사 하위 시스템에 특화된 로깅 동작을 맞춤 설정할 수 있습니다. 이 설정 변경 사항은 서버를 재시작해야 적용됩니다.
true: Logged events are written to the file specified by the audit file name configuration setting.
Whether to write audit log files to disk. - true: Logged events are written to the file specified by the audit file name configuration setting. - false: (Default) Audit log files aren't written.
The name of the audit log files. The path that you set to the audit file must exist and Mattermost must have write permissions in it. Example:/var/log/mattermost_audit.log
자체 호스팅 배포에서 사용자 세션은 사용자가 로그인을 시도할 때 지워지며, 세션 데이터베이스 테이블에서 24시간마다 세션이 지워집니다. System Console > Environment > Session Lengths로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 세션 길이를 구성합니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작해야 적용됩니다.
true: (Default) Sessions are automatically extended when users are active in their Mattermost client.
false: Sessions won't extend with activity in Mattermost.
Improves the user experience by extending sessions and keeping users logged in if they are active in their Mattermost apps. - true: (Default) Sessions are automatically extended when users are active in their Mattermost client. User sessions only expire when users aren’t active in their Mattermost client for the entire duration of the session lengths defined. - false: Sessions won't extend with activity in Mattermost. User sessions immediately expire at the end of the session length or based on the session idle timeout configured.
true: (Default for new deployments) Session revocation is enabled. All sessions of a user expire if their password is changed (by themselves or a system admin). If the password change is initiated by the user, their current session isn't terminated.
false: (Default for existing deployments) Session revocation is disabled. When users change their password, only the user's current session is revoked. When a system admin changes the user's password, none of the user's sessions are revoked.
Enable or disable session revocation when a user's password changes. - true: (Default for new deployments) Session revocation is enabled. All sessions of a user expire if their password is changed (by themselves or by a system admin). If the password change is initiated by the user, their current session isn't terminated. - false: (Default for existing deployments) Session revocation is disabled. When users change their password, only the user's current session is revoked. When a system admin changes the user's password, none of the user's sessions are revoked.
Set the number of hours counted from the last time a user entered their credentials into the web app or the desktop app to the expiry of the user’s session on email and AD/LDAP authentication.
Default is 720 hours.
Set the number of hours counted from the last time a user entered their credentials into the web app or the desktop app to the expiry of the user’s session on email and AD/LDAP authentication. Numerical input in hours. Default is 720 hours.
Set the number of hours counted from the last time a user entered their credential into the mobile app to the expiry of the user’s session. Numerical input in hours. Default is 720 hours.
Set the number of hours from the last time a user entered their SSO credentials to the expiry of the user’s session. This setting defines the session length for SSO authentication, such as SAML, GitLab, and OAuth 2.0. Numerical input in hours. Default is 720 hours. Numbers as decimals are also valid values for this configuration setting.
The number of minutes from the last time a user was active on the system to the expiry of the user’s session. Once expired, the user will need to log in to continue.
Default is 43200 minutes (30 days). Minimum value is 5 minutes, and a value of 0 sets the time as unlimited.
The number of minutes from the last time a user was active on the system to the expiry of the user’s session. Once expired, the user will need to log in to continue. Numerical input in minutes. Default is 43200 (30 days). Minimum value is 5 minutes, and a value of 0 sets the time as unlimited.
Enable or disable performance monitoring. - true: Performance monitoring data collection and profiling is enabled. - false: (Default) Mattermost performance monitoring is disabled.
Control how often Mattermost collects data about delays caused by blocking operations within Mattermost (such as when one part of the program has to wait for another). Default is 0 (profiling is disabled). The profiler aims to sample an average of one blocking event per rate nanoseconds spent blocked. Default is 0.
Enable or disable notification metrics data collection. - true: (Default) Mattermost notification data collection is enabled for client-side web and desktop app users. - false: Mattermost notification data collection is disabled.
- System Config path: Site Configuration > Notifications - config.json setting: MetricsSettings > EnableNotificationMetrics > true - Environment variable: MM_METRICSSETTINGS_ENABLENOTIFICATIONMETRICS
Note
MetricsSettings.Enable이 true로 설정되어 있어야 합니다.
NotificationMonitoring 기능 플래그가 true로 설정되어 있어야 합니다.
자체 호스팅 배포에서는 System Console > Environment > Developer로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 개발자 모드를 구성할 수 있습니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작해야 적용됩니다.
true: (Default) The /test slash command is enabled to load test accounts and test data. Use this setting only in isolated non-production environments and never in production.
Enable or disable the /test slash command. - true: (Default) The /test slash command is enabled to load test accounts and test data. Use this setting only in isolated non-production environments and never in production. - false: The /test slash command is disabled.
Enable or disable developer mode. - true: (Default) Javascript errors are shown in a banner at the top of Mattermost the user interface. Not recommended for use in production. - false: Users are not alerted to Javascript errors.
Enable or disable client-side debugging settings found in Settings > Advanced > Debugging for individual users. - true: Those settings are visible and can be enabled by users. - false: (Default) Those settings are hidden and disabled.
이 설정은 로컬 네트워크 외부에 있는 사용자가 Mattermost 서버를 통해 네트워크 내부의 기밀 데이터를 요청하지 못하도록 하기 위한 것입니다. 로컬 네트워크에 대한 의도치 않은 접근을 방지하기 위해 이 설정을 구성할 때 주의해야 합니다.
Limit the ability for the Mattermost server to make untrusted requests within its local network. A request is considered “untrusted” when it’s made on behalf of a client.
이 설정은 Mattermost 서버가 요청할 수 있는 로컬 네트워크 주소의 허용 목록입니다. 공백으로 구분된 호스트명, IP 주소, CIDR 범위 목록으로 구성됩니다.
시스템 관리자만 구성할 수 있는 요청은 신뢰할 수 있는 것으로 간주되어 이 설정에 영향을 받지 않습니다. 신뢰할 수 있는 URL에는 OAuth 로그인이나 푸시 알림 전송에 사용되는 URL이 포함됩니다.
다음 기능은 신뢰할 수 없는 요청을 하며 이 설정의 영향을 받습니다:
웹훅, 슬래시 명령 또는 메시지 액션을 사용하는 통합. 이를 통해 로컬 네트워크 내의 엔드포인트를 요청할 수 없게 합니다.
링크 미리보기. 로컬 네트워크 주소 링크가 채팅 메시지에 게시될 때 링크 미리보기가 표시되지 않도록 합니다.
로컬 이미지 프록시. 로컬 이미지 프록시가 활성화된 경우 로컬 네트워크에 있는 이미지를 통합에서 사용하거나 채팅 메시지에 게시할 수 없습니다.
이 설정을 수정할 수 있는 몇 가지 예시:
Matterpoll과 같이 자체 이미지를 포함하는 플러그인을 설치하는 경우 Mattermost 서버의 도메인 이름을 이 목록에 추가해야 합니다.
로컬 네트워크에서 봇 또는 웹훅 기반 통합을 실행하는 경우 봇/통합의 호스트명을 이 목록에 추가해야 합니다.
공개적으로 접근 가능한 웹 페이지나 이미지가 내부 IP 주소를 통해 Mattermost 서버에서 접근되는 방식으로 네트워크가 구성된 경우 해당 서버의 호스트명을 이 목록에 추가해야 합니다.
Note
Mattermost 애플리케이션 서버 자체의 공인 IP도 예약된 IP로 간주됩니다.
호스트명, IP 주소 또는 CIDR 범위를 나열할 때 쉼표 대신 공백을 사용하세요. 예: webhooks.internal.example.com, 127.0.0.1, 또는 10.0.16.0/28.
IP 주소 및 도메인 이름 규칙은 호스트 해석 전에 적용됩니다.
CIDR 규칙은 호스트 해석 후에 적용되며, DNS 해석이 필요한 것은 CIDR 규칙뿐입니다.
Mattermost는 먼저 해석 없이 IP 주소와 호스트명을 일치시키려 합니다. 실패하면 로컬 리졸버(먼저 /etc/hosts 파일을 읽어)를 사용하여 해석한 다음 일치하는 CIDR 규칙을 확인합니다. 예를 들어, 도메인 “webhooks.internal.example.com”이 IP 주소 10.0.16.20으로 해석되는 경우, URL https://webhooks.internal.example.com/webhook을 가진 웹훅은 webhooks.internal.example.com 또는 10.0.16.16/28을 사용하여 허용 목록에 추가할 수 있지만 10.0.16.20은 사용할 수 없습니다.
Mattermost v10.7 및 모바일 앱 v2.27부터 EMM 공급자에 의존하지 않고 생체 인증을 구성하고, 탈옥 또는 루팅된 기기에서 Mattermost 사용을 방지하며, 화면 캡처를 차단할 수 있습니다. System Console > Environment > Mobile Security로 이동하거나 다음 표에서 설명한 대로 config.json 파일을 편집하여 이 옵션을 구성합니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작하고 사용자가 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인해야 적용됩니다.
true: Biometric authentication is enabled.
false: (Default) Biometric authentication is disabled.
Enforce biometric authentication, with PIN/passcode fallback, before accessing the app. Users will be prompted based on session activity and server switching rules. - true: Biometric authentication is enabled. - false: (Default) Biometric authentication is disabled.
- System Config path: Environment > Mobile Security - config.json setting: NativeAppSettings > MobileEnableBiometrics > false - Environment variable: MM_NATIVEAPPSETTINGS_MOBILEENABLEBIOMETRICS
Note
이 구성 설정을 변경하면 모바일 사용자가 Mattermost 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인할 때 적용됩니다.
다음 상황에서 사용자는 인증해야 합니다:
새 서버 추가 시: 모바일 앱에 새 서버가 추가되고 생체 인증이 활성화된 경우.
모바일 앱 열기 시: 활성 서버가 인증을 요구할 때 앱 실행 시.
백그라운드 사용 후 복귀 시: 앱이 5분 이상 백그라운드에 있었고 활성 서버가 인증을 요구하는 경우.
여러 서버 사용 시: 처음으로 서버에 접근할 때, 서버에서 5분 이상 비활성 상태 후, 그리고 마지막 인증 시도가 실패했을 때.
true: Jailbreak/Root protection is enabled.
false: (Default) Jailbreak/Root protection is disabled.
Prevent access to the app on devices detected as jailbroken or rooted. If a device fails the security check, users will be denied access or prompted to switch to a compliant server. - true: Jailbreak/Root protection is enabled. - false: (Default) Jailbreak/Root protection is disabled.
- System Config path: Environment > Mobile Security - config.json setting: NativeAppSettings > MobileJailbreakProtection > false - Environment variable: MM_NATIVEAPPSETTINGS_MOBILEJAILBREAKPROTECTION
Note
이 구성 설정을 변경하면 모바일 사용자가 Mattermost 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인할 때 적용됩니다.
Block screenshots and screen recordings when using the mobile app. Screenshots will appear blank, and screen recordings will blur (iOS) or show a black screen (Android). Also applies when switching apps. - true: Screen capture blocking is enabled. - false: (Default) Screen capture blocking is disabled.
- System Config path: Environment > Mobile Security - config.json setting: NativeAppSettings > MobilePreventScreenCapture > false - Environment variable: MM_NATIVEAPPSETTINGS_MOBILEPREVENTSCREENCAPTURE
Note
Changing this configuration setting takes effect when mobile users restart their Mattermost mobile app or log out and log back in.
true: Prevents file downloads, previews, and sharing for most file types. Allows in-app previews for PDFs, videos, and images only. Files are stored temporarily in the app's cache and cannot be exported or shared.
false: (Default) Secure file preview mode is disabled.
이 설정은 필수 파일 보기 기능은 유지하면서 파일 접근을 제한하여 조직의 모바일 보안 태세를 강화합니다.
- true: Prevents file downloads, previews, and sharing for most file types, even when the Allow file downloads on mobile configuration setting is enabled. Allows in-app previews for PDFs, videos, and images only. Files are stored temporarily in the app's cache and cannot be exported or shared. - false: (Default) Secure file preview mode is disabled.
- System Config path: Site Configuration > File sharing and downloads - config.json setting: FileSettings > MobileEnableSecureFilePreview > false - Environment variable: MM_FILESETTINGS_MOBILEENABLESECUREFILEPREVIEW
Note
이 구성 설정을 변경하면 모바일 사용자가 Mattermost 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인할 때 적용됩니다.
true: (Default) Enables tapping links inside PDFs on mobile when Secure File Preview Mode is active. Links will open in the device browser or supported app.
false: Disables link navigation in PDFs when Secure File Preview Mode is active.
- true: (Default) Enables tapping links inside PDFs on mobile when Secure File Preview Mode is active. Links will open in the device browser or supported app. - false: Disables link navigation in PDFs when Secure File Preview Mode is active.
- System Config path: Site Configuration > File sharing and downloads - config.json setting: FileSettings > MobileAllowPdfLinkNavigation > true - Environment variable: MM_FILESETTINGS_MOBILEALLOWPDFLINKNAVIGATION
Note
이 구성 설정을 변경하면 모바일 사용자가 Mattermost 모바일 앱을 재시작하거나 로그아웃 후 다시 로그인할 때 적용됩니다.
Enable or disable customer portal requests. - true: (Default) Server-side requests made to the customer portal are disabled. - false: Server-side requests made to the Mattermost Customer Portal are enabled, but will always fail in air-gapped and restricted deployment environments.
true: The api/v4/teams/{teamid}?permanent=true API endpoint can be called by team admins and system admins (or users with appropriate permissions), or by running the mmctl team delete command, to permanently delete a team.
false: (Default) The API endpoint cannot be called, but api/v4/teams/{teamid} can still be used to soft delete a team.
Allow permanent team deletion via API. - true: Team and system admins (or users with appropriate permissions) can call api/v4/teams/{teamid}?permanent=true or use mmctl team delete to permanently delete a team. - false: (Default) Endpoint not available; api/v4/teams/{teamid} still soft deletes a team.
이 설정은 System Console에서 사용할 수 없으며 config.json에서만 설정할 수 있습니다.
true: The api/v4/users/{userid}?permanent=true API endpoint can be called by system admins (or users with appropriate permissions), or by running the mmctl user delete command, to permanently delete a user.
false: (Default) The API endpoint cannot be called, but api/v4/users/{userid} can still be used to soft delete a user.
Allow permanent user deletion via API. - true: System admins (or users with appropriate permissions) can call api/v4/users/{userid}?permanent=true or use mmctl user delete to permanently delete a user. - false: (Default) Endpoint not available; api/v4/users/{userid} still soft deletes a user.
이 설정은 System Console에서 사용할 수 없으며 config.json에서만 설정할 수 있습니다.
true: The api/v4/channels/{channelid}?permanent=true API endpoint can be called by system admins (or users with appropriate permissions), or by running the mmctl channel delete command, to permanently delete a channel.
false: (Default) The API endpoint cannot be called, but api/v4/channels/{channelid} can still be used to soft delete a channel.
Allow permanent channel deletion via API. - true: System admins (or users with appropriate permissions) can call api/v4/channels/{channelid}?permanent=true or use mmctl channel delete to permanently delete a channel. - false: (Default) Endpoint not available; api/v4/channels/{channelid} still soft deletes a channel.
Desktop App v5.10부터 이 설정은 Mattermost 데스크탑 앱의 View > Developer Tools 메뉴에서 사용할 수 있는 개발자 디버깅 옵션을 활성화합니다.
이 설정은 System Console에서 사용할 수 없으며 config.json에서 환경 변수 MM_DESKTOP_DEVELOPER_MODE를 true로 설정해야만 활성화할 수 있습니다. 기본적으로 비활성화되어 있습니다.
True: 문제 해결 및 디버깅을 위해 데스크탑 앱에서 다음 옵션을 잠금 해제합니다. Mattermost 개발자의 지시가 있을 때만 이 설정을 활성화해야 합니다:
Browser Mode Only: 프리로드 스크립트를 완전히 비활성화하고 웹 앱 구성 요소가 데스크탑 앱에 있다는 것을 인식하지 못하도록 합니다. 이 옵션은 웹 앱 구성 요소가 성능 및/또는 메모리 보유 문제를 일으키는지 여부의 가장 좋은 지표여야 합니다. 이 옵션은 알림, 크로스 탭 탐색, 읽지 않음/멘션 배지, 통화 위젯을 비활성화하고 macOS에서 크기 조정을 중단합니다.
Disable Notification Storage: 선택하고 읽을 때까지 읽지 않은 알림에 대한 참조를 유지하는 맵을 끕니다. 이 옵션은 Mattermost가 사용되지 않는 알림에 대한 참조를 너무 많이 유지하는 경우 디버깅에 유용합니다.
Disable User Activity Monitor: 사용자가 자리를 비웠는지 여부를 확인하는 인터벌을 끕니다. 이 옵션은 사용자의 상태가 예상치 못한 데스크탑 앱 동작을 일으키는지 여부를 디버깅하는 데 유용합니다.
Disable Context Menu: BrowserView에 연결된 컨텍스트 메뉴를 끕니다. 이 옵션은 라이브러리 정상성 확인에 유용합니다.
Force Legacy Messaging API: 앱이 최신 contextBridge API 대신 이전 메시징 API로 되돌아가도록 강제합니다. 이 옵션은 새 API가 메모리 보유 원인인지 확인하는 정상성 확인에 유용합니다.
Force New Messaging API: 앱이 contextBridge API를 사용하도록 강제하고 이전 API를 완전히 비활성화합니다. 이 옵션은 이전 API에 대한 리스너를 강제로 끕니다.
False: (Default) 개발자 디버깅 옵션이 잠기고 데스크탑 앱에서 사용할 수 없습니다.
Mattermost v10.4부터 자체 호스팅 배포를 사용하는 Mattermost Enterprise 고객은 대안적인 캐시 백엔드로 Redis (Remote Dictionary Server)를 구성할 수 있습니다. Redis는 데이터베이스, 캐시, 메시지 브로커로 사용할 수 있는 오픈 소스 인메모리 데이터 구조 저장소입니다. 다양한 데이터 구조를 지원하며 메모리에 데이터를 저장하고 매우 빠른 데이터 접근을 제공하는 성능으로 최우선 선택지가 됩니다.
Redis를 캐싱 솔루션으로 사용하면 고동시성 및 대규모 사용자 기반을 가진 엔터프라이즈급 배포에서 Mattermost가 고사용량에서도 고성능과 효율성을 유지할 수 있습니다.
다음 표에서 설명한 대로 config.json 파일을 편집하여 Redis 캐시를 구성합니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작해야 적용됩니다.
lru: (Default) Mattermost uses the in-memory cache store.
redis: Mattermost uses the configured Redis cache store.
Disables the client-side cache of Redis. - true: Client-side cache of Redis is disabled. Typically used as a test option, and not in production environments. - false: (Default) Client-side cache of Redis is enabled.
모든 Redis 캐시 키에 접두사를 추가하면 키 충돌을 줄이고, 디버깅을 단순화하며, 데이터를 격리하고, Redis 기반 시스템을 관리하고 확장하기 위한 명확한 구조를 제공합니다. 여러 시스템 또는 테넌트가 동일한 Redis 인스턴스를 사용하는 환경에서는 접두사가 데이터 무결성과 운영 효율성을 유지하는 데 중요합니다.
true: Improves websocket broadcasting performance; however, performance may decrease when users join or leave a channel. Not recommended unless you have at least 200,000 concurrent users actively using Mattermost.
false: (Default) Websocket broadcasting performance in channels is disabled.
Control the performance of websocket broadcasting in channels. When enabled, improves websocket broadcasting performance; however, performance may decrease when users join or leave a channel. Not recommended unless you have at least 200,000 concurrent users actively using Mattermost. Disabled by default.
Enables the ability to specify an alternate filestore target for Mattermost bulk exports and compliance exports. - True: A new ExportFileBackend() is generated under FileSettings using new configuration values for the following configuration settings: - ExportDriverName - ExportDirectory - ExportAmazonS3AccessKeyId - ExportAmazonS3SecretAccessKey - ExportAmazonS3Bucket - ExportAmazonS3PathPrefix - ExportAmazonS3Region - ExportAmazonS3Endpoint - ExportAmazonS3SSL - ExportAmazonS3SignV2 - ExportAmazonS3SSE - ExportAmazonS3Trace - ExportAmazonS3RequestTimeoutMilliseconds - ExportAmazonS3PresignExpiresSeconds - False: (Default) Standard file storage is used. Standard file storage will also be used when the configuration setting or value is omitted.
대체 파일스토리지 대상이 구성된 경우 Mattermost Cloud 관리자는 /exportlink [job-id|zip file|latest] 슬래시 명령을 사용하여 내보내기를 위한 S3 사전 서명 URL을 생성할 수 있습니다. 자세한 내용은 Mattermost 데이터 마이그레이션 문서를 참조하세요. 또는 Cloud 및 자체 호스팅 관리자가 mmctl export generate-presigned-url 명령을 사용하여 mmctl에서 직접 사전 서명 URL을 생성할 수 있습니다.
S3 사전 서명 URL을 생성하려면 기능 플래그 EnableExportDirectDownload가 true로 설정되어 있어야 하고, 스토리지가 S3 링크 생성과 호환되어야 하며, 이 실험적 구성 설정이 true로 설정되어 있어야 합니다. 공유 스토리지를 사용하는 시스템에서는 내보내기를 위한 사전 서명 URL이 지원되지 않습니다.