以下の内容はhttps://honobono-ahiru.hatenablog.com/entry/2025/02/28/230057より取得しました。


s25t障害に関する事後報告20250228

2025年2月27日に social.mikutter.hachune.net(以下s25t)においてサーバーにアクセスができない問題が発生しました。

障害発生期間

2025/02/27 20:00 - 22:20

障害内容

ディスクフルによってDBが停止しました。

被害

原因

mastodonとは別に立ち上げていたサービスがストレージを食い尽くしていました。
概ね230GB程度の容量が消費されていました。
当該サービスはDockerコンテナで運用されていましたが、ダウンさせたところ容量が回復したため揮発性の高い領域が食い潰していたと思われます。

また、mackerelにメトリクスは送付していたものの、アラートの設定が漏れており障害発生まで状況を把握できていませんでした。

対応

  • 原因となったサービスの停止をしました。
  • mackerelでファイルシステムの使用量のアラートを設定しました。

対応経緯

時分 事象
20:03 外形監視によるヘルスチェックに失敗し始める。
20:05 ヘルスチェックアラートが通知される。
20:42 仕事を終え、アラートに気づく。
20:45 帰宅中、実家に連絡して状況確認。ネットワークの疎通や電源に問題ないことを確認。
21:40 帰宅。腹痛でお手洗いに籠る。
21:55 調査開始。
22:05 DBのログよりディスクフルを確認。df -h を見て絶望。
22:10 調査の過程で適当にサービスを落としたら容量が回復。意図せず原因が判明。
22:20 mastodonのサービスを再起動。復旧。
23:50 監視ルールの追加。

Appendix

ディスクフルのログ

PANIC:  could not write file "/var/lib/postgresql/data/global/pg_control": No space left on device

消えないdockerネットワーク

異常終了した影響で、すでに停止しているコンテナがネットワークを握っているような状況になっていたため、強制的に削除しました。

docker network inspect [container_name]
docker network disconnect --force [network_name] [container_name]
docker compose down 

アラートの追加

mackerel-agentのcheck-pluginによるファイルシステムの監視ルールの追加をしました。 mackerel.io

また、上記と重複する形になり意味はないですが、式による監視も勉強がてら追加しました。 dev.classmethod.jp

まとめ

周囲がディスクフルで死ぬ様はたまに観測していましたが、遂に当事者になりました。
メトリクスだけでアラート忘れ、要因がmastodonではなく別サービスなどツッコミどころ多数の障害となりましたが学びになりました。
焼けていなくてよかったです。

s25tユーザーの皆様におかれましては、サーバの復旧を待っていただきありがとうございました。
39.39




以上の内容はhttps://honobono-ahiru.hatenablog.com/entry/2025/02/28/230057より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14