Migrate from Slack

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

deployment-img self-hosted 배포판

Migrating from Slack to Mattermost involves the following steps:

  1. Mattermost 서버 준비

  2. Slack 가져오기 생성

  3. 파일 첨부 및 이메일 주소 다운로드

  4. Slack 가져오기를 Mattermost 형식으로 변환

  5. 데이터를 Mattermost로 가져오기

1. Mattermost 서버 준비

가져오기 프로세스 중에, Slack 워크스페이스 데이터를 가져오기 위해 새 팀을 생성하는 것을 권장합니다. 여러 Slack 워크스페이스를 단일 팀으로 병합하는 것이 원하는 최종 결과라면, 가져오기를 별도의 팀으로 완료하고 결과를 확인한 후, mmctl 를 사용하여 팀 간 채널을 이동하는 것을 권장합니다.

또한, 사용자 이름이 일치하고 사용자가 Slack 워크스페이스의 관리자가 아닌 경우 시스템 관리자 역할이 덮어쓰여질 수 있습니다.

가장 최신의 기능과 수정 사항을 활용하기 위해 Mattermost 의 지원되는 버전에서 실행 중인지 확인하세요.

2. Slack 가져오기 생성

Slack은 제품에서 데이터를 내보내는 두 가지 방법을 제공합니다.

  1. 일반적인 내보내기 - 공개 채널 게시물만 포함되어 있습니다. 비공개 채널, DM 또는 그룹 대화는 포함되지 않습니다. 이를 Slack > 관리 > 워크스페이스 설정 > 가져오기/내보내기 데이터 > 내보내기 > 내보내기 시작 에서 생성할 수 있습니다.

  2. 기업용 내보내기 - 모든 게시물이 포함되어 있습니다. 이에는 공개 채널, 비공개 채널, DM 및 그룹 메시지가 포함됩니다. 이 내보내기 유형을 Slack에 직접 요청해야 합니다.

다음 내용이 포함된 압축 파일을 받게 됩니다.

  • 채널 ( channels.json )

  • 사용자 ( users.json )

  • 다이렉트 메시지 ( dms.json ) (기업용 내보내기)

  • 비공개 채널 ( groups.json ) (기업용 내보내기)

  • 그룹 다이렉트 메시지 ( mpims.json ) (기업용 내보내기)

  • 앱 활동 로그 ( integration_logs.json )

  • 모든 공개 채널의 게시물을 포함하는 폴더

  • 모든 비공개 채널의 게시물을 포함하는 폴더 (기업용 내보내기)

Note

  • 압축 파일 내용에 대한 추가 세부 정보는 Slack 도움말 기사 을 참조하세요.

  • 소유권이 있는 SaaS 서비스로서 Slack은 내보내기 형식을 빠르고 사전 통지 없이 변경할 수 있습니다. 다음 문서에 언급되지 않은 문제가 발생하면, Mattermost 제품팀에게 이슈를 제출함으로써 알려주세요.

3. 파일 첨부 및 이메일 주소 다운로드

Slack 내보내기 압축 파일을 다운로드하면, 일부 데이터가 압축 파일에서 누락될 수 있습니다.

  • 사용자 이메일

  • 업로드된 첨부 파일 내용

이러한 내용을 수집하려면 Slack 앱을 생성해야 합니다. Slack 앱을 생성하려면 다음 단계를 따르세요.

  1. https://api.slack.com/apps 에 접속합니다.

  2. 새 앱 생성 을 선택합니다.

  3. 스크래치에서 생성 을 선택합니다.

  4. 앱의 이름을 Slack 고급 내보내기 도구 로 지정하고 워크스페이스를 선택합니다. 각 워크스페이스마다 이 작업을 수행해야합니다. 그런 다음 앱 생성 을 선택합니다.

  5. 화면 왼쪽 옆의 OAuth 및 권한 을 선택합니다. 그런 다음 스코프 로 스크롤하세요.

  6. 봇 토큰 스코프 아래에 다음 스코프를 입력하고 선택하세요:

  • users:read

  • users:read.email

  1. 스크롤을 올리고 워크스페이스에 설치 를 선택합니다.

  2. 프롬프트가 표시되면 앱 권한을 부여하세요.

  3. 봇 사용자 OAuth 토큰 을 복사하고 편리한 위치에 저장하세요.

이제 봇 사용자 OAuth 토큰slack-advanced-exporter 도구와 함께 사용하여 이메일 및 첨부 파일을 다운로드합니다. OS 및 아키텍처에 맞는 최신 릴리스의 slack-advanced-exporter여기 에서 다운로드하고 다운로드한 파일에서 실행 가능한 파일을 추출하세요.

프로그램을 로컬에 다운로드한 후 아래 명령을 실행하여 이메일을 가져온 후 파일 첨부를 가져옵니다. 앞서 생성한 Slack 토큰을 <SLACK TOKEN> 으로, 내보내기 파일의 경로<SLACK EXPORT FILE> 으로 대체하세요.

./slack-advanced-exporter --input-archive <SLACK EXPORT FILE> --output-archive export-with-emails.zip fetch-emails --api-token <SLACK TOKEN>
./slack-advanced-exporter --input-archive export-with-emails.zip --output-archive export-with-emails-and-attachments.zip fetch-attachments --api-token <SLACK TOKEN>

Note

  • 첫 번째 명령은 모든 사용자 이메일을 수집하여 export-with-emails.zip 파일을 생성합니다. 두 번째 명령은 첨부 파일을 가져와 export-with-emails-and-attachments.zip 파일을 생성합니다. 이 파일을 이제 사용하게 됩니다.

  • 대량의 파일 업로드가 있는 경우, 두 번째 명령은 시간이 오래 걸릴 수 있습니다. 갑자기 중단된 경우, 생성된 파일을 삭제하고 다시 시작하세요.

파일 export-with-emails-and-attachments.zip 에는 Mattermost로 가져와야 할 모든 정보가 포함되어 있습니다.

큰 첨부 파일을 여기저기 복사하는 것을 피하기 위해 이메일을 먼저 가져오는 것이 좋습니다. 도구가 파일에 대한 인플레이스 수정을 지원하지 않으므로 각 단계에서 다른 파일 이름을 선택하는 것이 좋습니다.

Important

Slack 내보내기를 풀고 다시 압축하는 것을 피하세요. 이렇게 하면 압축 파일의 디렉터리 구조가 변경되어 가져오기 프로세스에 문제가 발생할 수 있습니다.

4. Slack 가져오기를 Mattermost의 대량 내보내기 형식으로 변환

이제 이메일 및 첨부 파일이 포함된 Slack 내보내기 파일이 있습니다. 이 정보를 사용하여 가져오기 준비 도구 mmetl 을 사용하여 Mattermost의 대량 가져오기 형식으로 변환해 보겠습니다. OS 및 아키텍처에 맞는 최신 릴리스의 mmetl여기 <https://github.com/mattermost/mmetl/releases/> 에서 다운로드하세요. 도구 사용에 대한 자세한 내용은 mmetl help 을 실행하여 알아보세요.

다음으로, 다음 명령을 실행하여 Mattermost 대량 가져오기 파일을 생성하세요. Mattermost의 팀 이름을 <TEAM-NAME> 으로 대체하세요. 이름은 “my-team”과 같이 한 단어여야 합니다.

./mmetl transform slack --team <TEAM-NAME> --file export-with-emails-and-attachments.zip --output mattermost_import.jsonl

이 도구는 모든 사용자, 채널 및 게시물이 포함된 .jsonl 파일을 출력합니다. 또한 모든 첨부 파일이 포함된 data 폴더를 생성합니다. 사용자의 기본 인증 방법은 이메일/비밀번호로 구성됩니다. 가져온 팀을 다른 선택으로 인증 방법을 마이그레이션하는 지침은 아래 섹션 을 참조하세요.

Important

이전에 표시한 대로 –output 플래그를 사용하여 .jsonl 파일의 이름은 중요하지 않습니다. 원하는 이름으로 지정할 수 있습니다. 간단히 말해, 해당 파일은 반드시 .jsonl 파일이어야 합니다.

5. Mattermost로 데이터 가져오기

서버나 다른 컴퓨터에서 mmctl 명령을 사용하여 Mattermost API를 통해 내보낸 데이터를 업로드할 수 있습니다. 이 경우 서버는 가져온 내용을 파일 저장소(e.g. AWS S3)에 저장한 후 가져올 것이므로 파일을 업로드하고 다운로드하는 데 시간이 소요됩니다.

이 마이그레이션은 멱등성을 가지며, 즉 동일한 게시물을 포함하는 여러 개의 가져오기를 실행해도 Mattermost에 중복된 생성된 게시물이 생성되지 않습니다. 각 게시물은 Slack 인스턴스에서 올바른 사용자/작성자 및 created_at 값을 가지고 가져옵니다. 가져오기 시에 쓰레드는 그대로 유지됩니다.

``mmctl``을 통해 내보낸 데이터를 업로드하려면 먼저 Mattermost 명령 줄 도구인 ``mmctl``이 설치되어 있는지 확인하세요. 이를 통해 Mattermost의 API와 통신하는 다양한 작업을 수행할 수 있습니다. 또한 이 도구를 위해 인증을 구성 해야 합니다.

서버에 업로드할 파일을 준비하기 위해 .jsonl 파일과 data 폴더를 함께 압축 파일(zip)로 만들어야 합니다.

zip -r mattermost-bulk-import.zip data mattermost_import.jsonl

그런 다음, 압축 파일을 Mattermost 서버에 업로드할 수 있습니다:

mmctl import upload ./mattermost-bulk-import.zip

다음 명령을 실행하여 사용 가능한 가져오기를 나열합니다:

mmctl import list available

가져오기를 처리하기 위해 다음 명령을 실행하세요. mmctl import list available 명령에서 얻은 이름으로 <IMPORT FILE NAME> 를 대체하세요:

mmctl import process <IMPORT FILE NAME>

마지막으로, 가져오기 작업의 상태를 보기 위해 다음 몤령을 실행하세요. 작업 상태가 대기 중(pending) 으로 표시되는 경우, 다시 명령을 실행하기 전에 기다려야 합니다. 가능한 오류 메시지를 보려면 --json 플래그를 사용해야 합니다. mmctl import list process 명령에서 얻은 id로 <JOB ID> 를 대체하세요:

mmctl import job show <JOB ID> --json

가져오기 디버그

mmctl import job show 명령을 사용하여 발생한 모든 관련 오류를 확인할 수 있습니다.

Important

Slack에서 가져온 사용자 그룹의 일부인 경우, Mattermost 프로필에 일치하는 사용자 이름 및 이메일이 있어야 합니다. Mattermost 사용자와 일치하도록 파일을 수동으로 편집할 수 있습니다.

추가 도구

  • mm-emoji - Slack 인스턴스에서 Mattermost로 이모지를 원할하게 전환하기 위해 설계되었습니다.

  • mm-importjs - 대용량 가져오기 파일을 작은 파일로 분할하고, Mattermost로 데이터를 가져올 때 게시물 콘텐츠의 널(null) 문자를 자동으로 제거합니다.

  • slack-migrate-pinned-posts - Slack의 고정된 게시물을 Mattermost로 이관합니다.

가져온 팀 사용

  • 가져오기 프로세스 중에, Slack의 이메일 및 사용자 이름을 사용하여 새로운 Mattermost 계정을 만듭니다. Slack 내보내기 아카이브에 이메일이 없는 경우, 플레이스홀더 값이 생성되며 시스템 관리자는 이를 수동으로 업데이트해야 할 것입니다. 시스템 관리자는 최종 가져오기 jsonl 파일에서 @example.com 과 같은 이메일 속성을 가진 user 라인을 찾아 문제를 해결하고 가져오기 전에 누락된 정보를 해결할 것을 권장합니다.

  • Slack 사용자는 Mattermost의 비밀번호 재설정 화면을 사용하여 Slack에서의 이메일 주소를 사용하여 새로운 비밀번호를 설정하여 새로운 Mattermost 계정을 활성화할 수 있습니다.

  • 로그인한 후에는 Mattermost 사용자가 Slack에서 가져온 공용 채널의 이전 메시지에 액세스할 수 있습니다.

  • 사용자 인증을 LDAP 또는 SAML로 마이그레이션하는 방법에 대한 지침은 여기 에서 찾을 수 있습니다.