Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

tailコマンドでログ・ファイルをリアルタイムに監視する

解説をスキップして操作方法を読む

デジタルアドバンテージ
2004/05/15
 
対象OS
Windows 2000
Windows XP
Windows Server 2003
ログ・ファイルに書き込まれるデータの内容をリアルタイムに確認すれば、サービスやアプリケーションの動作状態をモニタできる。
単にメモ帳などでログ・ファイルを開いても、リアルタイムに書き込まれるログ・データの内容は確認できない。
tail -fコマンドを利用すると、ファイルの末尾に書き込まれたデータをモニタし、それを表示させ続けることができる。
 
解説

 Windows OSに限らず、OS上で動作している各種のサービス・プログラムでは、動作状態の情報を「ログ・ファイル」として、テキスト・ファイルに書き出すものが少なくない。例えばWebサーバのログや、ファイアウォールの動作ログなどがある。

 これらのログ・ファイルの内容を調査するには、メモ帳で開いたり、コマンド・プロンプト上でmoreやtypeコマンドを使って表示させたりするのが一般的である。だがログ・ファイルの内容は時々刻々と変化しているので(正確には、時間が進むにつれて内容が次々と追加されているので)、メモ帳で開いたログ・ファイルの内容や、moreコマンドで表示したデータは必ずしも最新のものではない。時間がたてば、また新しい内容(ログ・データ)が追加されてしまっているからだ。最新の内容を確認したければ、その都度ファイルをオープンし直す必要があるが、これは非常に面倒である。

 このような場合UNIXでは、tailコマンドを使ってファイルの最後を常時監視するという手法がよく使われる。もともとtailとは、ファイルの最後の部分を(指定した行数だけ)表示するというコマンドであるが、「-f」オプションを指定することにより、ファイルの最後を監視し、新しいデータ(行)が追加されるたびにそれを表示するという動作をする。これを使ってログ・ファイルの最後を表示させておけば、新しいログ・イベントをリアルタイムに監視することができる。


操作方法

 tailコマンドはWindows OSの標準コマンドではないため、まずこれをインストールする必要がある。Windows 2000の場合は、SFUをインストールすればこの中にtailコマンドが用意されている。SFUの入手とインストールについてはWindows TIPS「UNIX互換環境を実現するSFUを利用する」などを参照していただきたい。

SFU 3.5の入手とインストール
SFU 3.5活用ガイド
リソースキット・ツールの入手法

 Windows XP/Windows Server 2003の場合はリソース・キットに含まれているので、これをインストールすればよい。リソース・キットについてはWindows TIPS「Windows OS向けリソースキット・ツールを入手する」を参照のこと。

 tail.exeをオプションなしで起動すると、指定されたファイル(もしくは標準入力)の最後の10行のみを表示して終了する。「tail -20 <ファイル名>」などとすると、指定した行数(ここでは20行)だけ表示して終了する。この方法は、長いログ・ファイルの最後の部分、つまり最新のログ・エントリだけを素早く確認するために有効である。

 ファイルの最後の部分をリアルタイムに監視するには「tail -f <ファイル名>」とする。これを実行すると、ファイルの最後の10行を表示した後(「-数字」オプションを使った場合は指定した行数だけ表示した後)、ファイルの最後を監視するモードになる。そしてログ・ファイルにデータが追加されるたびに、そのデータ(行)を表示する。これを停止するには[Ctrl]+[C]キーを押す。

 次の例は、Windows XPのICF(インターネット接続ファイアウォール)のログ・ファイル(デフォルトではC:\Windows\pfirewall.logに作成される)の内容をモニタした例である。tailを実行すると、ファイルの最後の10行分が表示される。

C:\>cd WINDOWS

C:\WINDOWS>tail -f pfirewall.log
2004-05-04 17:30:07 DROP TCP 210.6.XX.XX 210.170.XX.XX 1705 80 48 S 645825056 0 16384 - - -
2004-05-04 17:34:15 DROP TCP 210.170.XX.XX 210.170.XX.XX 4685 445 48 S 3824435887 0 8760 - - -
2004-05-04 17:34:46 DROP UDP 203.61.XX.XX 210.170.XX.XX 3021 137 78 - - - - - - -
2004-05-04 17:37:24 DROP TCP 210.18.XX.XX 210.170.XX.XX 20066 1433 48 S 2550998442 0 64512 - - -
2004-05-04 17:41:49 DROP TCP 66.122.XX.XX 210.170.XX.XX 63755 135 48 S 3845794192 0 64240 - - -
2004-05-04 17:42:58 DROP TCP 211.204.XX.XX 210.170.XX.XX 1344 4899 48 S 1405463990 0 16384 - - -
2004-05-04 17:43:32 DROP TCP 210.170.XX.XX 210.170.XX.XX 1132 445 48 S 1049849537 0 8760 - - -
2004-05-04 17:50:10 DROP TCP 203.240.XX.XX 210.170.XX.XX 3965 6129 48 S 2987391864 0 64240 - - -
2004-05-04 17:50:10 DROP TCP 203.240.XX.XX 210.170.XX.XX 3966 139 48 S 2987445823 0 64240 - - -
2004-05-04 17:50:28 DROP UDP 222.82.XX.XX 210.170.XX.XX 3632 1434 404 - - - - - - -

 新しくデータが追加されると、次のようにそれらが順次スクロールして表示されていく。ログ監視用に1つコマンド・プロンプト・ウィンドウを開き、その中でずっとtailを動作させておけばよいだろう。中止したければ、最後に[Ctrl]+[C]を押せばよい。

C:\>cd WINDOWS

C:\WINDOWS>tail -f pfirewall.log
2004-05-04 17:30:07 DROP TCP 210.6.XX.XX 210.170.XX.XX 1705 80 48 S 645825056 0 16384 - - -
2004-05-04 17:34:15 DROP TCP 210.170.XX.XX 210.170.XX.XX 4685 445 48 S 3824435887 0 8760 - - -
2004-05-04 17:34:46 DROP UDP 203.61.XX.XX 210.170.XX.XX 3021 137 78 - - - - - - -
2004-05-04 17:37:24 DROP TCP 210.18.XX.XX 210.170.XX.XX 20066 1433 48 S 2550998442 0 64512 - - -
2004-05-04 17:41:49 DROP TCP 66.122.XX.XX 210.170.XX.XX 63755 135 48 S 3845794192 0 64240 - - -
2004-05-04 17:42:58 DROP TCP 211.204.XX.XX 210.170.XX.XX 1344 4899 48 S 1405463990 0 16384 - - -
2004-05-04 17:43:32 DROP TCP 210.170.XX.XX 210.170.XX.XX 1132 445 48 S 1049849537 0 8760 - - -
2004-05-04 17:50:10 DROP TCP 203.240.XX.XX 210.170.XX.XX 3965 6129 48 S 2987391864 0 64240 - - -
2004-05-04 17:50:10 DROP TCP 203.240.XX.XX 210.170.XX.XX 3966 139 48 S 2987445823 0 64240 - - -
2004-05-04 17:50:28 DROP UDP 222.82.XX.XX 210.170.XX.XX 3632 1434 404 - - - - - - -
2004-05-04 18:00:52 DROP UDP 81.214.XX.XX 210.170.XX.XX 1027 137 78 - - - - - - -
2004-05-04 18:02:11 DROP TCP 65.182.XX.XX 210.170.XX.XX 3042 2745 48 S 1258940648 0 64240 - - -
2004-05-04 18:02:11 DROP TCP 65.182.XX.XX 210.170.XX.XX 4803 1025 48 S 1259135034 0 64240 - - -
2004-05-04 18:02:14 DROP TCP 65.182.XX.XX 210.170.XX.XX 3042 2745 48 S 1258940648 0 64240 - - -
2004-05-04 18:05:32 DROP UDP 217.165.XX.XX 210.170.XX.XX 1041 137 78 - - - - - - -
2004-05-04 18:15:42 DROP TCP 210.165.XX.XX 210.170.XX.XX 2706 135 48 S 1289945371 0 65044 - - -
2004-05-04 18:29:29 DROP TCP 210.122.XX.XX 210.170.XX.XX 1951 445 48 S 3702767269 0 64240 - - -

※黄色い部分が新たに表示された部分。時間とともに新しい行が表示されている。ただしこれは分かりやすいように文字に色を付けたものであり、実際には色が付いているわけではない。

ログ・ファイルのバッファリングに注意

 ただしこのtailコマンドを使ってログ・ファイルを監視する方法は、すべてのログ・ファイルに対して利用できるわけではない。アプリケーションによっては、ログ・ファイルの書き込みをメモリ中にバッファリングしている場合があるからだ。ディスクへの書き込みをログ発生のたびに行わず、いくつかまとめてバッファリングしてから書き込むことにより、ディスクへのアクセス回数を減らし、システムのパフォーマンスを向上させることができる。特に大量のログを発生させるWebサーバのログ・ファイルなどで大きな効果が期待できる。このようなアプリケーションの場合は、ファイルにデータが書き込まれていないので、いくらtailコマンドでログ・ファイルの末尾を監視していても、リアルタイムでモニタすることはできない。

 具体的には、IIS 5(Windows 2000のIIS)やそれ以前のIIS(Windows NTのIIS)のログ・ファイルがこれに相当する。これらのIISでは、ログ・ファイルを(デフォルトでは)64Kbytesずつバッファリングして書き込んでいる。またログ・ファイルのサイズも、64Kbytesといった大きな単位で割り当てている。つまり最初に64Kbytesのファイル領域を割り当て、それを使い切ればまた新しく64Kbytesずつ順次割り当てるというふうに動作しており、無駄なファイルのフラグメント(断片化)などを抑えるようにしている。ファイルの末尾がログ・ファイルの末尾というわけではないので、tailコマンドではうまく扱うことができない(IIS内部では、64Kbytesのメモリ領域を使ったメモリ・マップド・ファイルとして管理しているようである)。そして、1日分のログ・ファイルが終了した時点で、もしくはIISが停止した時点で、ログ・ファイルを正しいサイズに切り詰めている。そのため、前日までのログ・ファイルならばtailで末尾を見ることはできるが、今日の(いま現在の)ログ・ファイルの末尾をリアルタイムに確認するのは難しい。-fオプションなしで利用するのがよいだろう(大量のNull文字データが表示されるが)。

 なおWindows Server 2003ではログ・ファイルの管理方法が変更されたためか、-fオプション付きのtailコマンドで正しくリアルタイムにモニタすることができる。End of Article

関連記事(Windows Server Insider)
  Windows TIPS:UNIX互換環境を実現するSFUを利用する
  製品レビュー:企業ユーザーのためのSFU 3.5活用ガイダンス
  Windows TIPS:Windows OS向けリソースキット・ツールを入手する
     
この記事と関連性の高い別のWindows TIPS
IISのログ・ファイル・フォルダを変更する
これだけは覚えておきたい、コマンド・プロンプトの使い方
IISのログ・ファイルを午前0時に切り替える
収集したカウンタ・データをパフォーマンス・モニタで表示させる
タスク・ログ・ファイルの見方
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

TechTargetジャパン

Windows Server Insider フォーラム 新着記事
  • 第303話 ペアプロ2 (2012/2/7)
     あっ、またまたいつぞやの幽霊が! …っと思ったら、何だ倉井さんかぁ…。はぁー、驚いた…
  • Excelで郵便番号変換ウィザードを活用する (2012/2/3)
     Excelで管理している顧客名簿などで、不足している郵便番号や住所を入力するのは意外と面倒。郵便番号変換ウィザードを使えば、これらの入力が簡単になる
  • PCをシンクライアント化するWindows Thin PCとは? (2012/2/2)
     VDI向けにシンクライアントがほしいけど専用機を買う余裕はない… Windows Thin PCなら既存PCを低コストでシンクライアント化できる。まずは概要を解説
  • 第302話 休憩時間は消灯を (2012/1/31)
     君たち! 電力不足に鑑み、わが社としてもさらなる節電に貢献することとした。今後休憩時間は消灯するように。いいな!

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH