10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

これは自分が実際にやらかした話です。
障害は復旧できました。でも「なぜ起きたか」は最後まで分かりませんでした。
理由は単純で、ログが無かったからです。

何が起きたか(実体験)

ある日、サービスが突然落ちました。

  • ユーザーから「繋がらない」と連絡
  • サーバーは生きているがアプリが死んでいる
  • 再起動したら復旧した

しかし…

  • アプリのログが無い
  • ミドルウェアのログが無い
  • OSログはローテーションで消えていた

つまり、何が起きたのか誰にも分からない状態でした。

その時の気持ち

復旧はできた。
でも「原因が不明」という状態はずっと不安が残ります。

  • また起きたらどうする?
  • 次はもっと大きな障害になるのでは?
  • 誰かに説明できない

この状態が一番つらかったです。

なぜログが重要か

項目 ログあり ログなし
原因特定 可能 不可能
再発防止 可能 ほぼ無理
説明責任 果たせる 果たせない

ログは「保険」ではなく「証拠」でした。

学んだ教訓

1. 障害は必ず起きる前提で設計する

障害は例外ではなく、前提条件です。
「起きた後どう調べるか」を最初から設計すべきでした。

2. ログは必ず集約する

各サーバーに散らばるログは実質見れません。
ELK, Loki, Cloud Logging などへの集約が必須です。

3. 保存期間を決める

最低30日、可能なら90日以上。
「必要になった時にはもう無い」が一番多い。

4. ログ出力はレビュー対象にする

機能だけでなく「ログが十分か」もレビューする。

まとめ

障害対応で一番怖いのは「原因不明で終わること」です。
その状態を防ぐ唯一の手段がログでした。

ログは取ろう。必ず。最初から。

10
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?