환경 구성 설정#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

제품 제품 메뉴 아이콘을 사용하여 채널과 협업 플레이북 간에 이동하세요. 메뉴를 선택하고 시스템 콘솔 을 선택한 다음 환경 을 선택하여 시스템 콘솔에서 다음 환경 구성 옵션을 검토하고 관리하세요:

자체 호스팅 Mattermost 배포를 관리하는 시스템 관리자는 다음 표에 설명된 대로 config.json 파일을 편집할 수 있습니다. 아래의 각 구성 값에는 JSON 인식 도구를 사용하여 config.json 파일에서 프로그래밍 방식으로 값에 접근하기 위한 JSON 경로가 포함됩니다. 예를 들어, SiteURL 값은 ServiceSettings 아래에 있습니다.

  • jq 와 같은 도구를 사용하는 경우 다음을 입력합니다: cat config/config.json | jq '.ServiceSettings.SiteURL'

  • config.json 파일을 수동으로 작업할 때는 ServiceSettings 와 같은 객체를 찾은 다음, 해당 객체 내에서 SiteURL 키를 찾으세요.

웹 서버#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

시스템 콘솔 > 환경 > 웹 서버 로 이동하거나 다음 표에 설명된 대로 config.json 파일을 업데이트하여 Mattermost가 배포된 네트워크 환경을 구성합니다. 이 섹션의 구성 설정 변경 사항은 적용되기 전에 서버 재시작이 필요합니다.

사이트 URL#

사용자가 Mattermost에 접근하는 데 사용하는 URL입니다. 80이나 443과 같은 표준 포트가 아닌 경우 포트 번호가 필요합니다. 이 필드는 필수입니다.

시스템 콘솔에서 테스트 라이브 URL 버튼을 선택하여 사이트 URL을 확인합니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: .ServiceSettings.SiteURL",

  • 환경 변수: MM_SERVICESETTINGS_SITEURL

참고

  • URL에는 https://example.com/company/mattermost 와 같은 하위 경로가 포함될 수 있습니다.

  • 사이트 URL 값을 변경한 경우 데스크톱 앱에서 로그아웃하고 새 도메인을 사용하여 다시 로그인하세요.

  • 사이트 URL이 설정되지 않은 경우:

    • 이메일 알림에 깨진 링크가 포함되고 이메일 일괄 처리가 작동하지 않습니다.

    • GitLab, Google, Entra ID를 포함한 OAuth 2.0을 통한 인증이 실패합니다.

    • 플러그인이 예상대로 작동하지 않을 수 있습니다.

최대 URL 길이#

Mattermost 서버가 허용하는 쿼리 매개변수를 포함한 최대 URL 길이(문자 수)입니다. 더 긴 URL은 거부되며 API 호출이 오류와 함께 실패합니다.

숫자 값입니다. 기본값은 2048 문자입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: .ServiceSettings.MaximumURLLength: 2048",

  • 환경 변수: MM_SERVICESETTINGS_MAXIMUMURLLENGTH

웹 서버 수신 주소#

바인딩하고 수신할 주소와 포트입니다. :8065 를 지정하면 모든 네트워크 인터페이스에 바인딩됩니다. 127.0.0.1:8065 를 지정하면 해당 IP 주소를 가진 네트워크 인터페이스에만 바인딩됩니다.

낮은 수준의 포트(0-1023 범위의 “시스템 포트” 또는 “잘 알려진 포트”라고 함)를 선택하는 경우, 해당 포트에 바인딩할 수 있는 권한이 있어야 합니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.ListenAddress",

  • 환경 변수: MM_SERVICESETTINGS_LISTENADDRESS

포트 80을 443으로 전달#

포트 80에서 포트 443으로 보안되지 않은 트래픽을 전달합니다.

  • true: 포트 80의 모든 보안되지 않은 트래픽을 보안 포트 443으로 전달합니다.

  • false: (기본값) Mattermost 앞에 NGINX와 같은 프록시를 사용하는 경우 이 설정은 불필요하며 false로 설정해야 합니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.Forward80To443: false",

  • 환경 변수: MM_SERVICESETTINGS_FORWARD80TO443

웹 서버 연결 보안#

Mattermost 클라이언트와 서버 간의 연결 보안입니다.

  • 지정되지 않음: Mattermost가 보안되지 않은 연결을 통해 연결됩니다.

  • TLS: Mattermost 클라이언트와 서버 간의 통신을 암호화합니다. 자세한 내용은 Mattermost에서 TLS 구성 을 참조하세요.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.ConnectionSecurity",

  • 환경 변수: MM_SERVICESETTINGS_CONNECTIONSECURITY

TLS 인증서 파일#

TLS 연결 보안에 사용할 인증서 파일의 경로입니다.

문자열 입력입니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.TLSCertFile",

  • 환경 변수: MM_SERVICESETTINGS_TLSCERTFILE

TLS 키 파일#

TLS 연결 보안에 사용할 TLS 키 파일의 경로입니다.

문자열 입력입니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.TLSKeyFile",

  • 환경 변수: MM_SERVICESETTINGS_TLSKEYFILE

Let’s Encrypt 사용#

Let’s Encrypt에서 인증서를 자동으로 가져오도록 설정합니다. Let’s Encrypt 설정에 대한 자세한 내용은 Mattermost에서 TLS 구성 문서 를 참조하세요.

  • true: 클라이언트가 새 도메인에서 연결을 시도할 때 인증서가 검색됩니다. 이는 여러 도메인에서 작동합니다.

  • false: (기본값) 위에서 지정한 TLS 인증서 파일과 TLS 키 파일을 기반으로 수동 인증서 지정.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.UseLetsEncrypt: false",

  • 환경 변수: MM_SERVICESETTINGS_USELETSENCRYPT

Let’s Encrypt 인증서 캐시 파일#

Let’s Encrypt 서비스의 인증서 및 기타 데이터가 저장될 파일의 경로입니다.

파일 경로 입력입니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.LetsEncryptCertificateCacheFile",

  • 환경 변수: MM_SERVICESETTINGS_LETSENCRYPTCERTIFICATECACHEFILE

읽기 타임아웃#

연결이 수락된 시점부터 요청 본문이 완전히 읽힐 때까지 허용되는 최대 시간입니다.

초 단위의 숫자 입력입니다. 기본값은 300 초입니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.ReadTimeout: 300",

  • 환경 변수: MM_SERVICESETTINGS_READTIMEOUT

쓰기 타임아웃#

  • HTTP(보안되지 않음)를 사용하는 경우, 요청 헤더 읽기가 끝난 시점부터 응답이 작성될 때까지 허용되는 최대 시간입니다.

  • HTTPS를 사용하는 경우, 연결이 수락된 시점부터 응답이 작성될 때까지의 총 시간입니다.

초 단위의 숫자 입력입니다. 기본값은 300 초입니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.WriteTimeout: 300",

  • 환경 변수: MM_SERVICESETTINGS_WRITETIMEOUT

유휴 타임아웃#

HTTP 서버에서 명시적인 유휴 타임아웃을 설정합니다. 유휴 연결이 끊어지기 전에 허용되는 최대 시간입니다.

초 단위의 숫자 입력입니다. 기본값은 300 초입니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.IdleTimeout: 300",

  • 환경 변수: MM_SERVICESETTINGS_IDLETIMEOUT

웹서버 모드#

웹 프록시가 gzip 파일을 제대로 배포하지 못하는 것과 같은 특정 제한이 없는 한 성능 향상을 위해 gzip을 권장합니다.

  • gzip: (기본값) Mattermost 서버는 성능 향상을 위해 gzip으로 압축된 정적 파일을 제공합니다. gzip 압축은 Mattermost 웹 클라이언트를 구성하는 HTML, CSS, Javascript 및 기타 정적 콘텐츠 파일에 적용됩니다.

  • 압축 해제: Mattermost 서버는 압축되지 않은 정적 파일을 제공합니다.

  • 비활성화: Mattermost 서버는 정적 파일을 제공하지 않습니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.WebserverMode: gzip",

  • 환경 변수: MM_SERVICESETTINGS_WEBSERVERMODE

안전하지 않은 발신 연결 활성화#

안전하지 않은 발신 연결을 허용하도록 Mattermost를 구성합니다.

  • true: S3 클라이언트를 포함한 발신 HTTPS 요청이 확인되지 않은 자체 서명 인증서를 수락할 수 있습니다. 예를 들어, 자체 서명된 TLS 인증서가 있는 서버로의 발신 웹훅은 모든 도메인을 사용할 수 있으며 TLS 검증을 건너뜁니다.

  • false: (기본값) 보안 HTTPS 요청만 허용됩니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.EnableInsecureOutgoingConnections: false",

  • 환경 변수: MM_SERVICESETTINGS_ENABLEINSECUREOUTGOINGCONNECTIONS

경고

이 기능을 활성화하면 이러한 연결이 중간자 공격에 취약해집니다.

관리되는 리소스 경로#

Mattermost 자체가 아닌 타사 서비스에서 관리하는 Mattermost 도메인 내의 경로를 쉼표로 구분한 목록입니다.

이러한 경로에 대한 링크는 Mattermost 앱에서 새 탭/창으로 열립니다.

예를 들어, Mattermost가 https://mymattermost.com 에서 실행 중인 경우, 이를 conference로 설정하면 https://mymattermost.com/conference 와 같은 링크가 새 창에서 열립니다.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: ".ServiceSettings.ManagedResourcePaths",

  • 환경 변수: MM_SERVICESETTINGS_MANAGEDRESOURCEPATHS

참고

Mattermost 데스크톱 앱을 사용할 때는 브라우저 대신 데스크톱 앱 내에서 링크를 열기 위한 추가 구성이 필요합니다. 자세한 내용은 데스크톱 관리 리소스 문서를 참조하세요.

디스크에서 구성 다시 로드#

참고

plans-img-yellow Enterprise 플랜에서만 사용 가능

서버를 중단하지 않고 장애 조치를 수행하려면 config.json 파일의 데이터베이스 라인을 변경한 다음 구성을 다시 로드해야 합니다.

데이터베이스 구성을 변경한 후 시스템 콘솔에서 디스크에서 구성 다시 로드 버튼을 선택하세요. 그런 다음 환경 > 데이터베이스 로 이동하여 데이터베이스 연결 재활용 을 선택하여 다시 로드를 완료하세요.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: 해당 없음

  • 환경 변수: 해당 없음

모든 캐시 삭제#

세션, 계정 및 채널에 대한 모든 메모리 내 캐시를 삭제합니다.

시스템 콘솔에서 모든 캐시 삭제 버튼을 선택하여 모든 캐시를 삭제하세요.

  • 시스템 구성 경로: 환경 > 웹 서버

  • config.json 설정: 해당 없음

  • 환경 변수: 해당 없음

참고

캐시를 삭제하면 성능에 부정적인 영향을 미칠 수 있습니다. 고가용성 클러스터 기반 배포 는 클러스터의 모든 서버를 삭제하려고 시도합니다.

웹소켓 URL#

클라이언트가 웹소켓을 연결해야 하는 위치를 지정하도록 서버를 구성할 수 있습니다.

문자열 입력입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.WebsocketURL: "",

  • 환경 변수: MM_SERVICESETTINGS_WEBSOCKETURL

참고

사이트 URL 구성 설정과 일치하는 단일 웹소켓 URL을 구성하는 것을 강력히 권장합니다.

라이선스 파일 위치#

참고

plans-img-yellow Enterprise 및 Professional 플랜에서만 사용 가능

디스크에 있는 라이선스 파일의 경로와 파일 이름입니다. 시작 시 Mattermost가 이전 업로드에서 데이터베이스에 유효한 라이선스를 찾을 수 없는 경우, 이 경로에서 라이선스 파일을 찾습니다.

문자열 입력. 절대 경로 또는 mattermost 디렉토리를 기준으로 한 상대 경로일 수 있습니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.LicenseFileLocation: "",

  • 환경 변수: MM_SERVICESETTINGS_LICENSEFILELOCATION

TLS 최소 버전#

Mattermost 서버에서 사용하는 최소 TLS 버전입니다.

문자열 입력. 기본값은 1.2 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.TLSMinVer: 1.2",

  • 환경 변수: MM_SERVICESETTINGS_TLSMINVER

참고

NGINX와 같은 리버스 프록시 계층을 사용하지 않고 내장 서버 바이너리를 직접 사용하는 경우에만 이 설정이 적용됩니다.

신뢰할 수 있는 프록시 IP 헤더#

IP 주소를 위해 하나씩 확인할 지정된 헤더(순서가 중요함). 다른 모든 헤더는 무시됩니다.

["X-Forwarded-For", "X-Real-Ip"] 와 같은 헤더 이름으로 구성된 문자열 배열 입력.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.TrustedProxyIPHeader: []",

  • 환경 변수: MM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER

참고

  • [] 의 기본값은 어떤 헤더도 신뢰하지 않음을 의미합니다.

  • 클라이언트가 헤더를 보내고 속도 제한 및/또는 감사 로그를 우회하는 것을 방지하기 위해 Mattermost가 프록시 없이 실행될 때는 기본 설정을 유지하는 것이 좋습니다.

  • 리버스 프록시를 사용하는 환경에서는 헤더가 리버스 프록시에 의해 설정되는 한 이 문제가 존재하지 않습니다. 이러한 환경에서는 리버스 프록시에 의해 설정된 헤더만 명시적으로 허용 목록에 추가하고 추가 값을 허용하지 않습니다.

Strict Transport Security(HSTS) 활성화#

  • true: 모든 응답에 Strict Transport Security(HSTS) 헤더를 추가하여 브라우저가 모든 리소스를 HTTPS를 통해 요청하도록 강제합니다.

  • false: (기본값) TLS 전송에 제한이 없습니다. Strict Transport Security(HSTS) 헤더가 응답에 추가되지 않습니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.TLSStrictTransport: false",

  • 환경 변수: MM_SERVICESETTINGS_TLSSTRICTTRANSPORT

자세한 내용은 Strict-Transport-Security 문서를 참조하세요.

보안 TLS 전송 만료#

브라우저가 사이트가 HTTPS를 통해서만 접근 가능하다고 기억하는 시간(초)입니다. 이 기간 이후에는 TLSStrictTransporttrue 로 설정되지 않은 한 HTTP를 사용하여 사이트에 접근할 수 없습니다.

숫자 입력. 기본값은 63072000 (2년)입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.TLSStrictTransportMaxAge: 63072000",

  • 환경 변수: MM_SERVICESETTINGS_TLSSTRICTTRANSPORTMAXAGE

자세한 내용은 Strict-Transport-Security 문서를 참조하세요.

TLS 암호화 덮어쓰기#

현대 암호화를 지원하지 않는 레거시 클라이언트의 요구사항을 충족하거나 허용된 암호화 유형을 제한하기 위해 TLS 암호화 덮어쓰기를 설정합니다.

지정하지 않으면 Mattermost 서버는 현재 안전하다고 간주되는 암호화 세트를 사용하고, 특수한 경우에만 덮어쓰기를 허용합니다.

문자열 배열 입력.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.TLSOverwriteCiphers: []",

  • 환경 변수: MM_SERVICESETTINGS_TLSOVERWRITECIPHERS

참고

  • NGINX와 같은 리버스 프록시 레이어를 사용하지 않고 내장 서버 바이너리를 직접 사용하는 경우에만 이 설정이 적용됩니다.

  • 안전하다고 간주되는 암호화 목록은 /model/config.goServerTLSSupportedCiphers 변수를 참조하세요.

고루틴 상태 임계값#

Mattermost 시스템이 정상 상태로 간주될 때의 고루틴 수에 대한 임계값을 설정합니다.

고루틴이 이 한도를 초과하면 서버 로그에 경고가 반환됩니다.

숫자 입력. 기본값은 -1 로, 임계값 검사를 비활성화합니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.GoroutineHealthThreshold: -1",

  • 환경 변수: MM_SERVICESETTINGS_GOROUTINEHEALTHTHRESHOLD

하위 도메인에 대한 쿠키 허용#

  • true: (기본값) Mattermost 쿠키의 도메인 매개변수를 설정하여 하위 도메인에 대한 쿠키를 허용합니다.

  • false: 하위 도메인에 대한 쿠키를 허용하지 않습니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.AllowCookiesForSubdomains: true",

  • 환경 변수: MM_SERVICESETTINGS_ALLOWCOOKIESFORSUBDOMAINS

클러스터 로그 타임아웃#

참고

plans-img-yellow Enterprise 플랜에서만 사용 가능

성능 모니터링을 위한 클러스터 요청 시간 로깅의 빈도(밀리초)를 정의합니다.

숫자 입력. 기본값은 2000 밀리초(2초)입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.ClusterLogTimeoutMilliseconds: 2000",

  • 환경 변수: MM_SERVICESETTINGS_CLUSTERLOGTIMEOUTMILLISECONDS

자세한 내용은 성능 모니터링 문서를 참조하세요.

최대 페이로드 크기#

파일을 입력으로 받는 API를 제외한 모든 API의 최대 페이로드 크기(바이트)입니다.

예를 들어, 첨부 파일 업로드 API나 사용자 정의 이모지 업로드 API가 있습니다.

숫자 값. 기본값은 300000 (300 kB)입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.MaximumPayloadSizeBytes: 300000",

  • 환경 변수: MM_SERVICESETTINGS_MAXIMUMPAYLOADSIZEBYTES


데이터베이스#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

시스템 콘솔 > 환경 > 데이터베이스 로 이동하거나 다음 표에 설명된 대로 config.json 파일을 편집하여 Mattermost가 배포된 데이터베이스 환경을 구성합니다. 이 섹션의 구성 설정 변경 사항은 적용되기 전에 서버 재시작이 필요합니다.

Mattermost Academy Learn about setting up the Mattermost database

드라이버 이름#

데이터베이스 유형입니다. 다음 중 하나일 수 있습니다:

  • mysql: (기본값) MySQL 데이터베이스에 대한 드라이버를 활성화합니다.

  • postgres: PostgreSQL 데이터베이스에 대한 드라이버를 활성화합니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".SqlSettings.DriverName",

  • 환경 변수: MM_SQLSETTINGS_DRIVERNAME

데이터 소스#

마스터 데이터베이스에 대한 연결 문자열입니다.

문자열 입력입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".SqlSettings.DataSource",

  • 환경 변수: MM_SQLSETTINGS_DATASOURCE

PostgreSQL 데이터베이스#

드라이버 이름 이 postgres로 설정된 경우, 다음 형식의 연결 문자열을 사용하세요: postgres://mmuser:password@hostname_or_IP:5432/mattermost_test?sslmode=disable&connect_timeout=10

PostgreSQL 데이터베이스에서 TLS 사용하기

PostgreSQL 서버에 대한 연결을 암호화하는 매개변수는 sslmode입니다. PostgreSQL 서버와 상호 작용하는 데 사용되는 라이브러리는 pq 입니다. 현재는 표준 PostgreSQL 클라이언트에 전달할 수 있는 모든 값을 사용할 수 없습니다. psql "sslmode=value" 자세한 내용은 SSL 모드 설명 문서를 참조하세요.

데이터베이스 관리자는 아래 설명된 지원되는 값에 따라 기능을 구성해야 합니다.

sslmode 매개변수에 대한 간략한 설명

데이터 소스 이름 예시

PostgreSQL 서버에 대해 TLS/SSL 암호화를 사용하지 않습니다.

config.json 파일의 기본값

disable

postgres://mmuser:password@hostname_or_IP:5432/mattermost_test ?sslmode=disable&connect_timeout=10

데이터가 암호화되고 네트워크가 신뢰할 수 있습니다.

생략 시 기본값은 sslmode 입니다.

require

postgres://mmuser:password@hostname_or_IP:5432/mattermost_test ?sslmode=require&connect_timeout=10

신뢰할 수 있는 서버에 연결할 때 데이터가 암호화됩니다.

verify-ca

postgres://mmuser:password@hostname_or_IP:5432/mattermost_test ?sslmode=verify-ca&connect_timeout=10

신뢰할 수 있는 서버에 연결할 때 데이터가 암호화됩니다.

verify-full

postgres://mmuser:password@hostname_or_IP:5432/mattermost_test ?sslmode=verify-full&connect_timeout=10

MySQL 데이터베이스#

드라이버 이름이 mysql로 설정된 경우 charset 대신 collation을 사용하는 것을 권장합니다.

collation을 지정하려면:

"SqlSettings": {
    "DataSource": "<mmuser:password>@tcp(hostname or IP:3306)/mattermost?charset=utf8mb4,utf8&collation=utf8mb4_general_ci",
    [...]
}

collation이 생략되면 기본 collation인 utf8mb4_general_ci 가 사용됩니다:

"SqlSettings": {
  "DataSource": "<mmuser:password>@tcp(hostname or IP:3306)/mattermost?charset=utf8mb4,utf8",
  [...]
}

참고

MySQL 8.0 이상을 사용하는 경우 기본 collation이 utf8mb4_0900_ai_ci 로 변경되었습니다. MySQL 8.0 지원에 대한 자세한 내용은 데이터베이스 소프트웨어 요구사항 문서를 참조하세요.

MySQL 데이터베이스에서 TLS 사용하기

MySQL 서버에 대한 연결을 암호화하는 매개변수는 tls 입니다.

MySQL과 상호작용하는 데 사용되는 라이브러리는 Go-MySQL-Driver 입니다.

현재는 표준 MySQL 클라이언트 mysql --ssl-mode=value 에 전달할 수 있는 모든 값을 사용할 수 없습니다. 버전 8.0 예제는 연결 암호화 옵션 요약 문서를 참조하세요.

데이터베이스 관리자는 아래 설명된 지원되는 값에 따라 기능을 구성해야 합니다.

tls 매개변수에 대한 간략한 설명

데이터 소스 이름 예시

MySQL 서버에 대해 TLS/SSL 암호화를 사용하지 않습니다.

false

"<mmuser:password>@tcp(hostname or IP:3306)/mattermost_test ?charset=utf8mb4,utf8&writeTimeout=30s&tls=false"

MySQL 서버에 대해 TLS/SSL 암호화를 사용합니다.

true

"<mmuser:password>@tcp(hostname or IP:3306)/mattermost_test ?charset=utf8mb4,utf8&writeTimeout=30s&tls=true"

MySQL 서버에 대해 자체 서명된 인증서로 TLS/SSL 암호화를 사용합니다.

skip-verify

"<mmuser:password>@tcp(hostname or IP:3306)/mattermost_test ?charset=utf8mb4,utf8&writeTimeout=30s&tls=skip-verify"

서버가 가능한 대체 방법을 알리는 경우 TLS/SSL 암호화를 사용하고, 알리지 않는 경우 암호화하지 않습니다.

preferred

"<mmuser:password>@tcp(hostname or IP:3306)/mattermost_test ?charset=utf8mb4,utf8&writeTimeout=30s&tls=preferred"

AWS 고가용성 RDS 클러스터 배포#

AWS 고가용성 RDS 클러스터 배포의 경우, AWS 장애 조치 처리를 활용하기 위해 이 구성 설정을 클러스터 수준의 쓰기/읽기 엔드포인트로 지정하세요. AWS는 다른 데이터베이스 노드를 작성자 노드로 승격하는 작업을 처리합니다. Mattermost는 이를 관리할 필요가 없습니다. 자세한 내용은 고가용성 데이터베이스 구성 문서를 참조하세요.

최대 열린 연결 수#

데이터베이스에 대한 최대 열린 연결 수입니다.

숫자 입력. 자체 호스팅 배포의 경우 기본값은 300 이고, 클라우드 배포의 경우 100 입니다.

  • 시스템 구성 경로: 환경 > 데이터베이스

  • config.json 설정: ".SqlSettings.MaxOpenConns": 300,

  • 환경 변수: MM_SQLSETTINGS_MAXOPENCONNS

쿼리 시간 초과#

연결을 열고 쿼리를 보낸 후 데이터베이스로부터 응답을 기다리는 시간(초)입니다.

초 단위 숫자 입력. 기본값은 30 초입니다.

  • 시스템 구성 경로: 환경 > 데이터베이스

  • config.json 설정: ".SqlSettings.QueryTimeout: 30",

  • 환경 변수: MM_SQLSETTINGS_QUERYTIMEOUT

최대 연결 수명#

데이터베이스 연결의 최대 수명(밀리초)입니다. 이 설정을 사용하여 데이터베이스 연결이 재사용될 수 있는 최대 시간을 구성합니다.

밀리초 단위 숫자 입력. 기본값은 3600000 밀리초(1시간)입니다.

  • 시스템 구성 경로: 환경 > 데이터베이스

  • config.json 설정: ".SqlSettings.ConnMaxLifetimeMilliseconds: 3600000",

  • 환경 변수: MM_SQLSETTINGS_CONNMAXLIFETIMEMILLISECONDS

최대 연결 유휴 시간 초과#

데이터베이스 연결이 유휴 상태로 유지될 수 있는 최대 시간(밀리초)입니다.

밀리초 단위 숫자 입력. 기본값은 300000 (5분)입니다.

  • 시스템 구성 경로: 환경 > 데이터베이스

  • config.json 설정: ".SqlSettings.ConnMaxIdleTimeMilliseconds: 300000",

  • 환경 변수: MM_SQLSETTINGS_CONNMAXIDLETIMEMILLISECONDS

최소 해시태그 길이#

해시태그의 최소 문자 수입니다. 이 값은 2 이상이어야 합니다.

  • 시스템 구성 경로: 환경 > 데이터베이스

  • config.json 설정: ".SqlSettings.MinimumHashtagLength: 3",

  • 환경 변수: MM_SQLSETTINGS_MINIMUMHASHTAGLENGTH

참고

MySQL 데이터베이스는 3자 미만의 문자열 검색을 지원하도록 구성해야 합니다. 자세한 내용은 MySQL 문서 를 참조하세요.

SQL 문 로깅#

실행된 SQL 문은 개발을 위해 로그에 기록될 수 있습니다.

  • true: 실행 중인 SQL 문이 로그에 기록됩니다.

  • false: (기본값) SQL 문이 로그에 기록되지 않습니다.

  • 시스템 구성 경로: 환경 > 데이터베이스

  • config.json 설정: ".SqlSettings.Trace: false",

  • 환경 변수: MM_SQLSETTINGS_TRACE

데이터베이스 연결 재활용#

참고

plans-img-yellow Enterprise 플랜에서만 사용 가능

데이터베이스 연결 재활용 버튼을 선택하여 20초 이내에 데이터베이스에 대한 현재 열린 연결 세트를 닫고 새로운 연결 세트를 생성함으로써 연결 풀을 수동으로 재활용합니다.

서버를 중지하지 않고 장애 조치하려면 config.json 파일의 데이터베이스 라인을 변경하고 환경 > 웹 서버 를 통해 디스크에서 구성 다시 로드 를 선택한 다음 데이터베이스 연결 재활용 을 선택하세요.

  • 시스템 구성 경로: 환경 > 데이터베이스

  • config.json 설정: 해당 없음

  • 환경 변수: 해당 없음

적용된 스키마 마이그레이션#

db_migrations 테이블에서 사용 가능한 버전 정보를 기반으로 데이터 저장소에 적용된 모든 마이그레이션 목록입니다. 배포에 적용된 현재 데이터베이스 스키마 버전을 검토하려면 제품 메뉴에서 Mattermost 정보 를 선택하세요.

활성 검색 백엔드#

검색에 사용되는 현재 활성 백엔드의 읽기 전용 표시입니다. 값에는 none, database, elasticsearch 또는 bleve 가 포함될 수 있습니다.

읽기 복제본#

참고

plans-img-yellow Enterprise 및 Professional 플랜에서만 사용 가능

읽기 복제본 데이터베이스의 연결 문자열을 지정합니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".SqlSettings.DataSourceReplicas": []

  • 환경 변수: MM_SQLSETTINGS_DATASOURCEREPLICAS

참고

  • 배열의 각 데이터베이스 연결 문자열은 데이터 소스 설정에 사용된 것과 동일한 형식이어야 합니다.

  • Mattermost가 여러 데이터베이스 인스턴스에서 읽기 쿼리의 부하를 분산할 수 있도록 배열에서 여러 읽기 복제본을 공백으로 구분합니다. 예: MM_SQLSETTINGS_DATASOURCEREPLICAS=dc-1 dc-2

AWS 고가용성 RDS 클러스터 배포#

AWS 고가용성 RDS 클러스터 배포의 경우, AWS/RDS가 처리하는 장애 조치/부하 분산을 우회하기 위해(쓰기 트래픽 제외) 이 구성 설정을 RDS 클러스터 내의 기본 읽기 전용 노드 엔드포인트로 직접 지정하세요. Mattermost는 읽기 전용 연결을 균형 조정하는 자체 방법을 가지고 있으며, 해당 노드가 실패할 경우 해당 쿼리를 데이터 소스/쓰기+읽기 연결로도 균형 조정할 수 있습니다. 자세한 내용은 고가용성 데이터베이스 구성 문서를 참조하세요.

검색 복제본#

참고

plans-img-yellow Enterprise 및 Professional 플랜에서만 사용 가능

검색 복제본 데이터베이스의 연결 문자열을 지정합니다. 검색 복제본은 읽기 복제본과 유사하지만 검색 쿼리 처리에만 사용됩니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".SqlSettings.DataSourceSearchReplicas": []

  • 환경 변수: MM_SQLSETTINGS_DATASOURCESEARCHREPLICAS

참고

배열의 각 데이터베이스 연결 문자열은 데이터 소스 설정에 사용된 것과 동일한 형식이어야 합니다.

AWS 고가용성 RDS 클러스터 배포#

AWS 고가용성 RDS 클러스터 배포의 경우, AWS/RDS가 처리하는 장애 조치/부하 분산을 우회하기 위해(쓰기 트래픽 제외) 이 구성 설정을 RDS 클러스터 내의 기본 읽기 전용 노드 엔드포인트로 직접 지정하세요. Mattermost는 읽기 전용 연결을 균형 조정하는 자체 방법을 가지고 있으며, 해당 노드가 실패할 경우 해당 쿼리를 데이터 소스/쓰기+읽기 연결로도 균형 조정할 수 있습니다. 자세한 내용은 고가용성 데이터베이스 구성 문서를 참조하세요.

복제본 지연 설정#

참고

plans-img-yellow Enterprise 플랜에서만 사용 가능

문자열 배열 입력은 단일 복제본 인스턴스의 복제본 지연을 측정하기 위한 데이터베이스의 연결 문자열과 사용자 정의 SQL 쿼리를 지정합니다.

이러한 설정은 바이너리 로그 거리/트랜잭션 큐 길이와 복제본이 따라잡는 데 걸리는 시간을 기반으로 절대 지연을 모니터링합니다.

문자열 배열 입력은 다음으로 구성됩니다:

  • DataSource: 데이터베이스 인스턴스에 연결하기 위한 데이터베이스 자격 증명입니다.

  • QueryAbsoluteLag: 단일 행을 반환해야 하는 일반 SQL 쿼리입니다. 첫 번째 열은 Prometheus 메트릭의 노드 값이어야 하며, 두 번째 열은 절대 지연을 측정하는 데 사용되는 지연 값이어야 합니다.

  • QueryTimeLag: 단일 행을 반환해야 하는 일반 SQL 쿼리입니다. 첫 번째 열은 Prometheus 메트릭의 노드 값이어야 하며, 두 번째 열은 시간 지연을 측정하는 데 사용되는 지연 값이어야 합니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".SqlSettings.ReplicaLagSettings": []

  • 환경 변수: MM_SQLSETTINGS_REPLICALAGSETTINGS

참고

  • QueryAbsoluteLagQueryTimeLag 쿼리는 단일 행을 반환해야 합니다.

  • 이를 적절히 모니터링하려면 Mattermost용 성능 모니터링 을 설정해야 합니다.

  1. 데이터베이스 유형에 따라 복제본 지연 메트릭을 구성하세요. 각 데이터베이스 유형에 대한 구성 세부 정보는 다음 탭을 참조하세요.

아래 강조된 구성을 SqlSettings.ReplicaLagSettings 배열에 추가하세요. AWS Aurora 노드의 복제 통계는 클러스터의 구성원인 모든 서버 인스턴스에서 볼 수 있으므로 한 번만 추가하면 됩니다. DataSource 를 그룹의 단일 노드를 가리키도록 변경해야 합니다.

Aurora 복제 통계에 대한 자세한 내용은 AWS Aurora 문서 를 참조하세요.

예시:

{
  "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=<>"
        }
      ]
  }
}

아래 강조된 구성을 SqlSettings.ReplicaLagSettings 배열에 추가하세요. 모든 노드의 복제 통계는 MySQL 복제 그룹의 구성원인 모든 서버 인스턴스에서 공유되므로 한 번만 추가하면 됩니다. DataSource 를 그룹의 단일 노드를 가리키도록 변경해야 합니다.

그룹 복제 통계에 대한 자세한 내용은 MySQL 문서 를 참조하세요.

예시:

{
  "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": ""
        }
      ]
  }
}
  1. 아래 강조된 구성을 SqlSettings.ReplicaLagSettings 배열에 추가하세요. 이 쿼리는 클러스터의 기본 노드에서 실행되어야 하며, 이를 위해 DataSource 를 구성한 SqlSettings.DataSource 설정과 일치하도록 변경하세요.

pg_stat_replication에 대한 자세한 내용은 PostgreSQL 문서 를 참조하세요.

예시:

{
  "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": ""
        }
      ]
  }
}
  1. 데이터베이스 사용자에게 pg_monitor 권한을 부여하세요. 이 사용자는 위에서 DataSource 문자열에 구성한 것과 동일한 사용자여야 합니다.

역할에 대한 자세한 내용은 PostgreSQL 문서 를 참조하세요.

sudo -u postgres psql
postgres=# GRANT pg_monitor TO mmuser;
  1. 구성을 저장하고 모든 Mattermost 노드를 재시작하세요.

  2. Mattermost를 모니터링하는 Grafana 인스턴스로 이동하여 Mattermost Performance Monitoring v2 대시보드를 엽니다.

  3. QueryTimeLag 차트는 기존 Replica Lag 차트를 활용하여 이미 설정되어 있습니다. QueryAbsoluteLag 메트릭을 사용하는 경우 Replica Lag 차트를 복제하고 쿼리를 아래의 절대 지연 메트릭을 사용하도록 편집하고 제목을 Replica Lag Absolute 로 수정하세요.

mattermost_db_replica_lag_abs{instance=~"$server"}
Grafana 내에서 차트를 복제하는 방법을 보여주는 스크린샷 복제된 grafana 차트에 적용할 특정 편집 사항을 보여주는 스크린샷

복제본 모니터 간격(초)#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

비정상 복제본의 활성 상태 확인을 위해 모니터링하는 빈도를 지정합니다. Mattermost는 복제본이 활성 상태인 경우 동적으로 선택합니다.

숫자 입력. 기본값은 5초입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".SqlSettings.ReplicaMonitorIntervalSeconds": 5

  • 환경 변수: MM_SQLSETTINGS_REPLICAMONITORINTERVALSECONDS


Elasticsearch#

plans-img 엔터프라이즈 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

Elasticsearch는 최적화된 검색 성능을 제공하고 성능 저하 및 시간 초과를 방지하여 엔터프라이즈 규모의 배포를 지원합니다. 제품 문서에서 Elasticsearch 에 대해 자세히 알아보세요.

시스템 콘솔 > 환경 > Elasticsearch 에서 Mattermost가 배포된 Elasticsearch 환경을 구성할 수 있습니다. 다음 표에 설명된 대로 config.json 파일을 편집할 수도 있습니다. 이 섹션의 구성 설정 변경 사항은 적용되기 전에 서버 재시작이 필요합니다.

Elasticsearch 인덱싱 활성화#

새 게시물을 자동으로 인덱싱하도록 Mattermost를 구성합니다.

  • true: 새 메시지의 인덱싱이 자동으로 수행됩니다.

  • false: (기본값) Elasticsearch 인덱싱이 비활성화되어 새 메시지가 인덱싱되지 않습니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.EnableIndexing: false",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_ENABLEINDEXING

참고

  • 핵심 검색은 관계형 데이터베이스에서 이루어지며 약 2-3백만 개의 게시물과 파일 항목 미만의 배포를 위한 것입니다. 이 규모를 초과하는 경우 검색 쿼리를 위한 Elasticsearch 활성화 를 활성화하는 것이 매우 권장됩니다.

  • Mattermost 서버가 250만 개 이상의 게시물과 파일 항목에 도달할 것으로 예상되는 경우, 300만 개의 게시물에 도달하기 전에 최적의 검색 성능을 위해 Elasticsearch를 활성화하는 것이 좋습니다.

  • 300만 개 이상의 게시물이 있는 배포의 경우, 메시지 검색@멘션 에서 타임아웃과 같은 심각한 성능 문제를 방지하기 위해 Elasticsearch가 필요합니다.

  • 인덱스가 생성된 후 인덱싱이 비활성화되었다가 다시 활성화된 경우, 완전한 검색 결과를 보장하기 위해 인덱스를 삭제하고 다시 구축하세요.

백엔드 유형#

검색 백엔드의 유형입니다.

  • elasticsearch - (기본값)

  • opensearch - AWS Opensearch 고객에게 필요합니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.Backend: elasticsearch",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_BACKEND

중요

Mattermost v9.11은 Elasticsearch v8 에 대한 지원과 Opensearch v1.x 및 v2.x 에 대한 베타 지원을 도입했습니다.

  • Mattermost는 Elasticsearch v7.17+를 지원합니다. 그러나 Elasticsearch v7 인스턴스를 v8.x로 업그레이드하는 것을 권장합니다. 자세한 내용은 Elasticsearch 업그레이드 문서를 참조하세요.

  • 와일드카드 작업을 활성화하려면 Elasticsearch v8을 사용하는 고객은 elasticsearch.yml 에서 action.destructive_requires_namefalse 로 설정해야 합니다.

AWS Elasticsearch 고객

공식 AWS Elasticsearch v8 클라이언트는 Elasticsearch v7.11 이상에서만 작동합니다. 이는 AWS Elasticsearch v7.10.x를 사용하는 고객에게 호환성이 깨지는 변경 사항입니다. AWS Elasticsearch를 사용 중이라면 AWS Opensearch 로 업그레이드해야 합니다. 자세한 내용은 AWS Amazon Opensearch 업그레이드 문서를 참조하세요.

AWS Elasticsearch를 사용 중이라면 다음을 수행해야 합니다:

  1. 향후 호환성을 위해 AWS Opensearch로 업그레이드하세요. 자세한 내용은 Opensearch 업그레이드 문서를 참조하세요.

  2. Opensearch에서 “호환성 모드”를 비활성화하세요.

  3. Mattermost 서버를 업그레이드하세요.

  4. mmctl config set 를 사용하거나 config.json 파일을 수동으로 편집하여 기본 ElasticsearchSettings.Backend 구성 값을 elasticsearch 에서 opensearch 로 변경하세요. 이 값은 시스템 콘솔을 사용하여 변경할 수 없습니다. 추가 세부 정보는 Mattermost Elasticsearch 백엔드 유형 문서를 참조하세요.

  5. Mattermost 서버를 재시작하세요.

서버 연결 주소#

Elasticsearch 서버의 주소입니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.ConnectionUrl",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_CONNECTIONURL

CA 경로#

Elasticsearch 서버의 사용자 정의 인증 기관 인증서에 대한 선택적 경로입니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.CA",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_CA

참고

  • Mattermost v7.8부터 사용 가능합니다. 인증서 경로는 /opt/mattermost/data/elasticsearch/ 이어야 하며 시스템 콘솔에서 ./elasticsearch/cert.pem 으로 구성해야 합니다.

  • 기본 인증 자격 증명과 함께 사용하거나 대체할 수 있습니다. 운영 체제의 기본 인증 기관 인증서를 사용하려면 이 설정을 비워두세요.

클라이언트 인증서 경로#

Mattermost v7.8부터 사용 가능합니다. 기본 인증 자격 증명과 함께 사용하거나 대체할 수 있습니다.

Elasticsearch 서버 연결을 위한 PEM 형식의 선택적 클라이언트 인증서입니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.ClientCert",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_CLIENTCERT

클라이언트 인증서 키 경로#

Mattermost v7.8부터 사용 가능합니다. 기본 인증 자격 증명과 함께 사용하거나 대체할 수 있습니다.

PEM 형식의 클라이언트 인증서를 위한 선택적 키입니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.ClientKey",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_CLIENTKEY

TLS 검증 건너뛰기#

TLS 연결을 위한 인증서 단계를 건너뛸 수 있습니다.

  • true: TLS 연결을 위한 인증서 검증 단계를 건너뜁니다.

  • false: (기본값) Mattermost는 인증서 검증을 건너뛰지 않습니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.SkipTLSVerification: false",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_SKIPTLSVERIFICATION

서버 사용자 이름#

(선택 사항) Elasticsearch 서버 인증을 위한 사용자 이름입니다.

문자열 입력입니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.UserName",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_USERNAME

서버 비밀번호#

(선택 사항) Elasticsearch 서버 인증을 위한 비밀번호입니다.

문자열 입력입니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.Password",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_PASSWORD

클러스터 스니핑 활성화#

Mattermost가 클러스터의 모든 데이터 노드를 자동으로 찾아 연결하도록 구성합니다.

  • true: 스니핑이 클러스터의 모든 데이터 노드를 자동으로 찾아 연결합니다.

  • false: (기본값) 클러스터 스니핑이 비활성화됩니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.Sniff: false",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_SNIFF

시스템 콘솔에서 연결 테스트 버튼을 선택하여 Mattermost와 Elasticsearch 서버 간의 연결을 확인합니다.

대량 인덱싱#

Mattermost가 데이터베이스의 모든 기존 게시물을 가장 오래된 것부터 최신 순으로 대량 인덱싱하도록 구성합니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: 해당 없음

  • 환경 변수: 해당 없음

참고

  • 대량 인덱싱 전에 항상 인덱스 제거 를 수행하세요.

  • 시스템 콘솔에서 지금 인덱싱 버튼을 선택하여 모든 게시물의 대량 인덱싱을 시작하고 진행 중인 모든 인덱스 작업을 검토합니다.

  • 인덱싱 중에도 Elasticsearch를 사용할 수 있지만, 인덱싱 작업이 완료될 때까지 검색 결과가 불완전할 수 있습니다.

  • 진행 중인 인덱싱 작업이 취소되면 인덱스와 검색 결과가 불완전해집니다.

채널 인덱스 재구축#

채널 인덱스를 제거하고 데이터베이스의 모든 채널을 가장 오래된 것부터 최신 순으로 다시 인덱싱합니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: 해당 없음

  • 환경 변수: 해당 없음

시스템 콘솔에서 채널 인덱스 재구축 버튼을 선택하여 채널 인덱스를 제거합니다. 이 프로세스를 시작하기 전에 대량 인덱싱 테이블을 통해 다른 인덱싱 작업이 진행 중이 아닌지 확인하세요. 인덱싱 중에는 채널 자동 완성이 사용 가능하지만, 인덱싱 작업이 완료될 때까지 검색 결과가 불완전할 수 있습니다.

인덱스 제거#

전체 Elasticsearch 인덱스를 제거합니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: 해당 없음

  • 환경 변수: 해당 없음

시스템 콘솔에서 인덱스 제거 버튼을 선택하여 인덱스를 제거합니다. 인덱스를 제거한 후 지금 인덱싱 버튼을 선택하여 새 인덱스를 생성합니다.

제거 시 건너뛸 인덱스#

인덱스 제거 시 무시할 인덱스 이름을 지정합니다. 여러 인덱스 이름은 쉼표로 구분하세요.

인덱스 이름 문자 시퀀스를 일치시키려면 별표(*)를 사용하세요.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ElasticsearchSettings.IgnoredPurgeIndexes

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_IGNOREDPURGEINDEXES

검색 쿼리에 Elasticsearch 사용#

중요

  • 핵심 검색은 관계형 데이터베이스에서 이루어지며 약 2-3백만 개의 게시물과 파일 항목 미만의 배포를 위한 것입니다. 그 이상의 규모에서는 검색 쿼리에 Elasticsearch를 사용하는 것이 강력히 권장됩니다.

  • Mattermost 서버가 250만 개 이상의 게시물과 파일 항목에 도달할 것으로 예상된다면, 300만 개의 게시물에 도달하기 전에 최적의 검색 성능을 위해 Elasticsearch를 사용하는 것이 좋습니다.

  • 300만 개 이상의 게시물이 있는 배포의 경우, 메시지 검색@멘션 에서 타임아웃과 같은 심각한 성능 문제를 방지하기 위해 전용 인덱싱 이 있는 Elasticsearch와 클러스터 지원 을 통한 확장된 사용 리소스가 필요합니다.

최신 인덱스를 사용하여 모든 검색 쿼리에 Elasticsearch를 사용하도록 Mattermost를 구성합니다.

  • true: 최신 인덱스를 사용하여 모든 검색 쿼리에 Elasticsearch가 사용됩니다. 기존 메시지 데이터베이스의 대량 인덱스가 완료될 때까지 검색 결과가 불완전할 수 있습니다.

  • false: (기본값) 검색 쿼리에 데이터베이스 검색이 사용됩니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.EnableSearching: false",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_ENABLESEARCHING

인덱스가 생성된 후 인덱싱이 비활성화되었다가 다시 활성화된 경우, 완전한 검색 결과를 보장하기 위해 인덱스를 삭제하고 다시 구축하세요.

자동완성 쿼리에 Elasticsearch 사용#

최신 인덱스를 사용하여 사용자 및 채널에 대한 모든 자동완성 쿼리에 Elasticsearch를 사용하도록 Mattermost를 구성합니다.

  • true: 최신 인덱스를 사용하여 사용자 및 채널에 대한 모든 자동완성 쿼리에 Elasticsearch가 사용됩니다.

  • false: (기본값) 데이터베이스 자동완성이 사용됩니다.

  • 시스템 구성 경로: 환경 > Elasticsearch

  • config.json 설정: ".Elasticsearchsettings.EnableAutocomplete: false",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_ENABLEAUTOCOMPLETE

기존 사용자 및 채널 데이터베이스의 대량 인덱스가 완료될 때까지 자동완성 결과가 불완전할 수 있습니다.

게시물 인덱스 복제본#

각 게시물 인덱스에 사용할 복제본 수입니다.

숫자 입력. 기본값은 1 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.PostIndexReplicas: 1",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_POSTINDEXREPLICAS

참고

  • 이 설정이 변경되면 변경된 구성은 새로 생성된 인덱스에만 적용됩니다. 기존 인덱스에 변경사항을 적용하려면 이 설정을 변경한 후 인덱스를 삭제하고 다시 구축해야 합니다.

  • n 개의 데이터 노드가 있는 경우, 각 인덱스의 샤드당 복제본 수는 n-1 이어야 합니다.

  • Elasticsearch 클러스터의 노드 수가 변경되면 이 구성 설정과 Channel Index ReplicasUser Index Replicas 도 그에 맞게 업데이트해야 합니다.

게시물 인덱스 샤드#

각 게시물 인덱스에 사용할 샤드 수입니다.

숫자 입력. 기본값은 1 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.PostIndexShards: 1",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_POSTINDEXSHARDS

참고

이 구성 설정이 변경되면 변경된 구성은 새로 생성된 인덱스에만 적용됩니다. 기존 인덱스에 변경사항을 적용하려면 이 설정을 변경한 후 인덱스를 삭제하고 다시 구축해야 합니다.

채널 인덱스 복제본#

각 채널 인덱스에 사용할 복제본 수입니다.

숫자 입력. 기본값은 1 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.ChannelIndexReplicas: 1",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_CHANNELINDEXREPLICAS

참고

n 개의 데이터 노드가 있는 경우, 각 인덱스의 샤드당 복제본 수는 n-1 이어야 합니다. Elasticsearch 클러스터의 노드 수가 변경되면 이 구성 설정과 Post Index ReplicasUser Index Replicas 도 그에 맞게 업데이트해야 합니다.

채널 인덱스 샤드#

각 채널 인덱스에 사용할 샤드 수입니다.

숫자 입력. 기본값은 1 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.ChannelIndexShards: 1",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_CHANNELINDEXSHARDS

사용자 인덱스 복제본#

각 사용자 인덱스에 사용할 복제본 수입니다.

숫자 입력. 기본값은 1 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.UserIndexReplicas: 1",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_USERINDEXREPLICAS

참고

n 개의 데이터 노드가 있는 경우, 각 인덱스의 샤드당 복제본 수는 n-1 이어야 합니다. Elasticsearch 클러스터의 노드 수가 변경되면 이 구성 설정과 Post Index ReplicasUser Index Replicas 도 그에 맞게 업데이트해야 합니다.

사용자 인덱스 샤드#

각 사용자 인덱스에 사용할 샤드 수입니다.

숫자 입력. 기본값은 1 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.UserIndexShards: 1",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_USERINDEXSHARDS

검색 인덱스 집계#

이 설정에서 지정한 일수보다 오래된 Elasticsearch 인덱스는 일일 예약 작업 중에 집계됩니다.

숫자 입력. 기본값은 365 일입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.AggregatePostsAfterDays: 365",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_AGGREGATEPOSTSAFTERDAYS

참고

데이터 보존Elasticsearch 를 사용하는 경우, 데이터 보존 정책보다 큰 값으로 이 설정을 구성하세요.

게시물 집계 시작 시간#

일일 예약된 집계 작업의 시작 시간입니다.

서버의 현지 시간을 기준으로 HH:MM 형식의 24시간 타임스탬프여야 합니다.

기본값은 03:00 (오전 3시)입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.PostsAggregatorJobStartTime: 03:00",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_POSTSAGGREGATORJOBSTARTTIME

인덱스 접두사#

Elasticsearch 인덱스 이름에 추가되는 접두사입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.IndexPrefix",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_INDEXPREFIX

참고

이 설정을 사용하면 Mattermost가 생성한 모든 Elasticsearch 인덱스에 이 접두사가 부여됩니다. 여러 Mattermost 배포가 인덱스 이름 충돌 없이 Elasticsearch 클러스터를 공유할 수 있도록 다른 접두사를 설정할 수 있습니다.

전역 검색 접두사#

동일한 index prefix 를 가진 여러 Elasticsearch 인덱스에서 전역 검색을 활성화합니다.

이는 Elasticsearch 인스턴스가 크로스 클러스터 복제를 사용하여 데이터를 공유하는 여러 데이터 센터 설정에 유용합니다. 분산된 인덱스에서 더 쉽고 통합된 검색이 가능합니다.

값은 IndexPrefix 의 접두사여야 합니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.GlobalSearchPrefix",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_GLOBALSEARCHPREFIX

실시간 인덱싱 배치 크기#

Elasticsearch 인덱스에 게시물이 추가되기 전에 필요한 새 게시물의 수입니다. 인덱스에 추가되면 게시물이 검색 가능해집니다.

초당 1개 이상의 게시물이 있는 서버에서는 20초 동안의 평균 게시물 수로 이 값을 설정하는 것을 권장합니다.

숫자 입력. 기본값은 1 입니다. 모든 게시물은 생성되는 대로 동기적으로 인덱싱됩니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.LiveIndexingBatchSize: 1",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_LIVEINDEXINGBATCHSIZE

참고

초당 1개 이상의 게시물을 처리하는 설치에서 Elasticsearch 클러스터의 속도 제한이나 리소스 제한에 도달하지 않도록 이 값을 증가시킬 필요가 있을 수 있습니다.

What exactly happens when I increase this value?

주요 영향은 게시물 임계값에 도달한 후 Elasticsearch에 인덱싱되어 Mattermost 내에서 검색 가능해진다는 것입니다. 따라서 더 큰 서버에 대한 권장 사항을 기반으로 설정하면 게시물을 작성한 후 평균적으로 ~10-20초 동안 검색으로 찾을 수 없습니다. 실제로는 이렇게 빠르게 게시물을 검색 하는 사용자가 제한적이기 때문에 사용자들이 이 영향을 보거나 느낄 수 없습니다. Elasticsearch 서버 사양에 따라 이 값을 더 낮거나 높은 평균으로 설정할 수 있습니다.

바쁜 기간에는 트래픽이 더 많이 발생하여 더 많은 게시물이 생성되고 인덱스 번호에 더 빨리 도달하므로 이 지연이 더 빨라집니다. 느린 기간에는 그 반대가 될 것으로 예상됩니다.

서버에 적합한 숫자를 찾는 방법

  1. 서버가 매분 생성하는 게시물 수를 이해해야 합니다. 아래 쿼리를 실행하여 서버의 평균 분당 게시물 수를 계산하세요.

    이 쿼리는 부하가 클 수 있으므로 피크 시간이 아닌 시간에 실행하는 것을 권장합니다. 또한 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;
    
  2. 환경에 적합한 인덱스 창을 결정하고 평균 분당 게시물 수를 그 값으로 나누세요. 10-20초를 권장합니다. 평균적으로 분당 600 개의 게시물이 있고 20초마다 인덱싱하려는 경우(60초 / 20초 = 3) 600 / 3 을 계산하여 200 이라는 숫자를 얻습니다. 200개의 게시물 후에 Mattermost는 게시물을 Elasticsearch에 인덱싱합니다. 따라서 평균적으로 검색 가능성에 20초의 지연이 발생합니다.

  3. LiveIndexingBatchSize 설정을 수정하려면 config.json 을 편집하거나 mmctl을 실행하세요

    ``config.json`` 에서

    {
      "ElasticsearchSettings": {
        "LiveIndexingBatchSize": 200
      }
    }
    

    mmctl을 통해

    mmctl config set ElasticsearchSettings.LiveIndexingBatchSize 200
    

    환경 변수를 통해

    MM_ELASTICSEARCHSETTINGS_LIVEINDEXINGBATCHSIZE = 200
    
  4. Mattermost 서버를 재시작하세요.

배치 크기#

대량 인덱싱 작업 중 단일 배치의 게시물 수입니다.

숫자 입력. 기본값은 10000 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.BatchSize :10000",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_BATCHSIZE

요청 시간 초과#

Elasticsearch 호출의 시간 초과(초)입니다.

초 단위 숫자 입력. 기본값은 30 초입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.RequestTimeoutSeconds :30",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_REQUESTTIMEOUTSECONDS

추적#

Elasticsearch 추적 오류를 출력하기 위한 옵션입니다.

  • error: Elasticsearch 클라이언트 초기화 시 오류 추적을 생성하고, 오류를 반환하는 모든 템플릿 생성 또는 검색 쿼리를 오류 메시지의 일부로 출력합니다.

  • all: 드라이버에 대한 세 가지 추적(오류, 추적 및 정보)을 생성하고, 쿼리가 드라이버의 추적 로그 레벨의 일부가 되므로 쿼리를 출력하지 않습니다.

  • not specified: (기본값) 오류 추적이 생성되지 않습니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".Elasticsearchsettings.Trace",

  • 환경 변수: MM_ELASTICSEARCHSETTINGS_TRACE


파일 저장소#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

시스템 콘솔 > 환경 > 파일 저장소 로 이동하거나 다음 표에 설명된 대로 config.json 파일을 편집하여 파일 저장소 설정을 구성하세요.

Mattermost Academy Learn about file storage

참고

Mattermost는 현재 로컬 파일시스템과 Amazon S3 또는 S3 호환 컨테이너에 파일을 저장하는 것을 지원합니다. MinIODigital Ocean Spaces 제품으로 Mattermost를 테스트했지만, 시장의 모든 S3 호환 컨테이너는 아닙니다. 다른 S3 호환 컨테이너를 사용하려는 경우, 자체 테스트를 완료하는 것을 권장합니다.

파일 저장소 시스템#

사용되는 파일 저장소 시스템 유형입니다. 로컬 파일 시스템 또는 Amazon S3 중 하나일 수 있습니다.

  • local: (기본값) 파일과 이미지가 지정된 로컬 파일 디렉토리에 저장됩니다.

  • amazons3: 파일과 이미지가 제공된 액세스 키, 버킷 및 리전 필드를 기반으로 Amazon S3에 저장됩니다. 드라이버는 MinIO(Beta) 및 Digital Ocean Spaces와 호환됩니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json setting: ".FileSettings.DriverName:  local”,

  • 환경 변수: MM_FILESETTINGS_DRIVERNAME

로컬 저장소 디렉토리#

파일 저장소 시스템local 로 설정되었을 때 파일이 기록되는 로컬 디렉토리입니다. Mattermost가 실행 중인 사용자가 쓰기 권한을 가진 모든 디렉토리가 될 수 있으며, Mattermost가 설치된 디렉토리를 기준으로 합니다.

기본값은 ./data/ 입니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.Directory",

  • 환경 변수: MM_FILESETTINGS_DIRECTORY

파일 저장소 시스템amazons3 로 설정된 경우 이 설정은 효과가 없습니다.

최대 파일 크기#

메시지 첨부 파일과 플러그인 업로드를 위한 최대 파일 크기입니다. 이 값은 시스템 콘솔에서는 메비바이트로, config.json 파일에서는 바이트로 지정해야 합니다.

기본값은 104857600 바이트(100 메비바이트)입니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.MaxFileSize: 104857600",

  • 환경 변수: MM_FILESETTINGS_MAXFILESIZE

참고

  • 서버 메모리가 설정 선택을 지원할 수 있는지 확인하세요. 큰 파일 크기는 네트워크 중단으로 인한 서버 충돌 및 업로드 실패의 위험을 증가시킵니다.

  • 플러그인 파일 업로드서버로부터 잘못된 응답을 받았습니다 오류는 일반적으로 MaxFileSize 가 플러그인 파일 업로드를 지원하기에 충분히 크지 않거나 프록시 설정이 충분하지 않을 수 있음을 나타냅니다.

  • Mattermost 앞에 프록시나 로드 밸런서를 사용하는 경우 다음 프록시 설정을 적절히 조정해야 합니다:

    • NGINX의 경우 client_max_body_size 를 사용하세요.

    • Apache의 경우 LimitRequestBody 를 사용하세요.

문서 내용 검색 활성화#

메시지에 첨부된 문서의 내용을 검색할 수 있도록 합니다.

  • true: (기본값) 문서 내용으로 검색할 수 있습니다.

  • false: 문서 내용으로 검색할 수 없습니다. 문서 내용 검색이 비활성화되면 사용자는 파일 이름으로만 파일을 검색할 수 있습니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.ExtractContent: true",

  • 환경 변수: MM_FILESETTINGS_EXTRACTCONTENT

참고: Mattermost Server v5.35로 업그레이드하기 전에 공유된 파일의 문서 내용 검색 결과는 mmctl 를 사용하여 추출 명령을 실행할 때까지 불완전할 수 있습니다. 이 명령을 실행하지 않으면 사용자는 파일 이름으로만 이전 파일을 검색할 수 있습니다.

PDF, DOCX, ODT 외에도 DOC, RTF, XML, HTML과 같은 파일 형식을 포함하도록 Mattermost의 내용 검색 지원을 확장하려면 다음 의존성 을 선택적으로 설치할 수 있습니다:

  • tidy: HTML 문서의 내용을 검색하는 데 사용됩니다.

  • wv: DOC 문서의 내용을 검색하는 데 사용됩니다.

  • popplerutils: PDF 문서의 내용을 추출할 때 서버 성능을 크게 향상시키는 데 사용됩니다.

  • unrtf: RTF 문서의 내용을 검색하는 데 사용됩니다.

  • JusText: HTML 문서를 검색하는 데 사용됩니다.

이러한 의존성을 설치하지 않기로 선택하면 추출할 수 없는 문서에 대한 로그 항목이 표시됩니다. 추출할 수 없는 문서는 내용 추출이 계속 진행될 수 있도록 건너뛰고 로그에 기록됩니다.

ZIP 파일 내 문서 내용 검색 활성화#

메시지에 첨부된 압축된 ZIP 파일의 내용을 검색할 수 있도록 합니다.

  • true: ZIP 파일 내 문서 내용이 검색 결과에 반환됩니다. 대용량 파일의 경우 서버 성능에 영향을 미칠 수 있습니다. 지정된 로컬 파일 디렉토리.

  • false: (기본값) ZIP 파일 내 문서 내용이 검색 결과에 반환되지 않습니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.ArchiveRecursion: false",

  • 환경 변수: MM_FILESETTINGS_ARCHIVERECURSION

참고: ZIP 파일 내 문서 내용 검색이 가능하며, 모바일 지원이 곧 제공될 예정입니다. 문서 내용 검색은 서버에 부하를 추가합니다. 대규모 배포나 많은 대용량 텍스트 문서를 공유하는 팀의 경우, 하드웨어 요구사항 을 검토하고 프로덕션 환경에서 활성화하기 전에 스테이징 환경에서 이 기능을 테스트하는 것을 권장합니다.

Amazon S3 버킷#

S3 호환 객체 스토리지 인스턴스의 버킷 이름입니다.

S3 호환 버킷 이름이 포함된 문자열입니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.AmazonS3Bucket",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3BUCKET

Amazon S3 경로 접두사#

AWS에서 Amazon S3 버킷 에 대해 선택한 접두사입니다.

경로 접두사가 포함된 문자열입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".FileSettings.AmazonS3PathPrefix",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3PATHPREFIX

Amazon S3 리전#

AWS에서 Amazon S3 버킷 을 생성할 때 선택한 AWS 리전입니다.

버킷이 포함된 AWS 리전이 포함된 문자열입니다. 리전이 설정되지 않은 경우 Mattermost는 AWS에서 적절한 리전을 가져오려고 시도하며, 찾을 수 없는 경우 us-east-1 로 설정합니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: `".FileSettings.AmazonS3Region",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3REGION

MinIO 또는 Digital Ocean Spaces의 경우 이 설정을 비워두세요.

Amazon S3 액세스 키 ID#

S3 호환 스토리지 인스턴스의 액세스 키가 포함된 문자열입니다. EC2 관리자가 액세스 키 ID를 제공할 수 있습니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.AmazonS3AccessKeyId",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3ACCESSKEYID

참고

Amazon S3와 함께 Amazon S3 IAM Role 를 사용하지 않는 한 액세스에 필요합니다.

Amazon S3 엔드포인트#

S3 호환 인스턴스의 호스트명입니다.

S3 호환 스토리지 인스턴스의 호스트명이 포함된 문자열입니다. 기본값은 s3.amazonaws.com 입니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.AmazonS3Endpoint: s3.amazonaws.com",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3ENDPOINT

참고

Digital Ocean Spaces의 경우 호스트명을 <region>.digitaloceanspaces.com 로 설정해야 합니다. 여기서 <region> 은 Space 설정 시 선택한 리전의 약어입니다. nyc3, ams3 또는 sgp1 일 수 있습니다.

Amazon S3 시크릿 액세스 키#

Amazon S3 액세스 키 ID와 연결된 시크릿 액세스 키입니다.

S3 호환 스토리지 인스턴스의 시크릿 액세스 키가 포함된 문자열입니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.AmazonS3SecretAccessKey",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3SECRETACCESSKEY

보안 Amazon S3 연결 활성화#

보안 Amazon S3 연결을 활성화하거나 비활성화합니다.

  • true: (기본값) 보안 Amazon S3 연결만 활성화합니다.

  • false: Amazon S3에 대한 비보안 연결을 허용합니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.AmazonS3SSL: true",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3SSL

Amazon S3 서명 v2#

기본적으로 Mattermost는 AWS API 호출에 서명 v4를 사용하지만, 일부 상황에서는 v2가 필요합니다.

  • true: 서명 v2 서명 프로세스를 사용합니다.

  • false: (기본값) 서명 v4 서명 프로세스를 사용합니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".FileSettings.AmazonS3SignV2: false",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3SIGNV2

서명 v2 서명 프로세스를 사용해야 하는 경우에 대한 정보는 AWS 문서를 참조하세요.

Amazon S3 서버 측 암호화 활성화#

Amazon S3 서버 측 암호화를 활성화합니다.

  • true: Amazon S3 관리형 키를 사용한 서버 측 암호화로 Amazon S3의 파일을 암호화합니다.

  • false: (기본값) Amazon S3의 파일을 암호화하지 않습니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.AmazonS3SSE: false",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3SSE

Amazon S3 디버깅 활성화#

시스템 로그에 추가 디버깅 정보를 캡처하기 위해 Amazon S3 디버깅을 활성화하거나 비활성화합니다.

  • true: 추가 디버깅 정보가 시스템 로그에 기록됩니다.

  • false: (기본값) 시스템 로그에 Amazon S3 디버깅 정보가 포함되지 않습니다. 일반적으로 프로덕션 환경에서는 false 로 설정합니다.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: ".FileSettings.AmazonS3Trace: false",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3TRACE

설정을 검증하고 사용자가 서버에 접근할 수 있는지 확인하려면 시스템 콘솔에서 Test Connection 버튼을 선택하세요.

Amazon S3 스토리지 클래스#

일부 Amazon S3 호환 스토리지 솔루션은 업로드 요청에 스토리지 클래스 매개변수가 있어야 하며, 그렇지 않으면 요청이 거부됩니다. S3 호환 솔루션에서 요구하는 스토리지 클래스로 이 스토리지 클래스를 구성하세요.

S3 호환 스토리지 솔루션에 업로드할 때 사용할 스토리지 클래스입니다.

문자열 입력. 기본값은 빈 문자열 "" 입니다. 구성된 연결을 테스트하려면 Test Connection 을 선택하세요.

  • 시스템 구성 경로: 환경 > 파일 저장소

  • config.json 설정: .FileSettings.AmazonS3StorageClass: "",

  • 환경 변수: MM_FILESETTINGS_AMAZONS3STORAGECLASS

참고

대부분의 Amazon S3 호환 스토리지 솔루션은 스토리지 클래스가 제공되지 않을 때 STANDARD 를 기본 스토리지 클래스로 할당합니다. 지원되는 스토리지 클래스에 대한 자세한 내용은 Amazon S3 스토리지 클래스 문서를 참조하세요.

Amazon S3 내보내기 스토리지 클래스#

S3 호환 스토리지 솔루션으로 내보낼 때 사용할 스토리지 클래스입니다.

문자열 입력. 기본값은 빈 문자열 "" 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: .FileSettings.ExportAmazonS3StorageClass: "",

  • 환경 변수: MM_FILESETTINGS_EXPORTAMAZONS3STORAGECLASS

참고

대부분의 Amazon S3 호환 스토리지 솔루션은 스토리지 클래스가 제공되지 않을 때 STANDARD 를 기본 스토리지 클래스로 할당합니다. 지원되는 스토리지 클래스에 대한 자세한 내용은 Amazon S3 스토리지 클래스 문서를 참조하세요.

Amazon S3 요청 시간 초과#

Amazon S3 스토리지에 대한 요청이 시간 초과되기까지의 시간(밀리초)입니다.

기본값은 30000(30초)입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".FileSettings.AmazonS3RequestTimeoutMilliseconds: 30000

  • 환경 변수: MM_FILESETTINGS_AMAZONS3REQUESTTIMEOUTMILLISECONDS

Amazon S3 업로드 파트 크기#

Amazon S3로의 멀티파트 업로드에서 각 파트의 크기(바이트)입니다.

숫자 값. 기본값은 5242880(5MB)입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".FileSettings.AmazonS3UploadPartSizeBytes: 5242880

  • 환경 변수: MM_FILESETTINGS_AMAZONS3UPLOADPARTSIZEBYTES

참고

더 작은 파트 크기는 더 많은 요청과 지연 시간 증가를 초래할 수 있으며, 더 큰 파트 크기는 더 많은 메모리 할당을 초래할 수 있습니다.

Amazon S3 내보내기 업로드 파트 크기#

Amazon S3로 내보내는 멀티파트의 각 파트 크기(바이트)입니다.

숫자 값. 기본값은 104857600(100MB)입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".FileSettings.ExportAmazonS3UploadPartSizeBytes: 104857600

  • 환경 변수: MM_FILESETTINGS_EXPORTAMAZONS3UPLOADPARTSIZEBYTES

참고

더 작은 파트 크기는 더 많은 요청과 지연 시간 증가를 초래할 수 있으며, 더 큰 파트 크기는 더 많은 메모리 할당을 초래할 수 있습니다.

Amazon S3 요청 시간 초과#

Amazon S3 스토리지에 대한 요청이 시간 초과되기까지의 시간(밀리초)입니다.

기본값은 30000(30초)입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".FileSettings.AmazonS3RequestTimeoutMilliseconds: 30000

  • 환경 변수: MM_FILESETTINGS_AMAZONS3REQUESTTIMEOUTMILLISECONDS

초기 글꼴#

색상 배경과 사용자 이름 이니셜이 있는 자동 생성 프로필 사진에 사용되는 글꼴입니다.

글꼴 파일 이름 문자열. 기본값은 nunito-bold.ttf 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".FileSettings.InitialFont: nunito-bold.ttf",

  • 환경 변수: MM_FILESETTINGS_INITIALFONT


이미지 프록시#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

An image proxy is used by Mattermost apps to prevent them from connecting directly to remote self-hosted servers. Configure an image proxy by going to System Console > Environment > Image Proxy, or by editing the config.json file as described in the following tables.

이미지 프록시 활성화#

이미지 프록시는 Mattermost 앱 연결을 익명화하고 안전하지 않은 콘텐츠에 접근하는 것을 방지합니다.

  • true: 외부 이미지 로딩을 위한 이미지 프록시를 활성화합니다.

  • false: (기본값) 이미지 프록시를 비활성화합니다.

  • 시스템 설정 경로: 환경 > 이미지 프록시

  • config.json 설정: ".ImageProxySettings.Enable": true",

  • 환경 변수: MM_IMAGEPROXYSETTINGS_ENABLE

자세한 내용은 이미지 프록시 문서를 참조하세요.

이미지 프록시 유형#

Mattermost에서 사용하는 이미지 프록시 유형입니다.

  • local: (기본값) Mattermost 서버 자체가 이미지 프록시로 작동합니다.

  • atmos/camo: 외부 atmos/camo 이미지 프록시가 사용됩니다.

  • 시스템 설정 경로: 환경 > 이미지 프록시

  • config.json 설정: ".ImageProxySettings.ImageProxyType": "local",

  • 환경 변수: MM_IMAGEPROXYSETTINGS_IMAGEPROXYTYPE

자세한 내용은 이미지 프록시 문서를 참조하세요.

원격 이미지 프록시 URL#

atmos/camo 프록시의 URL입니다. local 이미지 프록시를 사용할 때는 이 설정이 필요하지 않습니다.

  • 시스템 설정 경로: 환경 > 이미지 프록시

  • config.json 설정: ".ImageProxySettings.RemoteImageProxyURL",

  • 환경 변수: MM_IMAGEPROXYSETTINGS_REMOTEIMAGEPROXYURL

원격 이미지 프록시 옵션#

atmos/camo 이미지 프록시에 전달되는 URL 서명 키입니다. local 이미지 프록시 유형을 사용할 때는 이 설정이 필요하지 않습니다.

  • 시스템 설정 경로: 환경 > 이미지 프록시

  • config.json 설정: ".ImageProxySettings.RemoteImageProxyOptions",

  • 환경 변수: MM_IMAGEPROXYSETTINGS_REMOTEIMAGEPROXYOPTIONS

자세한 내용은 이미지 프록시 문서를 참조하세요.


SMTP#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

시스템 콘솔 > 환경 > SMTP 로 이동하거나 다음 표에 설명된 대로 config.json 파일을 편집하여 SMTP 이메일 서버 설정을 구성합니다.

SMTP 서버#

이메일 알림에 사용되는 SMTP 이메일 서버의 위치입니다.

  • 시스템 구성 경로: 환경 > SMTP

  • config.json 설정: ".EmailSettings.SMTPServer",

  • 환경 변수: MM_EMAILSETTINGS_SMTPSERVER

SMTP 서버 포트#

SMTP 이메일 서버의 포트입니다.

숫자 입력.

  • 시스템 구성 경로: 환경 > SMTP

  • config.json 설정: ".EmailSettings.SMTPPort",

  • 환경 변수: MM_EMAILSETTINGS_SMTPPORT

SMTP 인증 활성화#

SMTP 인증을 활성화하거나 비활성화합니다.

  • true: SMTP 서버 인증에 SMTP 사용자 이름과 비밀번호를 사용합니다.

  • false: (기본값) Mattermost가 SMTP 서버에 인증을 시도하지 않습니다.

  • 시스템 구성 경로: 환경 > SMTP

  • config.json 설정: ".EmailSettings.EnableSMTPAuth": false",

  • 환경 변수: MM_EMAILSETTINGS_ENABLESMTPAUTH

SMTP 서버 사용자 이름#

SMTP 서버 인증에 사용할 사용자 이름입니다.

문자열 입력입니다.

  • 시스템 구성 경로: 환경 > SMTP

  • config.json 설정: ".EmailSettings.SMTPUsername",

  • 환경 변수: MM_EMAILSETTINGS_SMTPUSERNAME

SMTP 서버 비밀번호#

SMTP 사용자 이름과 연결된 비밀번호입니다.

문자열 입력입니다.

  • 시스템 구성 경로: 환경 > SMTP

  • config.json 설정: ".EmailSettings.SMTPPassword",

  • 환경 변수: MM_EMAILSETTINGS_SMTPPASSWORD

SMTP 연결 보안#

SMTP를 사용하여 전송되는 이메일의 연결 보안을 지정합니다.

  • 지정되지 않음: (기본값) 보안되지 않은 연결을 통해 이메일을 전송합니다.

  • TLS: Mattermost와 이메일 서버 간의 통신이 암호화됩니다.

  • STARTTLS: TLS를 사용하여 기존의 보안되지 않은 연결을 보안 연결로 업그레이드합니다.

  • 시스템 구성 경로: 환경 > SMTP

  • config.json 설정: ".EmailSettings.ConnectionSecurity",

  • 환경 변수: MM_EMAILSETTINGS_CONNECTIONSECURITY

서버 인증서 확인 건너뛰기#

이메일 서버 인증서 확인을 건너뛰도록 Mattermost를 구성합니다.

  • true: Mattermost가 이메일 서버 인증서를 확인하지 않습니다.

  • false: (기본값) Mattermost가 이메일 서버 인증서를 확인합니다.

  • 시스템 구성 경로: 환경 > SMTP

  • config.json 설정: ".EmailSettings.SkipServerCertificateVerification": false",

  • 환경 변수: MM_EMAILSETTINGS_SKIPSERVERCERTIFICATEVERIFICATION

보안 알림 활성화#

보안 알림을 활성화하거나 비활성화합니다.

  • true: (기본값) 관련 보안 수정 알림이 발표되면 시스템 관리자에게 이메일로 알림이 전송됩니다. 이메일이 활성화되어 있어야 합니다.

  • false: 보안 알림이 비활성화됩니다.

  • 시스템 구성 경로: 환경 > SMTP

  • config.json 설정: ".ServiceSettings.EnableSecurityFixAlert": true",

  • 환경 변수: MM_SERVICESETTINGS_ENABLESECURITYFIXALERT

자세한 내용은 원격 측정 문서를 참조하세요.

SMTP 서버 타임아웃#

Mattermost와 SMTP 서버 간의 TCP 연결을 설정하는 데 허용되는 최대 시간(초)입니다.

초 단위의 숫자 값입니다.

  • 시스템 구성 경로: 환경 > SMTP

  • config.json 설정: ".EmailSettings.SMTPServerTimeout",

  • 환경 변수: MM_EMAILSETTINGS_SMTPSERVERTIMEOUT


푸시 알림 서버#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

시스템 콘솔 > 환경 > 푸시 알림 서버 로 이동하거나 아래 표에 설명된 대로 config.json 파일을 편집하여 Mattermost의 모바일 푸시 알림을 구성합니다. 이 섹션의 구성 설정 변경은 서버를 재시작해야 효과가 적용됩니다.

푸시 알림 활성화#

Mattermost 푸시 알림을 활성화하거나 비활성화합니다.

  • 푸시 알림을 보내지 않음: 모바일 푸시 알림이 비활성화됩니다.

  • iOS 및 Android 앱에 알림을 보내기 위해 가동 시간 SLA가 있는 HPNS 연결 사용: (기본값) Mattermost의 호스팅된 푸시 알림 서비스를 사용합니다.

  • iOS 및 Android 앱에 알림을 보내기 위해 TPNS 연결 사용: Mattermost의 테스트 푸시 알림 서비스를 사용합니다.

  • 푸시 알림 서비스 위치를 수동으로 입력: 자체 맞춤형 모바일 앱을 구축할 때는 자체 모바일 푸시 프록시 서비스를 호스팅하고 푸시 알림 서버 필드에 해당 URL을 지정해야 합니다.

  • 시스템 구성 경로: 환경 > 푸시 알림 서버

  • config.json 설정: ".EmailSettings.SendPushNotifications": "true",

  • 환경 변수: MM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS

호스팅된 푸시 알림 서비스 (HPNS)#

plans-img Enterprise 및 Professional 플랜 에서 사용 가능

deployment-img Cloudself-hosted 배포

Mattermost Enterprise, Professional 및 Cloud 고객은 Mattermost의 호스팅된 푸시 알림 서비스(HPNS)를 사용할 수 있습니다. HPNS는 다음을 제공합니다:

  • GitHub에서 사용 가능한 공개 호스팅 Mattermost 푸시 알림 서비스(MPNS)에 대한 액세스

  • 암호화되지 않은 메시지 내용에 대한 명시적인 개인정보 처리방침

  • 암호화된 TLS 연결:

    • HPNS와 Apple 푸시 알림 서비스 간

    • HPNS와 Google의 Firebase Cloud Messaging 서비스 간

    • HPNS와 Mattermost 서버 간

  • 프로덕션 수준의 가동 시간 기대치.

  • 새 서버의 기본 구성은 새 배포에 HPNS를 활성화하기 위해 추가 설정이 필요하지 않음을 의미합니다. HPNS는 기존 배포에 대해 활성화 할 수 있습니다.

참고

  • HPNS는 Mattermost가 Apple App Store와 Google Play Store를 통해 배포하는 사전 구축된 앱에서만 작동합니다. 자체 모바일 앱을 구축하는 경우 자체 Mattermost 푸시 프록시 서버를 호스팅 해야 합니다.

  • 푸시 프록시가 올바른 포트에서 접근 가능한지 확인해야 합니다. HPNS의 경우 Mattermost 서버의 443 포트입니다.

  • Mattermost는 알림 데이터를 저장하지 않습니다. 저장되는 데이터는 HPNS가 알림을 보내야 할 기기를 알아야 하므로 device_id 와 같은 서버 수준의 데이터만 해당됩니다.

테스트 푸시 알림 서비스 (TPNS)#

비상업적 및 자체 호스팅 고객은 Mattermost의 무료 기본 테스트 푸시 알림 서비스(TPNS)를 사용할 수 있습니다.

참고

  • TPNS는 프로덕션 환경에서 사용하는 것을 권장하지 않으며, 프로덕션 수준의 업데이트 서비스 수준 계약(SLA)을 제공하지 않습니다.

  • TPNS는 Mattermost Cloud 배포에서 사용할 수 없습니다.

  • TPNS는 Mattermost가 Apple App Store와 Google Play Store를 통해 배포하는 사전 구축된 모바일 앱에서만 작동합니다. 자체 모바일 앱을 구축한 경우 자체 Mattermost 푸시 프록시 서비스를 호스팅 해야 합니다.

  • 푸시 프록시가 올바른 포트에서 접근 가능한지 확인해야 합니다. TPNS의 경우 Mattermost 서버의 80 포트입니다.

  • Mattermost가 모바일 푸시 알림을 보내는 것이 필요하지 않거나 원하지 않는 경우, 대규모 배포에서 이 구성 설정을 비활성화하면 다음과 같은 영역에서 서버 성능이 향상될 수 있습니다:

    • 처리 부하 감소: 푸시 알림 생성 및 전송에는 처리 능력과 리소스가 필요합니다. 이를 비활성화하면 서버가 해당 리소스를 다른 작업에 할당할 수 있습니다.

    • 네트워크 트래픽 감소: 푸시 알림에는 네트워크 통신이 포함됩니다. 이를 비활성화하면 전송되는 데이터 양이 줄어들어 전체 네트워크 성능이 향상될 수 있습니다.

    • 데이터베이스 부하 감소: 각 푸시 알림은 데이터베이스 읽기 및 쓰기를 포함할 수 있습니다. 이러한 작업을 줄이면 데이터베이스 부하가 감소하여 다른 쿼리에 대한 응답 시간이 개선됩니다.

    • 더 빠른 응답 시간: 알림 관련 작업이 줄어들면 시스템이 사용자의 다른 요청에 더 빠르게 응답할 수 있어 더 나은 사용자 경험을 제공합니다.

    • 단순화된 오류 처리: 푸시 알림 서비스는 때때로 실패하거나 지연 문제가 발생할 수 있어 추가적인 오류 처리가 필요합니다. 이러한 알림을 비활성화하면 시스템 운영이 단순화됩니다.

    • 하지만 푸시 알림을 비활성화하면 사용자 경험, 커뮤니케이션 효율성, 전반적인 생산성에 부정적인 영향을 미칠 수 있습니다. 성능 개선과 조직 및 사용자의 요구 사항 사이의 균형을 맞추는 것이 중요합니다.

ID 전용 푸시 알림#

plans-img 엔터프라이즈 플랜 에서 사용 가능

deployment-img Cloudself-hosted 배포

관리자는 Mattermost 구성 설정을 통해 Apple과 Google로 전송되는 데이터를 제한하여 iOS 및 Android 알림 인프라의 침해로부터 Mattermost 고객을 보호하기 위해 모바일 알림을 완전히 비공개로 설정할 수 있습니다.

iOS 및 Android 애플리케이션으로 알림을 보내는 표준 방식은 Apple이나 Google로 일반 텍스트 메시지를 전송하여 사용자의 휴대폰으로 전달되고 iOS나 Android에 표시되도록 하는 것입니다. Apple이나 Google이 데이터를 수집하거나 저장하지 않는다고 보장하지만, 해당 조직이 침해되거나 강요당할 경우 플랫폼의 모든 표준 모바일 알림이 손상될 수 있습니다.

이 위험을 피하기 위해 Mattermost는 Apple이나 Google에 정보를 전달하지 않는 메시지 ID 번호로 모바일 알림 텍스트를 대체하도록 구성할 수 있습니다. 사용자의 휴대폰에서 Mattermost 모바일 애플리케이션이 이를 수신하면, 메시지 ID는 Mattermost 서버와 비공개로 통신하고 암호화된 채널을 통해 모바일 알림 메시지를 검색하는 데 사용됩니다. 이는 메시지 텍스트가 Apple이나 Google의 메시지 릴레이 시스템에 전혀 노출되지 않음을 의미합니다. 메시지 내용도 Mattermost에 도달하지 않습니다.

참고

ID 전용 푸시 알림을 사용하는 Mattermost의 비공개 모바일 기능으로 알림 메시지를 검색하는 추가 단계로 인해, 최종 사용자는 Apple과 Google의 플랫폼을 통해 일반 텍스트를 전송하는 것과 비교하여 모바일 알림이 완전히 표시되기 전에 약간의 지연을 경험할 수 있습니다.

ID 전용 푸시 알림 구성 설정에 대한 자세한 내용은 구성 설정 문서를 참조하세요. 데이터 개인 정보 보호를 위한 ID 전용 푸시 알림 사용에 대한 자세한 내용은 모바일 앱 FAQ 문서 를 참조하세요.

푸시 알림 서버 위치#

Mattermost 호스팅 푸시 알림 서비스(HPNS) 서버의 물리적 위치입니다.

Push Notification Server 필드 서버 URL을 자동으로 채우려면 US (기본값) 또는 Germany 중에서 선택하세요.

  • 시스템 구성 경로: 환경 > 푸시 알림 서버

  • config.json setting: ".EmailSettings.PushNotificationServer",

  • Environment variable: MM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER

채널당 최대 알림 수#

성능을 최대화하기 위해 @all, @here, @channel이 더 이상 데스크톱, 이메일 또는 모바일 푸시 알림을 보내지 않는 채널의 최대 총 사용자 수입니다.

숫자 입력. 기본값은 1000 입니다.

  • 시스템 구성 경로: 환경 > 푸시 알림 서버

  • config.json setting: ".TeamSettings.MaxNotificationsPerChannel: 1000",

  • 환경 변수: MM_EMAILSETTINGS_MAXNOTIFICATIONSPERCHANNEL

참고

  • 성능 모니터링 메트릭 을 추적하여 시스템 상태를 모니터링하면서 이 값을 조금씩 증가시키는 것을 권장합니다. 큰 채널에 읽기 전용 채널 과 같이 채널에 게시할 수 있는 사용자를 제어하는 제한된 권한이 있는 경우에만 이 값을 증가시키세요.

  • 대규모 배포에서 이 구성 설정 값을 10 으로 줄이면 다음과 같은 영역에서 서버 성능이 향상될 수 있습니다:

    • 알림 시스템 부하 감소: 각 알림은 일정량의 계산 및 네트워크 부하를 생성합니다. 채널당 알림 수를 제한하면 시스템이 처리하는 알림이 줄어들어 서버의 부하가 감소합니다.

    • 데이터베이스 효율성: 알림은 일반적으로 데이터베이스에 저장됩니다. 알림이 적을수록 데이터베이스 쓰기 및 읽기가 덜 빈번해져 데이터베이스 작업이 더 빠르고 지연 시간이 감소합니다.

    • 클라이언트 처리 최소화: 사용자의 클라이언트(예: 데스크톱 및 모바일 앱)는 알림을 가져와서 처리해야 합니다. 알림이 적을수록 클라이언트가 더 효율적으로 작동하여 사용자 기기의 메모리 및 CPU 사용량이 감소합니다.

    • 향상된 사용자 경험: 알림 과부하는 성능 지연과 사용자에게 복잡한 경험을 초래할 수 있습니다. 알림 수를 제한하면 사용자가 가장 중요한 알림만 받게 되어 사용성과 응답 시간이 향상될 수 있습니다.

    • 네트워크 대역폭: 많은 수의 알림은 특히 많은 사용자에게 전송되는 경우 많은 대역폭을 소비할 수 있습니다. 알림이 적을수록 전체 네트워크 사용량이 낮아지고 중요한 메시지의 전달이 더 빨라질 수 있습니다.

    • 서버 부하 분산: 알림 수를 줄이면 작업량이 서버 전체에 더 균등하게 분산되어 더 나은 부하 분산이 이루어지고 단일 서버가 병목 현상이 되는 것을 방지할 수 있습니다.


고가용성#

plans-img 엔터프라이즈 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

시스템 콘솔 > 환경 > 고가용성 으로 이동하거나 다음 표에 설명된 대로 config.json 파일을 편집하여 Mattermost를 고가용성 클러스터 기반 배포 로 구성할 수 있습니다. 이 섹션의 구성 설정 변경은 적용되기 전에 서버를 재시작해야 합니다.

Mattermost 고가용성 클러스터 기반 배포에서는 시스템 콘솔이 읽기 전용으로 설정되며, 설정은 config.json 파일을 직접 편집해서만 변경할 수 있습니다. 그러나 고가용성 클러스터 기반 환경을 테스트하려면 config.json 파일에서 ClusterSettings.ReadOnlyConfigfalse 로 설정하여 비활성화할 수 있습니다. 이렇게 하면 시스템 콘솔을 사용하여 적용된 변경 사항이 구성 파일에 다시 저장됩니다.

고가용성 모드 활성화#

고가용성 모드를 활성화할 수 있습니다.

  • true: Mattermost 서버는 동일한 클러스터 이름을 가진 클러스터의 다른 서버와 노드 간 통신을 시도합니다. 이렇게 하면 서버의 config.json 파일을 동기화 상태로 유지하기 위해 시스템 콘솔이 읽기 전용 모드로 설정됩니다.

  • false: (기본값) Mattermost 고가용성 모드가 비활성화됩니다.

  • 시스템 구성 경로: 환경 > 고가용성

  • config.json 설정: ".ClusterSettings.Enable",

  • 환경 변수: MM_CLUSTERSETTINGS_ENABLE

클러스터 이름#

고가용성 클러스터 기반 배포에서 이름으로 참여할 클러스터입니다.

동일한 클러스터 이름을 가진 노드만 함께 참여합니다. 이는 동일한 데이터베이스를 가리키는 블루-그린 배포 또는 스테이징을 지원하기 위한 것입니다.

  • 시스템 구성 경로: 환경 > 고가용성

  • config.json 설정: ".ClusterSettings.ClusterName",

  • 환경 변수: MM_CLUSTERSETTINGS_CLUSTERNAME

호스트명 재정의#

이 서버의 호스트명을 재정의할 수 있습니다.

  • 필요한 경우 이 속성을 특정 IP 주소로 설정할 수 있습니다. 하지만 필요한 경우가 아니라면 호스트명을 재정의하는 것을 권장하지 않습니다.

  • 비워두면 Mattermost는 운영 체제에서 호스트명을 가져오거나 IP 주소를 사용합니다.

  • 시스템 구성 경로: 환경 > 고가용성

  • config.json 설정: ".ClusterSettings.OverrideHostname",

  • 환경 변수: MM_CLUSTERSETTINGS_OVERRIDEHOSTNAME

자세한 내용은 고가용성 클러스터 기반 배포 문서를 참조하세요.

IP 주소 사용#

고가용성 클러스터 기반 배포에서 IP 주소 대신 호스트명을 사용하여 통신하도록 구성할 수 있습니다.

  • true: (기본값) 클러스터는 지정된 IP 주소를 사용하여 통신을 시도합니다.

  • false: 클러스터는 호스트명을 사용하여 통신을 시도합니다.

  • 시스템 구성 경로: 환경 > 고가용성

  • config.json 설정: ".ClusterSettings.UseIPAddress: true",

  • 환경 변수: MM_CLUSTERSETTINGS_USEIPADDRESS

실험적 고십 암호화 활성화#

고십 암호화는 기본적으로 AES-256을 사용하며, 이 값은 설계상 구성할 수 없습니다.

  • true: (클라우드 배포의 기본값) 고십 프로토콜을 사용하는 클러스터의 모든 통신이 암호화됩니다.

  • false: (자체 호스팅 배포의 기본값) 고십 프로토콜을 사용하는 모든 통신은 변경되지 않으며 암호화되지 않습니다.

  • 시스템 구성 경로: 환경 > 고가용성

  • config.json 설정: ".ClusterSettings.EnableExperimentalGossipEncryption: false",

  • 환경 변수: MM_CLUSTERSETTINGS_ENABLEEXPERIMENTALGOSSIPENCRYPTION

참고

  • 고십 프로토콜은 Cornell 대학 연구진이 개발한 SWIM 프로토콜 에 설명된 원칙을 기반으로 합니다. 고십 프로토콜은 분산 시스템에서 노드들이 네트워크 전반에 걸쳐 데이터 일관성을 보장하기 위해 무작위로 정보를 교환하는 통신 메커니즘입니다. 이는 분산형이며, 확장 가능하고, 장애 허용성이 있어 수많은 노드가 있는 시스템에 이상적입니다. 정보는 소셜 고십과 유사한 방식으로 전파되며, 노드들은 네트워크가 일관된 상태로 수렴할 때까지 주기적으로 무작위 피어에게 업데이트를 “고십”합니다. 분산 데이터베이스, 블록체인 네트워크, 피어투피어 시스템에서 널리 사용되며, 이 프로토콜은 구현이 간단하고 노드 장애에 강인합니다. 그러나 대규모 네트워크에서는 중복성과 전파 지연이 발생할 수 있습니다.

  • 또는 Systems 테이블에서 ClusterEncryptionKey 행 값을 수동으로 설정할 수 있습니다. 키는 base64로 변환된 바이트 배열입니다. AES-128, AES-192 또는 AES-256을 선택하려면 이 값을 각각 16, 24 또는 32바이트로 설정하세요.

고십 압축 활성화#

더 나은 성능을 위해 이 구성 설정을 비활성화하는 것을 권장합니다.

  • true: (자체 호스팅 배포의 기본값) 클러스터를 통한 모든 통신이 고십 압축을 사용합니다. 이 설정은 이전 서버와의 호환성을 유지하기 위해 기본적으로 활성화되어 있습니다.

  • false: (클라우드 배포의 기본값) 고십 프로토콜을 사용하는 모든 통신이 압축되지 않은 상태로 유지됩니다.

  • 시스템 구성 경로: 환경 > 고가용성

  • config.json 설정: ".ClusterSettings.EnableGossipCompression: true",

  • 환경 변수: MM_CLUSTERSETTINGS_ENABLEGOSSIPCOMPRESSION

고십 포트#

고십 프로토콜에 사용되는 포트입니다. 이 포트에서는 UDP와 TCP 모두 허용되어야 합니다.

숫자 입력. 기본값은 8074 입니다.

  • 시스템 구성 경로: 환경 > 고가용성

  • config.json 설정: ".ClusterSettings.GossipPort: 8074",

  • 환경 변수: MM_CLUSTERSETTINGS_GOSSIPPORT

읽기 전용 구성#

  • true: (기본값) 시스템 콘솔에서 설정한 변경사항이 무시됩니다.

  • false: 시스템 콘솔에서 설정한 변경사항이 config.json 에 기록됩니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ClusterSettings.ReadOnlyConfig: true,

  • 환경 변수: MM_CLUSTERSETTINGS_READONLYCONFIG

네트워크 인터페이스#

고가용성 클러스터 기반 배포에서 자동 IP 감지를 수행하는 장치를 식별하는 데 사용되는 IP 주소입니다.

문자열 입력입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ClusterSettings.NetworkInterface: "",

  • 환경 변수: MM_CLUSTERSETTINGS_NETWORKINTERFACE

바인드 주소#

클러스터 트래픽을 특정 네트워크 장치에 바인딩하는 데 사용되는 IP 주소입니다.

이 설정은 주로 여러 네트워크 장치가 있거나 NAT(네트워크 주소 변환)가 포함된 배포와 같이 바인드 주소와 광고 주소가 다른 서버에 사용됩니다.

문자열 입력입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ClusterSettings.BindAddress: "",

  • 환경 변수: MM_CLUSTERSETTINGS_BINDADDRESS


속도 제한#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

속도 제한은 Mattermost 서버가 너무 많은 요청으로 과부하되는 것을 방지하고, 서버에 대한 타사 애플리케이션이나 악의적인 공격의 위험과 영향을 줄입니다.

시스템 콘솔 > 환경 > 속도 제한 으로 이동하거나 다음 표에 설명된 대로 config.json 파일을 편집하여 속도 제한 설정을 구성하세요. 이 섹션의 구성 설정 변경은 서버를 재시작해야 적용됩니다.

중요

Mattermost 속도 제한 구성 설정은 수백 명의 사용자까지의 소규모 Mattermost 배포를 위한 것이며, 더 큰 기업 규모의 배포를 위한 것이 아닙니다.

속도 제한 활성화#

초당 지정된 수의 요청으로 API를 제한하기 위해 속도 제한을 활성화하거나 비활성화합니다.

  • true: API는 초당 최대 쿼리 수 구성 설정에 지정된 속도로 제한됩니다.

  • false: (기본값) API 액세스가 제한되지 않습니다.

  • 시스템 구성 경로: 환경 > 속도 제한

  • config.json 설정: ".RateLimitSettings.Enable: false",

  • 환경 변수: MM_RATELIMITSETTINGS_ENABLE

초당 최대 쿼리 수#

속도 제한 이 활성화되었을 때 초당 이 수의 요청으로 API를 제한합니다.

숫자 입력. 기본값은 10 입니다.

이 값을 증가시키면 초당 더 많은 요청을 수락하고, 이 값을 감소시키면 더 적은 요청을 허용합니다.

  • 시스템 구성 경로: 환경 > 속도 제한

  • config.json 설정: ".RateLimitSettings.PerSec: 10,

  • 환경 변수: MM_RATELIMITSETTINGS_PERSEC

최대 버스트 크기#

속도 제한 이 활성화되었을 때 초당 쿼리 제한을 초과하여 허용되는 최대 요청 수입니다.

숫자 입력. 기본값은 100 입니다.

이 값을 증가시키면 더 많은 동시 요청을 처리할 수 있고, 이 값을 감소시키면 이 용량을 제한합니다.

  • 시스템 구성 경로: 환경 > 속도 제한

  • config.json 설정: ".RateLimitSettings.MaxBurst: 100,

  • 환경 변수: MM_RATELIMITSETTINGS_MAXBURST

메모리 저장소 크기#

속도 제한 이 활성화되었을 때 다양한 속도 제한 설정에 따라 시스템에 연결된 최대 사용자 세션 수입니다.

숫자 입력. 기본값은 10000 입니다. 일반적으로 시스템의 사용자 수로 설정됩니다.

예상 사용자 수로 이 값을 설정하는 것을 권장합니다. 값이 높으면 리소스가 충분히 활용되지 않을 수 있고, 값이 낮으면 사용자 세션/토큰이 너무 자주 만료될 수 있습니다.

  • 시스템 구성 경로: 환경 > 속도 제한

  • config.json 설정: ".RateLimitSettings.MemoryStoreSize: 10000,

  • 환경 변수: MM_RATELIMITSETTINGS_MEMORYSTORESIZE

원격 주소별 속도 제한 변경#

속도 제한 이 활성화되었을 때 IP 주소별로 API 액세스 속도를 제한하도록 Mattermost를 구성합니다.

  • true: (기본값) IP 주소별로 API 액세스 속도를 제한합니다. 프록시를 사용할 때 권장됩니다.

  • false: IP 주소에 따라 속도 제한이 변경되지 않습니다.

  • 시스템 구성 경로: 환경 > 속도 제한

  • config.json 설정: ".RateLimitSettings.VaryByRemoteAddr: true,

  • 환경 변수: MM_RATELIMITSETTINGS_VARYBYREMOTEADDR

사용자별 속도 제한 변경#

속도 제한 이 활성화되었을 때 인증 토큰별로 API 액세스 속도를 제한하도록 Mattermost를 구성합니다.

  • true: 사용자 인증 토큰별로 API 액세스 속도를 제한합니다. 프록시를 사용할 때 권장됩니다.

  • false: (기본값) 사용자 인증 토큰에 따라 속도 제한이 변경되지 않습니다.

  • 시스템 구성 경로: 환경 > 속도 제한

  • config.json 설정: ".RateLimitSettings.VaryByUser: false,

  • 환경 변수: MM_RATELIMITSETTINGS_VARYBYUSER

HTTP 헤더별 속도 제한 변경#

지정된 HTTP 헤더 필드별로 API 액세스 속도 제한을 변경하도록 Mattermost를 구성합니다. 프록시를 사용할 때 권장됩니다.

  • NGINX를 구성할 때는 X-Real-IP 로 설정하세요.

  • AmazonELB를 구성할 때는 X-Forwarded-For 로 설정하세요.

  • 시스템 구성 경로: 환경 > 속도 제한

  • config.json 설정: ".RateLimitSettings.VaryByHeader: "",

  • 환경 변수: MM_RATELIMITSETTINGS_VARYBYHEADER


로깅#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

시스템 콘솔 > 환경 > 로깅 으로 이동하거나 다음 표에 설명된 대로 config.json 파일을 편집하여 로깅을 구성합니다. 이 섹션의 구성 설정 변경은 서버를 다시 시작해야 적용됩니다.

NotificationLogSettings 아래의 Mattermost 알림을 위해 config.json 파일 내에서 추가 로깅 구성을 관리할 수 있습니다. 이러한 설정은 LogSettings 아래에서 사용 가능한 구성 설정과 동일합니다.

콘솔에 로그 출력#

Mattermost가 콘솔에 로그를 출력하도록 구성합니다.

  • true: (기본값) 콘솔 로그 레벨 구성에 따라 로그 메시지가 콘솔에 기록됩니다. 서버는 메시지를 표준 출력 스트림(stdout)에 기록합니다.

  • false: 로그 메시지가 콘솔에 기록되지 않습니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.EnableConsole": true",

  • 환경 변수: MM_LOGSETTINGS_ENABLECONSOLE

콘솔 로그 레벨#

Mattermost가 콘솔에 로그 메시지를 출력할 때 기록되는 로그 이벤트의 상세 수준입니다.

  • DEBUG: (기본값) 개발자가 문제를 디버깅하기 위한 상세한 정보를 출력합니다.

  • ERROR: 오류 메시지만 출력합니다.

  • INFO: 오류 메시지와 시작 및 초기화 관련 정보를 출력합니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.ConsoleLevel": DEBUG",

  • 환경 변수: MM_LOGSETTINGS_CONSOLELEVEL

콘솔 로그를 JSON으로 출력#

Mattermost가 콘솔 로그를 JSON 형식으로 출력하도록 구성합니다.

  • true: (기본값) 로그 이벤트가 기계가 읽을 수 있는 JSON 형식으로 기록됩니다.

  • false: 로그 이벤트가 일반 텍스트로 기록됩니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.ConsoleJson": true",

  • 환경 변수: MM_LOGSETTINGS_CONSOLEJSON

일반적으로 프로덕션 환경에서는 true 로 설정합니다.

일반 텍스트 콘솔 로그에 색상 적용#

시스템 관리자가 일반 텍스트 로그 레벨 세부 정보를 색상으로 표시할 수 있게 합니다.

  • true: 로그 이벤트가 일반 텍스트로 콘솔에 출력될 때 로그 레벨 세부 정보에 색상을 적용합니다.

  • false: (기본값) 일반 텍스트 로그 세부 정보에 콘솔에서 색상이 적용되지 않습니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".LogSettings.EnableColor": false",

  • 환경 변수: MM_LOGSETTINGS_ENABLECOLOR

로그를 파일로 출력#

Mattermost가 콘솔 로그를 파일로 출력하도록 구성합니다.

  • true: (기본값) 로그 이벤트가 파일 로그 레벨 구성에 따라 file location 을 통해 구성된 디렉토리에 있는 mattermost.log 파일에 기록됩니다.

  • false: 로그 이벤트가 파일에 기록되지 않습니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.EnableFile": true",

  • 환경 변수: MM_LOGSETTINGS_ENABLEFILE

참고

일반적으로 프로덕션 환경에서는 true 로 설정합니다. 활성화되면 시스템 콘솔 > 보고서 > 서버 로그 로 이동하여 로그 다운로드 를 선택하여 mattermost.log 파일을 로컬에 다운로드할 수 있습니다.

파일 로그 디렉토리#

로그 파일의 위치입니다.

문자열 입력입니다. 비워두면 로그 파일이 ./logs 디렉토리에 저장됩니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.FileLocation": "",

  • 환경 변수: MM_LOGSETTINGS_FILELOCATION

참고

구성한 경로가 존재해야 하며, Mattermost는 이 디렉토리에 대한 쓰기 권한이 있어야 합니다.

파일 로그 레벨#

Mattermost가 파일에 로그 메시지를 출력할 때 로그 이벤트의 상세 수준입니다.

  • DEBUG: 개발자가 문제를 디버깅하기 위한 상세 정보를 출력합니다.

  • ERROR: 오류 메시지만 출력합니다.

  • INFO: (기본값) 오류 메시지와 시작 및 초기화 관련 정보를 출력합니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.FileLevel": INFO",

  • 환경 변수: MM_LOGSETTINGS_FILELEVEL

JSON으로 파일 로그 출력#

Mattermost가 파일 로그를 JSON으로 출력하도록 구성합니다.

  • true: (기본값) 로그 이벤트가 기계가 읽을 수 있는 JSON 형식으로 기록됩니다.

  • false: 로그 이벤트가 일반 텍스트로 기록됩니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.FileJson": true",

  • 환경 변수: MM_LOGSETTINGS_FILEJSON

일반적으로 프로덕션 환경에서는 true 로 설정합니다.

웹훅 디버깅 활성화#

디버깅을 위해 들어오는 웹훅의 내용을 콘솔 및/또는 파일 로그에 캡처하도록 Mattermost를 구성합니다.

  • true: (기본값) 들어오는 웹훅의 내용이 디버깅을 위해 로그 파일에 출력됩니다.

  • false: 들어오는 웹훅의 내용이 로그 파일에 출력되지 않습니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.EnableWebhookDebugging": true",

  • 환경 변수: MM_LOGSETTINGS_ENABLEWEBHOOKDEBUGGING

참고

파일 로그 레벨DEBUG 로 변경하여 들어오는 웹훅의 요청 본문을 로그에 포함하도록 디버그 로그를 활성화합니다.

여러 대상으로 로그 출력#

콘솔, 로컬 파일, syslog, TCP 소켓 대상의 조합을 허용하고 로그 레코드를 여러 대상으로 전송하도록 Mattermost를 구성합니다.

문자열 입력에는 다른 구성 파일의 파일 사양, 데이터베이스 DSN 또는 JSON이 포함될 수 있습니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.AdvancedLoggingJSON":: "",

  • 환경 변수: MM_LOGSETTINGS_ADVANCEDLOGGINGJSON

참고

  • Mattermost 로깅 문서에서 자세한 내용을 확인하세요. 이러한 대상은 추가 소프트웨어 설치 없이도 대부분의 로그 집계기와 기타 로그 분석 도구를 지원하므로 선택되었습니다.

  • 호출자의 지연 시간을 줄이기 위해 로그가 비동기적으로 기록됩니다.

  • 고급 로깅은 로거 구성의 핫 리로딩을 지원합니다.

최대 필드 크기#

시스템 관리자가 로깅 중에 로그 필드의 크기를 제한할 수 있게 합니다.

숫자 값. 기본값은 2048 입니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".LogSettings.MaxFieldSize": 2048",

  • 환경 변수: MM_LOGSETTINGS_MAXFIELDSIZE

진단 및 오류 보고 활성화#

진단 및 오류 보고서가 Mattermost, Inc.로 전송되는지 여부

  • true: (기본값) 진단 및 오류 보고서를 전송합니다.

  • false: 진단 및 오류 보고서가 전송되지 않습니다.

  • 시스템 구성 경로: 환경 > 로깅

  • config.json 설정: ".LogSettings.EnableDiagnostics": "",

  • 환경 변수: MM_LOGSETTINGS_ENABLEDIAGNOSTICS

참고

Mattermost가 수집하는 정보에 대한 자세한 내용은 원격 측정 문서를 참조하세요.


세션 길이#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

사용자가 로그인을 시도할 때 사용자 세션이 지워지며, 세션 데이터베이스 테이블에서 24시간마다 세션이 지워집니다. 시스템 콘솔 > 환경 > 세션 길이 로 이동하거나 다음 표에 설명된 대로 config.json 파일을 편집하여 세션 길이를 구성할 수 있습니다. 이 섹션의 구성 설정 변경은 서버를 재시작해야 적용됩니다.

활동에 따른 세션 길이 연장#

Mattermost 앱에서 사용자가 활성 상태일 때 세션을 연장하고 로그인 상태를 유지하여 사용자 경험을 향상시킵니다.

  • true: (기본값) 사용자가 Mattermost 클라이언트에서 활성 상태일 때 세션이 자동으로 연장됩니다. 사용자가 정의된 세션 길이 전체 기간 동안 Mattermost 클라이언트에서 활성 상태가 아닐 때만 사용자 세션이 만료됩니다.

  • false: Mattermost에서의 활동으로 세션이 연장되지 않습니다. 사용자 세션은 세션 길이 종료 시 또는 구성된 세션 유휴 시간 초과 에 따라 즉시 만료됩니다.

  • 시스템 구성 경로: 환경 > 세션 길이

  • config.json 설정: ".ServiceSettings.ExtendSessionLengthWithActivity: true,

  • 환경 변수: MM_SERVICESETTINGS_EXTENDSESSIONLENGTHWITHACTIVITY

비밀번호 변경 시 세션 종료#

사용자의 비밀번호가 변경될 때 세션 취소를 활성화하거나 비활성화합니다.

  • true: (새 배포의 기본값) 세션 취소가 활성화됩니다. 사용자의 비밀번호가 변경되면(사용자 자신이나 시스템 관리자에 의해) 해당 사용자의 모든 세션이 만료됩니다. 사용자가 비밀번호 변경을 시작한 경우 현재 세션은 종료되지 않습니다.

  • false: (기존 배포의 기본값) 세션 취소가 비활성화됩니다. 사용자가 비밀번호를 변경할 때는 현재 세션만 취소됩니다. 시스템 관리자가 사용자의 비밀번호를 변경할 때는 사용자의 세션이 취소되지 않습니다.

  • 시스템 구성 경로: 환경 > 세션 길이

  • config.json 설정: ".ServiceSettings.TerminateSessionsOnPasswordChange: true,

  • 환경 변수: MM_SERVICESETTINGS_TERMINATESESSIONSONPASSWORDCHANGE

AD/LDAP 및 이메일 세션 길이#

웹 앱이나 데스크톱 앱에 사용자가 마지막으로 자격 증명을 입력한 시점부터 이메일 및 AD/LDAP 인증의 사용자 세션 만료까지의 시간(시간)을 설정합니다.

시간 단위로 숫자 입력. 기본값은 720 시간입니다.

  • 시스템 구성 경로: 환경 > 세션 길이

  • config.json 설정: ".ServiceSettings.SessionLengthWebInHours: 720,

  • 환경 변수: MM_SERVICESETTINGS_SESSIONLENGTHWEBINHOURS

참고

이 설정을 변경한 후에는 사용자가 다음에 자격 증명을 입력할 때 새로운 세션 길이가 적용됩니다.

모바일 세션 길이#

모바일 앱에 사용자가 마지막으로 자격 증명을 입력한 시점부터 사용자 세션 만료까지의 시간(시간)을 설정합니다.

시간 단위로 숫자 입력. 기본값은 720 시간입니다.

  • 시스템 구성 경로: 환경 > 세션 길이

  • config.json 설정: ".ServiceSettings.SessionLengthMobileInHours: 720,

  • 환경 변수: MM_SERVICESETTINGS_SESSIONLENGTHMOBILEINHOURS

참고

이 설정을 변경한 후에는 사용자가 다음에 자격 증명을 입력할 때 새로운 세션 길이가 적용됩니다.

SSO 세션 길이#

사용자가 마지막으로 SSO 자격 증명을 입력한 시점부터 사용자 세션 만료까지의 시간(시간)을 설정합니다. 이 설정은 SAML, GitLab, OAuth 2.0과 같은 SSO 인증의 세션 길이를 정의합니다.

시간 단위로 숫자를 입력합니다. 기본값은 720 시간입니다. 소수점이 있는 숫자도 이 구성 설정에 유효한 값입니다.

  • 시스템 구성 경로: 환경 > 세션 길이

  • config.json 설정: ".ServiceSettings.SessionLengthSSOInHours: 720,

  • 환경 변수: MM_SERVICESETTINGS_SESSIONLENGTHSSOINHOURS

참고

  • 이 설정을 변경한 후에는 사용자가 다음에 자격 증명을 입력할 때 새로운 세션 길이가 적용됩니다.

  • 인증 방식이 SAML, GitLab 또는 OAuth 2.0인 경우, 사용자가 이미 SAML, GitLab 또는 OAuth 2.0으로 로그인되어 있다면 Mattermost에 자동으로 다시 로그인될 수 있습니다.

세션 캐시#

메모리에 세션을 캐시할 시간(분)을 설정합니다.

분 단위로 숫자를 입력합니다. 기본값은 10 분입니다.

  • 시스템 구성 경로: 환경 > 세션 길이

  • config.json 설정: ".ServiceSettings.SessionCacheInMinutes: 10,

  • 환경 변수: MM_SERVICESETTINGS_SESSIONCACHEINMINUTES

세션 유휴 시간 초과#

사용자가 시스템에서 마지막으로 활성화된 시점부터 사용자 세션 만료까지의 시간(분)입니다. 만료되면 사용자는 계속하려면 로그인해야 합니다.

분 단위로 숫자를 입력합니다. 기본값은 43200 (30일)입니다. 최소값은 5 분이며, 0 값은 시간을 무제한으로 설정합니다.

  • 시스템 구성 경로: 해당 없음

  • config.json 설정: ".ServiceSettings.SessionIdleTimeoutInMinutes: 43200,

  • 환경 변수: MM_SERVICESETTINGS_SESSIONIDLETIMEOUTINMINUTES

참고

  • 활동으로 세션 길이 연장true 로 설정되어 있을 때는 이 설정이 적용되지 않습니다.

  • 이 설정은 웹앱과 데스크톱 앱에 적용됩니다. 모바일 앱의 경우 사용하지 않을 때 앱을 잠그려면 EMM 제공업체 를 사용하세요.

  • 고가용성 모드 에서는 신뢰할 수 있는 타임아웃 측정을 위해 IP 해시 로드 밸런싱을 활성화하세요.


성능 모니터링#

plans-img 엔터프라이즈 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

시스템 콘솔 > 환경 > 성능 모니터링 으로 이동하거나 아래 표에 설명된 대로 config.json 파일을 편집하여 성능 모니터링을 구성하세요. 이 섹션의 구성 설정 변경사항은 서버를 재시작해야 적용됩니다.

성능 모니터링 설정에 대한 자세한 내용은 성능 모니터링 문서를 참조하세요.

성능 모니터링 활성화#

성능 모니터링을 활성화하거나 비활성화합니다.

  • true: 성능 모니터링 데이터 수집 및 프로파일링이 활성화됩니다.

  • false: (기본값) Mattermost 성능 모니터링이 비활성화됩니다.

  • 시스템 구성 경로: 환경 > 성능 모니터링

  • config.json 설정: ".MetricsSettings.Enable": false",

  • 환경 변수: MM_METRICSSETTINGS_ENABLE

자세한 내용은 성능 모니터링 문서를 참조하세요.

클라이언트 성능 모니터링 활성화#

클라이언트 성능 모니터링을 활성화하거나 비활성화합니다.

  • true: 클라이언트 성능 모니터링 데이터 수집 및 프로파일링이 활성화됩니다.

  • false: (기본값) Mattermost 클라이언트 성능 모니터링이 비활성화됩니다.

  • 시스템 구성 경로: 환경 > 성능 모니터링

  • config.json 설정: ".MetricsSettings.EnableClientMetrics": false",

  • 환경 변수: MM_METRICSSETTINGS_ENABLE

클라이언트 측 사용자 ID#

클라이언트 측 웹앱 메트릭을 추적하려는 쉼표로 구분된 사용자 ID 목록입니다.

최대 5개의 사용자 ID로 제한됩니다. 기본값은 비어 있습니다.

  • 시스템 구성 경로: 환경 > 성능 모니터링

  • config.json 설정: ".MetricsSettings.ClientSideUserIds"

  • 환경 변수: MM_METRICSSETTINGS_LISTENADDRESS

참고

성능을 보장하기 위해 사용자 ID의 총 개수는 5개로 제한됩니다. 더 많은 ID를 추가하면 높은 레이블 카디널리티로 인해 Prometheus에 부담이 될 수 있습니다. 성능 문제를 방지하기 위해 이 목록의 변경을 최소화하는 것을 권장합니다.

수신 주소#

활성화된 경우 Mattermost 서버가 성능 메트릭을 노출하기 위해 수신 대기하는 포트입니다.

숫자 입력. 기본값은 8067 입니다.

  • 시스템 구성 경로: 환경 > 성능 모니터링

  • config.json 설정: ".MetricsSettings.ListenAddress": 8067",

  • 환경 변수: MM_METRICSSETTINGS_LISTENADDRESS


개발자#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

시스템 콘솔 > 환경 > 개발자 로 이동하거나 다음 표에 설명된 대로 config.json 파일을 편집하여 개발자 모드를 구성합니다. 이 섹션의 구성 설정 변경은 적용되기 전에 서버 재시작이 필요합니다.

테스트 명령어 활성화#

/test 슬래시 명령어를 활성화하거나 비활성화합니다.

  • true: (기본값) /test 슬래시 명령어가 활성화되어 테스트 계정과 테스트 데이터를 로드합니다.

  • false: /test 슬래시 명령어가 비활성화됩니다.

  • 시스템 구성 경로: 환경 > 개발자

  • config.json 설정: ".ServiceSettings.EnableTesting": true",

  • 환경 변수: MM_SERVICESETTINGS_ENABLETESTING

개발자 모드 활성화#

개발자 모드를 활성화하거나 비활성화합니다.

  • true: (기본값) Javascript 오류가 Mattermost 사용자 인터페이스 상단의 배너에 표시됩니다. 프로덕션 환경에서 사용하지 않는 것이 좋습니다.

  • false: 사용자에게 Javascript 오류가 알림되지 않습니다.

  • 시스템 구성 경로: 환경 > 개발자

  • config.json 설정: ".ServiceSettings.EnableDeveloper": true",

  • 환경 변수: MM_SERVICESETTINGS_ENABLEDEVELOPER

클라이언트 디버깅 활성화#

개별 사용자를 위한 설정 > 고급 > 디버깅 에서 찾을 수 있는 클라이언트 측 디버깅 설정을 활성화하거나 비활성화합니다.

  • true: 해당 설정이 표시되며 사용자가 활성화할 수 있습니다.

  • false: (기본값) 해당 설정이 숨겨지고 비활성화됩니다.

  • 시스템 구성 경로: 환경 > 개발자

  • config.json 설정: ".ServiceSettings.EnableClientPerformanceDebugging": false",

  • 환경 변수: MM_SERVICESETTINGS_ENABLECLIENTPERFORMANCEDEBUGGING

자세한 내용은 클라이언트 디버깅 문서를 참조하세요.

신뢰할 수 없는 내부 연결 허용#

Mattermost 서버가 로컬 네트워크 내에서 신뢰할 수 없는 요청을 할 수 있는 기능을 제한합니다. 클라이언트를 대신하여 요청이 이루어질 때 해당 요청은 ‘신뢰할 수 없는’ 것으로 간주됩니다.

  • 시스템 구성 경로: 환경 > 개발자

  • config.json 설정: ".ServiceSettings.AllowedUntrustedInternalConnections": "",

  • 환경 변수: MM_SERVICESETTINGS_ALLOWEDUNTRUSTEDINTERNALCONNECTIONS

이 설정은 Mattermost 서버가 요청할 수 있는 로컬 네트워크 주소의 화이트리스트입니다. 접근 가능한 호스트명, IP 주소, CIDR 범위를 공백으로 구분된 목록으로 구성됩니다.

시스템 관리자만 구성할 수 있는 요청은 신뢰할 수 있는 것으로 간주되며 이 설정의 영향을 받지 않습니다. 신뢰할 수 있는 URL에는 OAuth 로그인이나 푸시 알림 전송에 사용되는 URL이 포함됩니다.

다음 기능들은 신뢰할 수 없는 요청을 생성하며 이 설정의 영향을 받습니다:

  • 웹훅, 슬래시 명령어 또는 메시지 작업을 사용하는 통합. 이를 통해 로컬 네트워크 내의 엔드포인트에 대한 요청을 방지합니다.

  • 링크 미리보기. 채팅 메시지에 로컬 네트워크 주소 링크가 게시되면 링크 미리보기가 표시되지 않습니다.

  • 로컬 이미지 프록시. 로컬 이미지 프록시가 활성화된 경우 로컬 네트워크에 있는 이미지는 통합에서 사용하거나 채팅 메시지에 게시할 수 없습니다.

이 설정을 수정하고 싶을 수 있는 몇 가지 예시는 다음과 같습니다:

  • Matterpoll 와 같이 자체 이미지를 포함하는 플러그인을 설치할 때는 Mattermost 서버의 도메인 이름을 이 목록에 추가해야 합니다.

  • 로컬 네트워크에서 봇이나 웹훅 기반 통합을 실행할 때는 봇/통합의 호스트명을 이 목록에 추가해야 합니다.

  • 네트워크가 공개적으로 접근 가능한 웹 페이지나 이미지를 Mattermost 서버가 내부 IP 주소를 사용하여 접근하도록 구성된 경우, 해당 서버의 호스트명을 이 목록에 추가해야 합니다.

경고: 이 설정은 로컬 네트워크 외부에 있는 사용자가 Mattermost 서버를 사용하여 네트워크 내부의 기밀 데이터를 요청하는 것을 방지하기 위한 것입니다. 로컬 네트워크에 대한 의도하지 않은 접근을 방지하기 위해 이 설정을 구성할 때 주의해야 합니다.

참고:

  • Mattermost 애플리케이션 서버 자체의 공용 IP도 예약된 IP로 간주됩니다.

  • 호스트명, IP 주소 또는 CIDR 범위를 나열할 때 쉼표 대신 공백을 사용하세요. 예: webhooks.internal.example.com, 127.0.0.1, 또는 10.0.16.0/28.

  • IP 주소와 도메인 이름 규칙은 호스트 해석 전에 적용됩니다.

  • CIDR 규칙은 호스트 해석 후에 적용되며, CIDR 규칙만 DNS 해석이 필요합니다.

  • Mattermost는 해석 없이도 IP 주소와 호스트명을 일치시키려고 시도합니다. 실패할 경우 Mattermost는 로컬 해석기(먼저 /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 은 사용할 수 없습니다.

모바일 보안#

참고

plans-img-yellow Enterprise 플랜에서만 사용 가능

Mattermost v10.7 및 모바일 앱 v2.27부터는 EMM 제공업체에 의존하지 않고도 생체 인증을 구성하고, 탈옥 또는 루팅된 기기에서 Mattermost 사용을 방지하며, 화면 캡처를 차단할 수 있습니다. 시스템 콘솔 > 환경 > 모바일 보안 으로 이동하거나 다음 표에 설명된 대로 config.json 파일을 편집하여 이러한 옵션을 구성할 수 있습니다. 이 섹션의 구성 설정 변경은 서버를 재시작해야 적용됩니다.

생체 인증 활성화#

앱에 접근하기 전에 PIN/비밀번호 대체 옵션과 함께 생체 인증을 적용합니다. 사용자는 세션 활동 및 서버 전환 규칙에 따라 인증을 요청받습니다.

  • true: 생체 인증이 활성화됩니다.

  • false: (기본값) 생체 인증이 비활성화됩니다.

  • 시스템 구성 경로: 환경 > 모바일 보안

  • config.json 설정: ".NativeAppSettings.MobileEnableBiometrics": false",

  • 환경 변수: MM_NATIVEAPPSETTINGS_MOBILEENABLEBIOMETRICS

참고

다음과 같은 상황에서 사용자는 인증해야 합니다:

  • 새 서버 추가: 모바일 앱에 새 서버가 추가되고 생체 인증이 활성화된 경우.

  • 모바일 앱 실행: 활성 서버에서 인증이 필요할 때 앱 시작 시.

  • 백그라운드 사용 후 복귀: 앱이 5분 이상 백그라운드에 있었고 활성 서버에서 인증이 필요할 때.

  • 여러 서버 사용: 서버에 처음 접근할 때, 서버에서 5분 동안 비활성 상태가 된 후, 마지막 인증 시도가 실패했을 때.

탈옥/루팅 보호 활성화#

탈옥 또는 루팅된 것으로 감지된 기기에서 앱 접근을 방지합니다. 기기가 보안 검사를 통과하지 못하면 사용자의 접근이 거부되거나 호환되는 서버로 전환하라는 메시지가 표시됩니다.

  • true: 탈옥/루팅 보호가 활성화됩니다.

  • false: (기본값) 탈옥/루팅 보호가 비활성화됩니다.

  • 시스템 구성 경로: 환경 > 모바일 보안

  • config.json 설정: ".NativeAppSettings.MobileJailbreakProtection": false",

  • 환경 변수: MM_NATIVEAPPSETTINGS_MOBILEJAILBREAKPROTECTION

참고

이 기능에 대한 검사 수행 방법에 대한 자세한 내용은 Expo SDK 문서 를 참조하세요.

화면 캡처 방지#

모바일 앱 사용 시 스크린샷과 화면 녹화를 차단합니다. 스크린샷은 빈 화면으로 표시되고, 화면 녹화는 흐려지거나(iOS) 검은 화면으로 표시됩니다(Android). 앱 전환 시에도 적용됩니다.

  • true: 화면 캡처 차단이 활성화됩니다.

  • false: (기본값) 화면 캡처 차단이 비활성화됩니다.

  • 시스템 구성 경로: 환경 > 모바일 보안

  • config.json 설정: ".NativeAppSettings.MobilePreventScreenCapture": false",

  • 환경 변수: MM_NATIVEAPPSETTINGS_MOBILEPREVENTSCREENCAPTURE

config.json 전용 설정#

plans-img 모든 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

고객 포털 요청 비활성화#

고객 포털 요청을 활성화하거나 비활성화합니다.

  • true: (기본값) 고객 포털로의 서버 측 요청이 비활성화됩니다.

  • false: Mattermost 고객 포털로의 서버 측 요청이 활성화되지만, 에어갭 및 제한된 배포 환경에서는 항상 실패합니다.

  • 시스템 구성 경로: N/A

  • config.json 설정: CloudSettings > Disable > false,

  • 환경 변수: MM_CLOUDSETTINGS_DISABLE

참고

클라우드 관리자는 이 구성 설정을 수정할 수 없습니다.

API 팀 삭제 활성화#

이 설정은 시스템 콘솔에서 사용할 수 없으며 config.json 에서만 설정할 수 있습니다.

True: 팀 관리자와 시스템 관리자(또는 적절한 권한이 있는 사용자)가 api/v4/teams/{teamid}?permanent=true API 엔드포인트를 호출하거나 mmctl team delete 명령을 실행하여 팀을 영구적으로 삭제할 수 있습니다.

False: API 엔드포인트를 호출할 수 없습니다. api/v4/teams/{teamid} 를 사용하여 팀을 소프트 삭제할 수 있습니다.

이 기능의 config.json 설정은 "EnableAPITeamDeletion": false 이며 옵션은 truefalse 입니다.

API 사용자 삭제 활성화#

이 설정은 시스템 콘솔에서 사용할 수 없으며 config.json 에서만 설정할 수 있습니다.

True: 시스템 관리자(또는 적절한 권한이 있는 사용자)가 api/v4/users/{userid}?permanent=true API 엔드포인트를 호출하거나 mmctl user delete 명령을 실행하여 사용자를 영구적으로 삭제할 수 있습니다.

False: API 엔드포인트를 호출할 수 없습니다. api/v4/users/{userid} 를 사용하여 사용자를 소프트 삭제할 수 있습니다.

이 기능의 config.json 설정은 "EnableAPIUserDeletion": false 이며 옵션은 truefalse 입니다.

API 채널 삭제 활성화#

이 설정은 시스템 콘솔에서 사용할 수 없으며 config.json 에서만 설정할 수 있습니다.

True: 시스템 관리자(또는 적절한 권한이 있는 사용자)가 api/v4/channels/{channelid}?permanent=true API 엔드포인트를 호출하거나 mmctl channel delete 명령을 실행하여 채널을 영구적으로 삭제할 수 있습니다.

False: API 엔드포인트를 호출할 수 없습니다. api/v4/channels/{channelid} 를 사용하여 채널을 소프트 삭제할 수 있습니다.

이 기능의 config.json 설정은 "EnableAPIChannelDeletion": false 이며 옵션은 truefalse 입니다.

데스크톱 앱 개발자 모드 활성화#

Desktop App v5.10부터 이 설정은 Mattermost 데스크톱 앱의 보기 > 개발자 도구 메뉴에서 사용할 수 있는 개발자 디버깅 옵션을 활성화합니다.

이 설정은 시스템 콘솔에서 사용할 수 없으며 환경 변수 MM_DESKTOP_DEVELOPER_MODEtrue 로 설정하여 config.json 에서만 활성화할 수 있습니다. 이 설정은 기본적으로 비활성화되어 있습니다.

True: 문제 해결 및 디버깅을 위해 데스크톱 앱에서 다음 옵션을 사용할 수 있게 합니다. Mattermost 개발자의 지시가 있는 경우에만 이 설정을 활성화해야 합니다:

  • 브라우저 모드만: 프리로드 스크립트를 완전히 비활성화하고 웹 앱 구성 요소가 데스크톱 앱에 있다는 것을 알지 못하게 합니다. 이 옵션은 웹 앱 구성 요소가 성능 및/또는 메모리 유지 문제를 일으키는지 여부를 가장 잘 나타내는 지표가 되어야 합니다. 이 옵션은 알림, 탭 간 탐색, 읽지 않음/멘션 배지, 통화 위젯을 비활성화하고 macOS에서 크기 조정을 중단합니다.

  • 알림 저장소 비활성화: 선택 및 읽을 때까지 읽지 않은 알림에 대한 참조를 보관하는 맵을 끕니다. 이 옵션은 Mattermost가 사용하지 않는 알림에 대한 참조를 너무 많이 보유하고 있는 경우 디버깅에 유용합니다.

  • 사용자 활동 모니터 비활성화: 사용자가 자리를 비웠는지 여부를 확인하는 간격을 끕니다. 이 옵션은 사용자의 가용성 상태가 예기치 않은 데스크톱 앱 동작을 일으키는지 디버깅하는 데 유용합니다.

  • 컨텍스트 메뉴 비활성화: BrowserViews에 연결된 컨텍스트 메뉴를 끕니다. 이 옵션은 라이브러리 정상성 검사로 유용합니다.

  • 레거시 메시징 API 강제 사용: 앱이 새로운 contextBridge API 대신 이전 메시징 API로 되돌아가도록 강제합니다. 이 옵션은 새 API가 메모리 유지를 담당하는지 확인하는 정상성 검사로 유용합니다.

  • 새 메시징 API 강제 사용: 앱이 contextBridge API를 사용하도록 강제하고 레거시 API를 완전히 비활성화합니다. 이 옵션은 레거시 API에 대한 리스너를 강제로 끕니다.

Redis 캐시 백엔드#

plans-img 엔터프라이즈 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

Mattermost v10.4부터 Mattermost Enterprise 고객은 대체 캐시 백엔드로 Redis (Remote Dictionary Server)를 구성할 수 있습니다. Redis는 데이터베이스, 캐시, 메시지 브로커로 사용할 수 있는 오픈 소스 인메모리 데이터 구조 저장소입니다. 다양한 데이터 구조를 지원하며 메모리에 데이터를 저장하고 매우 빠른 데이터 액세스를 제공할 수 있어 성능 측면에서 최고의 선택입니다.

Redis를 캐싱 솔루션으로 사용하면 높은 동시성과 대규모 사용자 기반을 가진 엔터프라이즈 수준 배포에서 Mattermost가 심한 사용량에서도 성능과 효율성을 유지하는 데 도움이 됩니다.

다음 표에 설명된 대로 config.json 파일을 편집하여 Redis 캐시를 구성합니다. 이 섹션의 구성 설정 변경 사항은 서버를 재시작해야 적용됩니다.

캐시 유형#

캐시 유형을 정의합니다.

  • lru: (기본값) Mattermost가 인메모리 캐시 저장소를 사용합니다.

  • redis: Mattermost가 구성된 Redis 캐시 저장소를 사용합니다.

  • 시스템 구성 경로: N/A

  • config.json 설정: CacheSettings > CacheType, > lru

  • 환경 변수: MM_CACHESETTINGS_CACHETYPE

Redis 주소#

Redis 호스트의 호스트명입니다.

문자열 입력입니다.

  • 시스템 구성 경로: N/A

  • config.json 설정: CacheSettings > RedisAddress,

  • 환경 변수: MM_CACHESETTINGS_REDISADDRESS

Redis 비밀번호#

Redis 호스트의 비밀번호입니다.

문자열 입력. 비밀번호가 없는 경우 비워두세요.

  • 시스템 구성 경로: N/A

  • config.json 설정: CacheSettings > RedisPassword,

  • 환경 변수: MM_CACHESETTINGS_REDISPASSWORD

Redis 데이터베이스#

Redis 호스트의 데이터베이스입니다.

0부터 15까지의 0 기반 숫자입니다. 일반적으로 0 으로 설정됩니다. Redis는 최대 16개의 데이터베이스를 허용합니다.

  • 시스템 구성 경로: N/A

  • config.json 설정: CacheSettings > RedisDB,

  • 환경 변수: MM_CACHESETTINGS_REDISDB

클라이언트 캐시 비활성화#

Redis의 클라이언트 측 캐시를 비활성화합니다.

  • true: Redis의 클라이언트 측 캐시가 비활성화됩니다. 일반적으로 테스트 옵션으로 사용되며 프로덕션 환경에서는 사용하지 않습니다.

  • false: (기본값) Redis의 클라이언트 측 캐시가 활성화됩니다.

  • 시스템 구성 경로: N/A

  • config.json 설정: CacheSettings > DisableClientCache, > false

  • 환경 변수: MM_CACHESETTINGS_REDISDB

Redis 캐시 접두사#

모든 Redis 캐시 키에 접두사를 추가합니다.

  • 시스템 구성 경로: N/A

  • config.json 설정: CacheSettings > RedisCachePrefix

  • 환경 변수: MM_CACHESETTINGS_REDISCACHEPREFIX

모든 Redis 캐시 키에 접두사를 추가하면 키 충돌을 줄이고, 디버깅을 단순화하며, 데이터를 격리하고, Redis 기반 시스템의 관리 및 확장을 위한 명확한 구조를 제공합니다. 여러 시스템이나 테넌트가 동일한 Redis 인스턴스를 사용하는 환경에서는 접두사가 데이터 무결성과 운영 효율성을 유지하는 데 중요해집니다.

웹허브 채널 반복 활성화#

채널의 웹소켓 브로드캐스팅 성능을 제어합니다.

활성화하면 웹소켓 브로드캐스팅 성능이 향상되지만, 사용자가 채널에 참여하거나 나갈 때 성능이 저하될 수 있습니다.

Mattermost를 활발히 사용하는 동시 사용자가 최소 200,000명 이상이 아닌 경우 권장되지 않습니다.

기본적으로 비활성화되어 있습니다.

  • 시스템 구성 경로: N/A

  • config.json 설정: ServiceSettings > EnableWebHubChannelIteration, > false

  • 환경 변수: MM_SERVICESETTINGS_ENABLEWEBHUBCHANNELITERATION