きっかけ
Slack使ってる環境で、いつも同じ課題に直面していた。無料プランの制限で古いメッセージが削除されちゃうし、有料プランに上げるほどでもない。けど重要なやり取りが埋もれるのは本当にもったいなくて、何か解決策がないか探してたら Wesm Msgvault を見つけた。
セットアップと導入方法
セットアップは意外とシンプル。GitHub からクローンして、Slack API トークンを設定して、スクリプト走らせたら動いた。初回実行は少し時間かかったけど、既存メッセージのバックアップが全部取られたのは感動した。その後は定期実行で新しいメッセージを自動でキャッチしてくれる。
git clone https://github.com/wesm/msgvault
python setup.py install
Slack API トークンの取得は、Slack API のダッシュボードでアプリを作成し、Bot Token Scopes に channels:history、channels:read、users:read を追加する。取得したトークンを環境変数か設定ファイルに記述すれば準備完了だ。
実行してすぐに、チャンネル全体のメッセージが一覧できるダッシュボードが立ち上がった。思ったより直感的で、その日のうちに検索かけてた。
ここが良い
一番良かったのは、検索が本当に快適ってことだ。Slack 内での検索は有料プラン限定だけど、このツールを使うと無料でメッセージ全文検索できる。特にエンジニアとして、過去のデプロイログとかトラブル解決の経緯を掘り返す場面は多いんだけど、今はコマンド一発で該当メッセージが見つかる。今まで「あのときどうやって解決したっけ」で余計な時間を使ってたのが、かなり減った。
気になった点
ドキュメントがまだ少なめなので、カスタマイズしたいときは GitHub の Issue や README をじっくり読む必要がある。あと複数ワークスペースを管理するときの設定が少し複雑だった。大規模なワークスペース(数千チャンネル規模)ではバックアップ時間がかかるため、チャンネル単位でフィルタリングして必要なデータだけ取得するのが実用的だ。ストレージ容量にも注意が必要で、添付ファイルを含めると想定以上にディスクを消費する場合がある。テキストメッセージのみであれば1万メッセージあたり数MBに収まるが、画像やPDF添付が多いチャンネルでは数GBに達することもあるため、定期的にストレージ使用量を確認しておこう。
定期バックアップの自動化
MsgVaultの真価は定期実行にある。cronジョブやCI/CDパイプラインに組み込むことで、新規メッセージを自動でバックアップし続けられる。Apache Airflowのようなワークフローエンジンと連携すれば、バックアップの成否通知やリトライ処理も自動化できる。
# crontab で毎日深夜にバックアップ
0 2 * * * cd /path/to/msgvault && python sync.py
まとめ
Slack の情報資産を長期保存したい組織には本当に向いてると思う。特に技術情報が多いチームほど価値が出る。社内ナレッジベースを無理に外部ツールで作らなくても、Slack の中で完結させたい人は試してみてほしい。自分も使い続けるつもり。
保存したSlackデータをAIで検索・分析したい場合はRAGFlowをナレッジベースとして組み合わせると強力です。開発チームのナレッジ管理全体を体系化するならClawTeamも参考になります。