Slack에서 마이그레이션#
참고
Slack의 데이터 제어 정책은 언제든지 변경될 수 있습니다. 또한 Slack은 내보내기 기능을 변경하거나 Slack에 저장된 데이터를 내보내는 데 고객에게 요금을 부과할 수 있습니다. Slack Enterprise에서 고객 IP 내보내기 협상을 위한 지원은 Mattermost 전문가 에 문의하여 요청할 수 있습니다.
Slack에서 Mattermost로 마이그레이션하는 과정에는 다음 단계가 포함됩니다:
1. Mattermost 서버 준비#
가져오기 프로세스 중에는 Slack 워크스페이스 데이터를 가져오기 위해 새 팀을 만드는 것이 좋습니다. 여러 Slack 워크스페이스를 단일 팀으로 병합하는 것이 원하는 최종 결과라면, 별도의 팀으로 가져오기를 완료하고 결과를 검증한 다음 mmctl 를 사용하여 팀 간에 채널을 이동하는 것을 권장합니다.
또한 사용자 이름이 일치하고 해당 사용자가 Slack 워크스페이스의 관리자가 아닌 경우 시스템 관리자 역할이 덮어쓰기됩니다.
최신 기능과 수정 사항을 활용하려면 Mattermost 의 지원되는 버전을 실행하고 있는지 확인하세요.
2. Slack 가져오기 생성#
Slack은 제품에서 데이터를 내보내는 두 가지 방법을 제공합니다.
일반 내보내기 - 공개 채널 게시물만 포함합니다. 비공개 채널, DM 또는 그룹 대화는 포함되지 않습니다. 이는 Slack > 관리 > 워크스페이스 설정 > 가져오기/내보내기 데이터 > 내보내기 > 내보내기 시작 에서 생성할 수 있습니다.
기업용 내보내기 - 모든 게시물을 포함합니다. 여기에는 공개 채널, 비공개 채널, DM 및 그룹 메시지가 포함됩니다. Slack에서 직접 이 내보내기 유형을 요청 해야 합니다.
다음 내용이 포함된 zip 파일을 받게 됩니다:
채널 (
channels.json)사용자 (
users.json)다이렉트 메시지 (
dms.json) (기업용 내보내기)비공개 채널 (
groups.json) (기업용 내보내기)그룹 다이렉트 메시지 (
mpims.json) (기업용 내보내기)앱 활동 로그 (
integration_logs.json)모든 공개 채널의 게시물이 포함된 폴더
모든 비공개 채널의 게시물이 포함된 폴더 (기업용 내보내기)
참고
zip 파일 내용에 대한 추가 세부 정보는 Slack 도움말 문서 를 참조하세요.
독점 SaaS 서비스인 Slack은 내보내기 형식을 사전 통지 없이 빠르게 변경할 수 있습니다. 다음 문서에 언급되지 않은 문제가 발생하면 이슈 제출 을 통해 Mattermost 제품 팀에 알려주세요.
3. 파일 첨부물 및 이메일 주소 다운로드#
Slack 내보내기 zip 파일을 다운로드할 때 일부 데이터는 zip 파일에서 누락됩니다:
사용자 이메일
업로드된 첨부 파일 내용
이러한 내용을 수집하기 위해 Slack 앱을 생성해야 합니다. Slack 앱을 생성하려면 다음 단계를 따르세요:
https://api.slack.com/apps로 이동하세요.
앱 만들기 를 선택하세요.
처음부터 를 선택하세요.
앱 이름을 Slack Advanced Exporter 로 지정하고 워크스페이스를 선택하세요. 모든 워크스페이스에 대해 이 작업을 수행해야 합니다. 그런 다음 앱 만들기 를 선택하세요.
화면 왼쪽에서 OAuth & Permissions 를 선택하세요. 그런 다음 Scopes 로 스크롤하세요.
Bot Token Scopes 아래에서 다음 범위를 입력하고 선택하세요:
users:read
users:read.email
위로 스크롤하여 워크스페이스에 설치 를 선택하세요.
메시지가 표시되면 앱 권한을 부여하세요.
Bot User OAuth Token 을 복사하여 편리한 곳에 저장하세요.
이제 Bot User OAuth Token 을 slack-advanced-exporter 도구와 함께 사용하여 이메일과 첨부 파일을 다운로드할 것입니다. OS 및 아키텍처에 맞는 slack-advanced-exporter 의 최신 릴리스를 여기 에서 다운로드하고 실행 파일을 추출하세요.
프로그램을 로컬에 다운로드한 후, 아래 명령어를 실행하여 이메일을 가져온 다음 파일 첨부물을 가져오세요. <SLACK TOKEN> 을 이전에 생성한 Slack 토큰으로, <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>
참고
첫 번째 명령어는 모든 사용자 이메일을 수집하여
export-with-emails.zip파일을 생성합니다. 두 번째 명령어는 첨부 파일을 가져와서 앞으로 사용할export-with-emails-and-attachments.zip파일을 생성합니다.파일 업로드가 많은 경우 두 번째 명령어는 시간이 오래 걸릴 수 있습니다. 중단된 경우 생성된 파일(있는 경우)을 삭제하고 다시 시작하세요.
export-with-emails-and-attachments.zip 파일에는 이제 Mattermost로 가져오는 데 필요한 모든 정보가 포함되어 있습니다.
큰 첨부 파일을 복사하는 것을 피하기 위해 먼저 이메일을 가져오는 것이 좋습니다. 도구가 제자리 수정을 지원하지 않으므로 각 단계에서 다른 파일 이름을 선택해야 합니다.
중요
Slack 내보내기 파일의 압축을 풀고 다시 압축하는 것을 피하세요. 이렇게 하면 아카이브의 디렉토리 구조가 변경되어 가져오기 프로세스에 문제가 발생할 수 있습니다.
4. Slack 가져오기를 Mattermost의 일괄 내보내기 형식으로 변환#
이메일과 첨부 파일이 있는 Slack 내보내기 파일이 있으니, 가져오기 준비 도구 mmetl 을 사용하여 이 정보를 Mattermost의 일괄 가져오기 형식으로 변환해 보겠습니다.
OS 및 아키텍처에 맞는 mmetl 의 최신 릴리스를 여기 에서 다운로드하세요. 도구 사용법에 대해 자세히 알아보려면 mmetl help 를 실행하세요.
Mattermost 일괄 가져오기 파일을 생성하려면 아래 명령어를 실행하세요. <TEAM-NAME> 을 Mattermost의 팀 이름으로 바꾸세요. 이름은 한 단어이고 소문자여야 합니다(예: 팀 이름이 My Team 인 경우 <TEAM-NAME> 은 my-team 이 됩니다).
./mmetl transform slack --team <TEAM-NAME> --file export-with-emails-and-attachments.zip --output mattermost_import.jsonl
이 도구는 사용자, 채널, 게시물을 모두 포함하는 .jsonl 파일을 출력합니다. 또한 모든 첨부 파일이 포함된 data 폴더도 생성합니다. 사용자의 기본 인증 방법은 이메일/비밀번호로 구성됩니다. 인증 방법을 다른 선택으로 마이그레이션하는 방법은 아래 섹션 을 참조하세요.
중요
.jsonl 파일의 이름은 중요하지 않습니다. 위에서 보여드린 것처럼 –output 플래그를 사용하여 원하는 이름을 지정할 수 있습니다. 단지 .jsonl 파일이어야 합니다.
5. Mattermost로 데이터 가져오기#
서버나 다른 컴퓨터에서 mmctl 명령어를 사용하여 Mattermost API를 통해 내보내기를 업로드할 수 있습니다. 서버는 가져오기를 실행하기 전에 파일 저장소(예: AWS S3)에 가져오기를 저장하므로 이 경우 파일을 업로드/다운로드하는 데 시간이 소요됩니다.
마이그레이션은 멱등성을 가지므로, 동일한 게시물을 포함하는 여러 가져오기를 실행해도 Mattermost에 중복된 게시물이 생성되지 않습니다. 각 게시물은 Slack 인스턴스의 올바른 사용자/작성자와 created_at 값으로 가져옵니다. 스레드는 가져오기와 함께 그대로 유지됩니다.
Mattermost 명령줄 도구 mmctl 이 설치되어 있는지 확인하세요. 이를 통해 Mattermost API와 통신하는 다양한 작업을 수행할 수 있습니다. 도구에 대한 인증 구성 도 필요합니다.
서버에 업로드할 파일을 준비하려면 .jsonl 파일과 data 폴더를 함께 zip 파일로 만들어야 합니다.
zip -r mattermost-bulk-import.zip data mattermost_import.jsonl
그런 다음 zip 파일을 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 명령을 사용할 수 있습니다.
중요
Slack에서 가져오는 사용자 그룹의 일부인 경우, Mattermost 프로필이 jsonl 파일의 해당 user 줄과 일치하는 사용자 이름과 이메일을 가져야 합니다. Mattermost 사용자와 일치하도록 파일을 수동으로 편집할 수 있습니다.
추가 도구#
mm-emoji - Slack 인스턴스에서 Mattermost로 이모지를 원활하게 전환하도록 설계되었습니다.
mm-importjs - 큰 가져오기 파일을 더 작은 파일로 분할하고, Mattermost로 데이터를 가져올 때 게시물 내용의 null 문자를 자동으로 제거합니다.
slack-migrate-pinned-posts - Slack에서 Mattermost로 고정된 게시물을 마이그레이션합니다.
가져온 팀 사용하기#
가져오기 프로세스 중에 Slack의 이메일과 사용자 이름을 사용하여 새로운 Mattermost 계정이 생성됩니다. Slack 내보내기 아카이브에 이메일이 없는 경우, 자리 표시 값이 생성되고 시스템 관리자가 이를 수동으로 업데이트해야 합니다. 관리자는 가져오기 전에 누락된 정보를 해결하기 위해 최종 가져오기
jsonl파일에서 이메일 속성에@example.com이 포함된user줄을 검색하는 것이 좋습니다.Slack 사용자는 Slack의 이메일 주소를 사용하여 Mattermost의 비밀번호 재설정 화면에서 Mattermost 계정의 새 비밀번호를 설정할 수 있습니다.
로그인하면 Mattermost 사용자는 Slack에서 가져온 공개 채널의 이전 Slack 메시지에 접근할 수 있습니다.
사용자 인증을 LDAP 또는 SAML로 마이그레이션하는 방법에 대한 지침은 여기 에서 찾을 수 있습니다.