システムの障害を調べる手順
システムの障害とは、サーバーが決まったとおりに動かなくなることです。コンビニのレジが急に支払いを受け付けなくなる場面を、考えてみてください。
原因は、勘では当たりません。ログという記録を読み、順番に調べると、落ち着いて見つけられます。
このレッスンのゴール
メモ
ログを読んで、障害の原因を見つけることができる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| 障害 | システムが決まったとおりに動かないこと | |
| ログ | いつ何が起きたかを順に書いた記録 | |
| エラー | うまくいかなかったことを知らせる記録 | ERROR |
| 原因 | 障害が起きた、もとの理由 | |
| grep | 文字を含む行だけを探す命令 |
学生が入力するセルは、このプレビューでは空白です。
始める前に
メモ
上のバーの Start the lab を押し、マシンが動き出すまで待ってください。このラボのログは2秒ごとに行が増えるので、時刻と件数は人によって違います。
障害は決まった順番で調べる
調べる順番は、いつも同じです。まず症状を確かめ、次にログを読み、原因を考えます。そのあとで直し、最後に直ったかを確かめます。
直したあとの確認を、忘れないでください。直したつもりで、直っていないことがよくあります。
ログを書くサービスを確かめる
systemctl is-active lab-loggerここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ログの読み方
ログの1行は、時刻、重大さ、メッセージの順に並びます。重大さには、INFO(ふつうの記録)や ERROR(失敗)があります。
tail はログの最後の行を、head は最初の行を見せます。ログは新しい行が下に増えるので、新しいことは tail で見ます。
ログの最後の3行を見る
tail -n 3 /var/log/test.logここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
例: ログの1行を読む
| 時刻 | 重大さ | メッセージ |
|---|---|---|
| 2026-10-26 09:14:02 | INFO | request handled in 42 ms |
| 2026-10-26 09:14:04 | ERROR | payment service did not answer |
学生が入力するセルは、このプレビューでは空白です。
エラーの行だけを探す
ログは長いので、全部は読めません。grep ERROR を使うと、ERROR を含む行だけが出ます。grep -c は、行の数だけを答えます。
|(パイプ)は、左の命令の出力を、右の命令へ渡します。grep ERROR file | tail -n 2 で、最新のエラーを2つ見られます。
エラーの行の数を数える
grep -c ERROR /var/log/test.logここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
最新のエラーを2つ見る
grep ERROR /var/log/test.log | tail -n 2ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ファイルの行数を数える
wc -l /srv/lab-web/report.csvここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
よくある間違い
注意
エラーが出たら、そのエラーが原因だと考える人がよくいます。ERROR は結果で、原因はその少し前の行にあることが多いです。エラーの前後の行も、あわせて読んでください。
さらに挑戦: 時間ごとの偏り
エラーが特定の時間にかたよっていたら、原因の手がかりになります。夜の3時に集中するなら、その時刻に動く仕事を疑えます。
課題の errors_by_hour で、時間ごとの数を出せます。どの時間に集まるかで、何がわかるでしょうか。