전자 발견
Enterprise 플랜에서 사용 가능
self-hosted 배포판
전자 발견(또는 eDiscovery로도 알려짐)은 전자 데이터를 법적 사례에서 증거로 사용하기 위해 검색되는 프로세스를 가리킵니다.
이 페이지에서는 Mattermost에서 데이터를 추출하는 방법을 설명합니다. Mattermost에서 사용자 게시 데이터를 추출하는 목표를 달성하기 위해 사용할 수 있는 세 가지 주요 방법이 있습니다.
각 옵션에 대해 아래에서 자세히 논의됩니다.
Note
소송 유보(법적 유보로도 알려짐)는 기록을 검색하는 것 외에, 현재나 미래의 법적 사례에 관련이 있을 수 있다고 여겨지는 경우에는 전자 저장된 정보나 종이 문서가 폐기되지 않는 전자 발견의 연장입니다.
Mattermost 컴플라이언스 익스포트
Mattermost Enterprise에는 컴플라이언스 보고서 익스포트 기능이 있습니다.
Mattermost는 메시지의 내용이나 해당 메시지를 본 사람에 대한 내용을 포함하여 Actiance XML, Global Relay EML 및 일반 CSV와 같은 세 가지 형식으로 구성하여 컴플라이언스 관련 데이터를 익스포트할 수 있습니다. 보고서는 지연 기반으로 구성될 수 있고 공유 위치에 저장될 수 있습니다.
익스포트 기능 및 보고 설정에 대한 자세한 정보는 도큐먼트에서 확인하세요 .
Mattermost RESTful API
Mattermost API를 사용하여 Mattermost Enterprise의 일부인 CSV 컴플라이언스 형식으로 사용자의 게시물을 익스포트할 수 있습니다. 다음 섹션에서는 API를 사용하여 특정 사용자의 보고서를 작성하고 검색하는 방법을 안내합니다. Mattermost API의 전체 도큐먼트는 https://api.mattermost.com에서 찾을 수 있습니다.
API를 사용하려면 먼저 여기에 설명된대로 인증 해야 합니다. 인증하는 계정에는 `` manage_system `` 권한이 있어야 합니다. 만약 curl을 사용한다면, 다음 명령을 사용하여 인증할 수 있습니다:
curl -i -d '{"login_id": "username", "password": "password"}' https://yourmattermosturl/api/v4/users/login
Mattermost는 다음과 같이 보이는 응답을 반환할 것입니다:
HTTP/2 200
server: nginx/1.10.3 (Ubuntu)
date: Thu, 12 Jul 2018 14:43:45 GMT
content-type: application/json
content-length: 679
set-cookie: MMAUTHTOKEN=yi94pwci6ibjfc9phbikhqutbe; Path=/; Expires=Sat, 11 Aug 2018 14:43:45 GMT; Max-Age=2592000; HttpOnly; Secure
set-cookie: MMUSERID=qfjzamfg47bu9gsyyfbqjk4s6a; Path=/; Expires=Sat, 11 Aug 2018 14:43:45 GMT; Max-Age=2592000; Secure
token: yi94pwci6ibjfc9phbikhqutbe
x-request-id: 5y45pxyfxpb8updtge1zts39he
x-version-id: 5.0.0.5.0.1.18c0fbd759664a85fe95132bb7fc04cf.true
Mattermost에서 반환되는 `` token `` 값을 향후 API 요청의 Authorization 헤더의 일부로 사용하는 것이 좋습니다. 이를 Bearer 방법으로 사용자의 API 요청에 포함하여 curl 예시는 다음과 같습니다:
curl -i -H 'Authorization: Bearer yi94pwci6ibjfc9phbikhqutbe http://yourmattermosturl/api/v4/users/me
Mattermost에 인증하면 Compliance API를 사용하여 새로운 컴플라이언스 보고서를 작성할 수 있습니다 . curl을 사용한 아래 예시는 Mattermost에 요청을 보내어 사양되는 인증 토큰을 기반으로 보고서를 작성하도록 요청하는 방법을 보여줍니다.
Note
JSON 페이로드의 데이터는 Unix Epoch 형식으로 포맷되어 있어야 합니다. https://www.epochconverter.com/와 같은 도구는 필요한 형식으로 변환 시 유용합니다.
curl --header "Content-Type: application/json" \
--request POST \
-H 'Authorization: Bearer yi94pwci6ibjfc9phbikhqutbe \
--data '{"id":"","create_at":0,"user_id":"craig","status":"","count":0,"desc":" ","type":"","start_at":1514769359000,"end_at": 1546305359000,"keywords":"","emails":"craig@mattermost.com"}' \
https://yourmattermosturl/api/v4/compliance/reports
만약 요청이 성공하면, Mattermost는 서버에서 컴플라이언스 익스포트 프로세스를 실행 중임을 나타내는 다음과 유사한 메시지를 반환할 것입니다:
{"id":"du6kektczifqxexeroywpz3nbc"," create_at":1531444617901, "user_id":"qfjzamfg47bu9gsyyfbqjk4s6a", "status":"running", "count":0, "desc":" ", "type":"adhoc", "start_at":1514769359000, "end_at":1546305359000, "keywords":"", "emails":"craig@mattermost.com"}
익스포트 프로세스가 완료되면(실행 시간은 반환할 레코드 수 및 현재 서버 부하에 따라 다름), Mattermost에게 보고서를 포함한 zip 파일을 검색하고 다운로드하기 위해 또 다른 HTTP Post 요청을 보내어야 합니다. 이때 curl 요청은 다음과 유사할 것입니다:
curl --request GET \
-H 'Authorization: Bearer p9o1qx457fbc9gdrn39z9ah59o' \
--data '{"status_code":0,"id":"du6kektczifqxexeroywpz3nbc","message":"","requestion_id":""}' \
--output report-zip.zip \
https://yourmattermosturl/api/v4/compliance/reports/du6kektczifqxexeroywpz3nbc/download
요청을 보낼 때, 보고서가 작성될 때 Mattermost에 의해 반환된 응답에서 보고서 ID를 얻어야 합니다. 또한 해당 파일을 저장할 이름을 제공해야 합니다. 위 예시에서는 파일이 report-zip.zip
로 저장될 것입니다.
Mattermost 데이터베이스
표준 SQL을 사용하여 Mattermost 데이터베이스에서 메시지를 선택하는 것은 매우 쉽습니다. 해당 사용자의 모든 메시지를 선택하기 위해 다음 쿼리를 사용할 수 있습니다:
SELECT * FROM mattermost.Posts WHERE UserId = (SELECT Id FROM mattermost.Users WHERE Username = 'username');
위의 쿼리를 기반으로 결과를 날짜 및 시간에 따라 제한하려면 다음 쿼리를 수정할 수 있습니다:
SELECT * FROM mattermost.Posts WHERE UserId = (SELECT Id FROM mattermost.Users WHERE Username = 'username' AND CreateAt > 1530405832000 AND CreateAt < 1532997832000);
Note
Mattermost 데이터베이스는 날짜와 시간을 Unix Epoch 형식으로 저장합니다. Epoch Converter 와 같은 도구를 사용하여 필요한 형식으로 변환하는 데 유용할 수 있습니다.