Migrate from Slack
모든 플랜 에서 사용 가능
self-hosted 배포판
Migrating from Slack to Mattermost involves the following steps:
1. Mattermost 서버 준비
가져오기 프로세스 중에, Slack 워크스페이스 데이터를 가져오기 위해 새 팀을 생성하는 것을 권장합니다. 여러 Slack 워크스페이스를 단일 팀으로 병합하는 것이 원하는 최종 결과라면, 가져오기를 별도의 팀으로 완료하고 결과를 확인한 후, mmctl 를 사용하여 팀 간 채널을 이동하는 것을 권장합니다.
또한, 사용자 이름이 일치하고 사용자가 Slack 워크스페이스의 관리자가 아닌 경우 시스템 관리자 역할이 덮어쓰여질 수 있습니다.
가장 최신의 기능과 수정 사항을 활용하기 위해 Mattermost 의 지원되는 버전에서 실행 중인지 확인하세요.
2. Slack 가져오기 생성
Slack은 제품에서 데이터를 내보내는 두 가지 방법을 제공합니다.
일반적인 내보내기 - 공개 채널 게시물만 포함되어 있습니다. 비공개 채널, DM 또는 그룹 대화는 포함되지 않습니다. 이를 Slack > 관리 > 워크스페이스 설정 > 가져오기/내보내기 데이터 > 내보내기 > 내보내기 시작 에서 생성할 수 있습니다.
기업용 내보내기 - 모든 게시물이 포함되어 있습니다. 이에는 공개 채널, 비공개 채널, DM 및 그룹 메시지가 포함됩니다. 이 내보내기 유형을 Slack에 직접 요청해야 합니다.
다음 내용이 포함된 압축 파일을 받게 됩니다.
채널 (
channels.json
)사용자 (
users.json
)다이렉트 메시지 (
dms.json
) (기업용 내보내기)비공개 채널 (
groups.json
) (기업용 내보내기)그룹 다이렉트 메시지 (
mpims.json
) (기업용 내보내기)앱 활동 로그 (
integration_logs.json
)모든 공개 채널의 게시물을 포함하는 폴더
모든 비공개 채널의 게시물을 포함하는 폴더 (기업용 내보내기)
Note
압축 파일 내용에 대한 추가 세부 정보는 Slack 도움말 기사 을 참조하세요.
소유권이 있는 SaaS 서비스로서 Slack은 내보내기 형식을 빠르고 사전 통지 없이 변경할 수 있습니다. 다음 문서에 언급되지 않은 문제가 발생하면, Mattermost 제품팀에게 이슈를 제출함으로써 알려주세요.
3. 파일 첨부 및 이메일 주소 다운로드
Slack 내보내기 압축 파일을 다운로드하면, 일부 데이터가 압축 파일에서 누락될 수 있습니다.
사용자 이메일
업로드된 첨부 파일 내용
이러한 내용을 수집하려면 Slack 앱을 생성해야 합니다. Slack 앱을 생성하려면 다음 단계를 따르세요.
https://api.slack.com/apps 에 접속합니다.
새 앱 생성 을 선택합니다.
스크래치에서 생성 을 선택합니다.
앱의 이름을 Slack 고급 내보내기 도구 로 지정하고 워크스페이스를 선택합니다. 각 워크스페이스마다 이 작업을 수행해야합니다. 그런 다음 앱 생성 을 선택합니다.
화면 왼쪽 옆의 OAuth 및 권한 을 선택합니다. 그런 다음 스코프 로 스크롤하세요.
봇 토큰 스코프 아래에 다음 스코프를 입력하고 선택하세요:
users:read
users:read.email
스크롤을 올리고 워크스페이스에 설치 를 선택합니다.
프롬프트가 표시되면 앱 권한을 부여하세요.
봇 사용자 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로 마이그레이션하는 방법에 대한 지침은 여기 에서 찾을 수 있습니다.