練習問題:ログ解析と監視(実務再現)(Lv3〜4/8問)

アクセスログを例に、HTTPステータス集計、URLランキング、時間範囲抽出など“初動対応”を再現する練習問題です。
想定時間:各6〜10分

1) ステータスコードごとの件数を集計する

問題access.log を読み込み、HTTPステータスコードごとの件数をカウントして表示してください。

解答例

awk ‘{print $9}’ access.log | sort | uniq -c | sort -nr

2) 404 エラーの件数を数える

問題access.log から 404 Not Found の件数だけを集計してください。

解答例

grep ‘ 404 ‘ access.log | wc -l

3) 最も多くアクセスされた URL を上位10件表示する

問題:アクセスログの URL部分(7列目) を取り出し、出現回数の多い順に上位10件を表示してください。

解答例

awk ‘{print $7}’ access.log | sort | uniq -c | sort -nr | head -n 10

4) 特定の時間帯(10時台)のリクエストだけを抽出する

問題access.log から 10時台([10:00〜10:59]) のアクセス行だけを取り出してください。

解答例

grep ‘[.*10:[0-5][0-9]:’ access.log

5) エラーレベルを含む行を検出する

問題app.log から ERROR または WARN を含む行を抽出してください。

解答例

grep -E ‘ERROR|WARN’ app.log

6) アクセス元 IP のランキングを作る

問題:アクセスログの 先頭フィールド(IPアドレス) を集計し、上位5件を表示してください。

解答例

awk ‘{print $1}’ access.log | sort | uniq -c | sort -nr | head -n 5

7) 大きなレスポンスサイズを検知する

問題:アクセスログの レスポンスサイズ(10列目)100000以上の行だけを抽出してください。

解答例

awk ‘$10 >= 100000’ access.log

8) リアルタイムでログを監視する

問題access.log追跡して新しい行をリアルタイム表示してください。

解答例

tail -f access.log

学習のヒント

  • 集計awk '{print $9}' | sort | uniq -c
  • ランキング:ソート+uniq+sort -nr
  • 時間帯指定:ログフォーマットを正規表現で絞る
  • リアルタイム監視tail -f は基本、より高度な監視は journalctl -fmultitail

これらの問題を繰り返すことで「障害発生時にまず確認すべき切り口」を自然に身につけられます。

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする