はじめに
障害対応や調査で「ログを見てほしい」と言われたときに、
最低限これだけ知っていれば対応できる、というコマンドをまとめました。
細かいオプションを覚える必要はありません。
まずは「どういうときに何を使うか」を押さえることが重要です。
とりあえず中身を見る → less / view
ログの全体像を把握したいときに使います。
何をすればいいかわからない場合は、まずこれで開けば問題ありません。
less app.log
よく使う操作
-
/文字列:指定した文字列を検索 -
n/N:次 / 前の検索結果へ -
Shift + G:末尾へ移動 -
g:先頭へ移動 -
q:終了
実務での使い方
- まずログを開く
- 気になるキーワードで検索して全体の傾向を見る
- 末尾(最新ログ)も確認する
いきなりgrepを使うのではなく、一度全体を見ておくと誤解や見落としを防げます
検索するキーワードは状況に応じて選びます(エラー種別、処理名、IDなど)
特定の条件でログを探す → grep
ログの中から特定の条件に一致する行を抽出したいときに使います。
どういうときに使うか
- 特定のログだけを抜き出したい
- ログが出ているか確認したい(存在確認)
- 出ていないことを確認したい(存在しないことの確認)
- テストで仕込んだログを探したい
- 件数を数えたい
基本
grep "文字列" app.log
よく使うパターン
# 大文字小文字を区別しない
grep -i "文字列" app.log
# 前後の文脈も表示
grep -A 3 -B 3 "文字列" app.log
# 複数条件(OR)
grep -E "条件1|条件2" app.log
件数を数える
grep "文字列" app.log | wc -l
単純に文字列の一致数を数えているだけなので、内容を確認せずに数値だけで判断しないようにしてください
結果が多いとき
grep "文字列" app.log | less
抽出結果をスクロールしながら確認できます
直近・リアルタイムのログを見る → tail
「今どうなっているか」を確認したいときに使います。
どういうときに使うか
- 直近のログだけを確認したい
- 動作確認とあわせてログを見たい
- 障害対応中にリアルタイムで監視したい
直近のログを確認
tail -n 100 app.log
リアルタイムで監視
tail -f app.log
条件を絞ってリアルタイム監視
tail -f app.log | grep "文字列"
特定の条件に一致するログだけをリアルタイムで確認できます
おまけ:ログの場所がわからないとき
ログファイルの場所がわからない場合は find で探すことができます。
find / -name "*.log" 2>/dev/null
権限エラーの出力を抑制しています
まとめ
- 全体を把握する → less
- 条件で絞る → grep
- 今の状況を見る → tail
この3つを用途に応じて使い分けることで、基本的なログ調査は対応できます