
もっち
- 関東大手SIer勤務
- 10システム、仮想サーバ約200台の基幹系システムが稼働する仮想化基盤のインフラ運用リーダー
以下3点について、ブログで役立つ情報を発信
- インフラ技術・システム運用
- キャリア・マネジメント
- エンジニア実務・仕事術


もっち
以下3点について、ブログで役立つ情報を発信
「障害が発生した。至急ログを確認して原因を特定してくれ!」
そんな緊迫した場面で、あなたはどうやってログを調査していますか? 数GBを超えるような巨大なログファイルを前に、いつもの癖で vi や cat を実行しようとしているなら、少しだけ待ってください。その一打が、さらなる悲劇を招くかもしれません。
今回は、インフラエンジニアとして18年間、数多くの現場でログと格闘してきた私が、「巨大ログを安全に、かつ迅速にさばくための実践テクニック」を、愛用の基本コマンドとともに紹介します。
この記事の想定読者
この記事を読むことでのメリット
まず、鉄則中の鉄則です。数GBクラスのログを vi などのテキストエディタで開くのは、非常に危険な行為です。
巨大なログは「開く」のではなく、これから紹介するコマンドを使って「必要な部分だけを抜き出す」のがプロの作法です。
ファイルがどれほど巨大でも、末尾の数十行だけを読み取る tail は非常に軽量で安全です。
エラーを色付きで強調しながら、リアルタイムに監視
tail -f /var/log/syslog | grep --line-buffered --color=auto -i "error"tail -f は基本ですが、grep と組み合わせる際は --line-buffered を付けると、バッファ溜まりによる表示遅延を防げるのでおすすめです。
詳細リファレンス:tail (日本語)/tail (English)
調査の要となるのが grep です。私が現場で助けられた3つの実践例を紹介します。
統合ログサーバのように、複数台のサーバからログが集約されている環境では、まず対象を絞る必要があります。
特定のホスト名 “web-server-01” のログだけを抽出して別ファイルに保存
grep "web-server-01" /var/log/remote_combined.log > web01_investigation.log「エラーが出ていないこと」を確認するのも重要な仕事です。-i オプションで表記の揺れをカバーします。
Error, ERROR, Warningなどをまとめて検索
grep -Ei "error|warning|critical" /var/log/app.log「14:05分頃に何が起きたか」を探す際、正規表現で時間を指定すると瞬時に絞り込めます。
14:00〜14:09のログを抽出
grep "2026-02-14 14:0" /var/log/syslog > 1400_incident.log詳細リファレンス:grep (日本語)/grep (English)
awk は、特定の列(カラム)だけを抜き出すのに非常に便利です。
第1列(日付)と第5列(メッセージ)だけを表示
awk '{print $1, $5}' /var/log/auth.log調査結果をチャットや報告書に貼る際、不要な列を awk で削っておくだけで、情報の伝わりやすさが劇的に変わります。
詳細リファレンス:awk (日本語)/awk (English)
数GBのログを扱うなら、以下の2点も覚えておきましょう。
zgrep): ログローテーションで圧縮された .gz ファイルは、解凍せずに zgrep で直接中身を検索しましょう。ディスク容量と時間の節約になります。grep | awk の順で使いましょう。最初に grep で行数をガッツリ減らしてから awk に渡すのが、最も処理効率が良い(CPU負荷が低い)方法です。ログ調査の速さは、単なるスキルの証明ではなく、「システムを安定させたい」というエンジニアの誠実さそのものです。
最新のログ分析ツールも便利ですが、トラブルの現場で最後に頼りになるのは、やはり grep や tail といった基本コマンドです。これらを自在に組み合わせ、巨大なログの中から「真実」を最短ルートで掴み取りましょう。

この記事が気に入ったら
フォローしてね!







