Slack の過去ログの保存
我が家は家庭内コミュニケーションツールとして Slack を使ってきた。しかしこの9月からの Slack の無料プランの変更で、過去ログが 90 日分しか閲覧できなくなった。
Slack は 2018 年から使っているので結構な分量の過去ログがある。自分用のメモは bot による通知などで大した情報はないが、家族との会話は保存しておきたい。
まず Slack から Mattermost へ移行することで、今後は過去ログが閲覧できなくなる事態を回避することにした。Mattermost は自分で立てる Slack である。それなりに苦労して立てることができたし、Slack とほぼ使い勝手が同じなのでコンピューターにあまり詳しくない家族でもなんとか使えるだろう。
それと僕の iPad アプリには時々 Slack の通知が来ない不具合があるので、Mattermost へ移行することでそういう問題もなくなる。なお、Mattermost の iPad アプリは通知音が変更できないので iPad のデフォルトの通知音となる。他の通知と区別できない点で不便だ。
問題は Slack 過去のデータだ。なんとか8月末までに保存を試みたが一筋縄ではいかなかった。
Slack には公式のエキスポート機能があるが、無料プランではパブリックチャンネルしか書き出せない。プライベートチャンネルや DM は書き出せないのだ。
プライベートチャンネルや DM も合わせて書き出すには、slack-dump というツールを使えばいい。
Slackのメッセージをバックアップ - ぶっち・ブログ
https://www.takameron.info/post/slack_dump/
Mac での slack-dump の使い方が分からなかったので、僕は VMware Fusion 上の Windows 10 を利用した。
slack-dump_1.3.0_Windows_x86_64.exe を以下からダウンロードし、コマンドプロンプトにドラッグ・アンド・ドロップした上で API トークンを引数にして実行。C:\Users[ユーザー名]\ フォルダに zip ファイルが出来上がる。
Releases · takameron/slack-dump
https://github.com/takameron/slack-dump/releases
ファイルを展開してみると、たしかにプライベートチャンネルや DM も書き出されていることが分かる。
公式の書き出しファイルも、slack-dump の書き出しファイルも日付ごとの json ファイルになっている。これは閲覧が難しい。Slack から書き出したファイルの閲覧ツールを国内外で作っている人がが、どれもうまくいかなかった。これはまた時間があったらやってみよう。
公式の書き出しファイルも、slack-dump の書き出しファイルも添付ファイルは一緒に書き出されない。添付ファイルを合わせてダウンロードするツールが海外にあり、それも試してみたがうまくいかなかった。
そこで考えたのが、Mattermost へ Slack の過去ログを読み込むことだ。以下のページに従ってやってみた。
【最新版対応】Mattermostにslackのデータを移行する方法【mmctl使用】|KATのブログ
https://katblog.manadream.net/index.php/2022/07/23/mattermost-slack-data-import/
この手順には書かれていないが、(Docker ではない通常の)Ubuntu では mmctl を追加インストールする必要があった。僕は Homebrew でインストールした。
UbuntuにHomebrewをインストール – Tdomy
https://tdomy.com/2021/12/how-to-install-homebrew-on-ubuntu/
mmctl — Homebrew Formulae
https://formulae.brew.sh/formula/mmctl
しかし、VPS 上の Ubuntu および VMware Fusion に立てた Ubuntu でやってみたところ、Slack の取り込みがうまくいかない。
VMwere Fusion で Ubuntu の仮想環境を構築し、そこに Docker をインストール。そこで Mattermost を立てる方法も試した。これなら仮想環境ごと保存しておけば Mattermost のデータも保持できるはずだったが、これも Slack の取り込みが失敗する。
最終的に、Docker for Mac ではうまくいった。Mattermost の Preview 版だ。前述の「KATのブログ」さんのリンクに従い、Slack を取り込み、パブリックチャンネルの投稿および添付した写真や PDF なども閲覧できるようになった。(たぶん 2022 年9月1日以降は、90 日を超えるぶんの投稿や添付ファイルは書き出せなくなっているはず。)
本当は Docker には Mattermost の Production 版をインストールしたいところだが、僕はまだ Docker を十分に理解していないので Preview 版しかインストールできていない(Preview 版は1コマンドでインストールできる)。今後、Production 版へデータを移行できるようになりたい。安全にデータを保持したいので。
こういうわけで Slack の過去ログは、Docker for Mac で Mattermost のコンテナを立ち上げて閲覧できるようになったわけだ。
なお、念のため Slack のページをブラウザで開き、Mac の自動化ツール(Keyboard Maestro)を使ってスクリーンショットで過去ログを保存するというアナログ方式も同時に行っておいた。
参考:
Slack無料版でプライベートチャンネルをエクスポートする - Qiita
https://qiita.com/Safire/items/15b02a4bf8945cf2a382