Windows TIPS ディレクトリ

監視/調査/モニタ/ログ

更新日:2006/03/31

 サブディレクトリ
 監視/調査/モニタ/ログ
timeitコマンドでアプリケーションの実行時間を測定する
プログラムの性能を解析するには、プログラムの実行時間を測定する必要がある。 / リソースキット・ツールにはtimeit.exeという、アプリケーションの実行時間を測定するコマンドが用意されている。
tailコマンドでログ・ファイルをリアルタイムに監視する
ログ・ファイルに書き込まれるデータの内容をリアルタイムに確認すれば、サービスやアプリケーションの動作状態をモニタできる。 / 単にメモ帳などでログ・ファイルを開いても、リアルタイムに書き込まれるログ・データの内容は確認できない。 / tail -fコマンドを利用すると、ファイルの末尾に書き込まれたデータをモニタし、それを表示させ続けることができる。
IISのログ・ファイル・フォルダを変更する
IISのログ・ファイルはデフォルトではシステム・ドライブ上に作成されるが、パフォーマンスや管理のことを考えると別ドライブに記録するのが望ましい。 / ログ・ファイルの格納フォルダはWebサイトやFTPサイトのプロパティで変更することができる。 / IIS全体のプロパティを変更すると、新規作成されるサイトのデフォルト・フォルダを変更することができる。
ウイルス感染の有無を無料サービスで診断する
他人のコンピュータや、テストなどで一時的に使用するコンピュータなど、ウイルス対策ソフトがインストールされていない環境で、ウイルス感染の有無を検査したい場合がある。 / ウイルスの駆除はできないが、感染の有無を検査するだけなら、いくつかのウイルス対策ソフト・ベンダがオンラインで提供している無料診断機能を利用できる。
負荷の大きいプロセスを特定する方法
Windowsを使っていると、自分の操作とは別の理由で、システムの負荷が突然重くなったりすることがある。/最悪のケースとしては、コンピュータ・ウイルスが感染を広げたり、システムを破壊したりしている可能性もある。/タスク・マネージャを使えば、このような場合に、いったいどのプロセスがシステムの負荷を高めているかを知ることができる。
アプリケーションに対応するプロセスを素早く発見する方法
マルチ・プロセス・システムであるWindows 2000/XPでは、アプリケーションやシステムによって起動された多数のプロセスが同時に実行されている。 / アプリケーションに対応するプロセスがどれかを知りたければ、タスク・マネージャのプロセス表示機能を利用すればよい。
カーネル・モードとユーザー・モードの負荷状況を簡単に見分ける方法
Windowsを使っていると、原因も分からず、システムが急に重くなったりすることがある。 / このような場合には、タスク・マネージャの[パフォーマンス]タブで、カーネル・モードとユーザー・モードの負荷状況を確認すれば、原因を特定しやすくなる。
バイナリ・ファイルの内容をメモ帳で確認する
添付ファイルやバイナリ・ファイルをエクスプローラ上などでダブルクリックすると、プログラムがいきなり実行されたり、関連付けされたアプリケーションが起動したりする。 / 内容が不明なファイルは、まずメモ帳で開いて確認するとよい。 / 文字コードを指定して開くと、Unicode文字列も表示させることができる。
Port ReporterツールでTCP/IPの通信状態を調査する
アプリケーションが使用しているTCPやUDPのポートを知るにはnetstatコマンドを利用するのが一般的であるが、netstatはログ機能を持たない。 / ネットワークの通信状態を詳細に調べ、ロギングするにはPort Reporterツールが利用できる。 / PortReporterツールではローカル・ループバック・インターフェイスに対する通信もモニタすることができる。
Windowsネットワークのマスタ・ブラウザを調査する
Windowsネットワークでは、コンピュータの一覧をブラウズ・リストという情報として管理している。この管理を行うコンピュータをブラウザという。 / 通常はドメイン・コントローラがマスタ・ブラウザとなるが、場合によってはそのほかのコンピュータがマスタ・ブラウザとなることがある。 / 現在のマスタ・ブラウザやバックアップ・ブラウザの情報を調べるにはbrowstatコマンドを利用するとよい。
svchost.exeプロセスとは?
リッスンしているネットワーク・ポートを調べていると、svchost.exeというプロセスが所有者となっていることがよくある。/svchost.exeは、ネットワーク関連の基本的なサービスを起動するための親となるプロセスであり、いくつかのグループに分けてサービスを起動している。/scコマンドを使うと、サービスをコマンド・プロンプトから制御することができる。
レジストリへのアクセスをモニタする方法
トラブルシュートなどの目的で、システムがどのレジストリ情報を参照しているか、書き込んでいるかを調査する必要に迫られる場面がある。 / このような場合には、レジストリへのアクセスを逐一モニタできるフリー・ソフトウェアのRegmonが便利である。
netstatの統計情報を活用する
netstatでは、TCP/IPプロトコルやネットワーク・インターフェイスの稼働状況を示す各種の統計情報値を表示することができる。 / ネットワークのトラブルシューティングのためには、これらの値も参考にするとよい。 / 正常なときの値や挙動と比べることにより、問題点を素早く見つけることができる。
ポートのリッスン状態を調査する
あるTCPのポートがリッスンされているかどうかを調べるにはtelnetで接続してみるとよい。 / netsh diagコマンドを使うと、Proxyやメール・サーバとの通信テストが簡単に行える。 / portqryコマンドを使うと、ポート・スキャンなど、より高機能な通信テストが行える。
最適なページ・ファイル・サイズを知るには
システムが仮想メモリをどのくらい使っているかを調べるにはタスク・マネージャを使う。/この値を元にしてページ・ファイル・サイズを決める。/ページ・ファイル・サイズは、大きくても物理メモリ・サイズの2倍程度までになるようにメモリを増設するとよい。
ネットワークの送受信の状態をタスク・バーで確認できるようにするには
ネットワークに正しく接続できないとき、ネットワークが急に重くなったときなど、ネットワーク・インターフェイスの稼働状態を確認する必要に迫られることが少なくない。 / イーサネット・カードなどに用意されたLEDを見ればよいのだが、コンピュータの裏側に回らないと見えないなど、LEDが簡単に見えない場合もある。 / Windowsには、このLEDと同じように機能するアイコンをタスク・バーの通知領域に表示する機能がある。
コマンド・プロンプトでイベント・ログを表示する
Windowsシステムに関する各種のイベントはイベント・ログに記録され、通常はイベント・ビューアを使って表示する。 / eventquery.vbsというスクリプトを使うと、イベント・ログの内容をコマンド・プロンプト上で表示させることができる。 / オプション指定により、リモート・マシンのログの表示や、指定された条件に合うログだけを抜き出して表示させたりできる。
ネットワークの診断ツールを活用する
ネットワークのトラブルシューティングのためには、ネットワークの設定やサーバとの通信の状態などを調査する必要がある。 / ネットワークの診断ツールを使うと、設定の確認や通信状態の調査が簡単に行える。 / netsh のdiagコマンドでも同様の診断を行うことができる。
不正なDHCPサーバを見付ける
クライアント・コンピュータのTCP/IPの設定を行うためには、現在ではDHCPサービスを使うのが一般的である。 / 管理者が意図しないDHCPサーバが稼働していると、さまざまなネットワーク・トラブルの原因となる。 / 不正なDHCPサーバを見付けるためには、dhcplocコマンドを使うか、ネットワーク・パケットをキャプチャして解析する。
イベント・ログ・ファイルの最大サイズを拡大する
Windows NT系列のOSには、OSやアプリケーション・ソフトの動作を記録・表示する「イベント・ログ」という機能がある。 / デフォルトでは、ログ・サイズが初期設定の制限値(512Kbytes)より大きくなると、新たなログが記録されなくなる。現実的には、ログ・ファイルのサイズを大きくしておき、上書きモードで利用するのがよいだろう。
ホスト名からIPアドレスを見つける方法
コンピュータ名からIPアドレスを求めることを名前解決という。Windowsネットワークでは、NetBIOS系とTCP/IP系の2種類の名前解決がある。 / NetBIOSにおける名前解決の結果を調べるにはNetBIOSのネーム・キャッシュの内容を調べるとよい。 / TCP/IPにおける名前解決の結果を調べるにはpingコマンドが便利である。
pingでMTUサイズを調査する
ネットワークで送信可能なパケットの最大サイズをMTUという。IPパケットのサイズがMTUサイズを超えるとパケットの分割処理が行われる。これをIPフラグメンテーションという。 / pingの-fオプションを使うとIPパケットのDF bitがセットされ、IPフラグメンテーションが禁止される。 / データ・サイズを変えながらping -fを実行することにより、ネットワークのMTUサイズを調査することができる。
スパイウェアの有無を無料サービスで診断する
サーバやテスト用マシンなど、スパイウェア対策製品をインストールできない環境でスパイウェアの感染を調査したい場合がある。 / だが製品ごとに検索・駆除できるスパイウェアが異なるので、複数のソフトウェアで調査したい。 / スパイウェアの駆除はできないが、オンラインでスパイウェアを検索できるサービスがある。
netcapコマンドでネットワーク・パケットをキャプチャする
ネットワークのトラブル・シューティングでは、パケットをキャプチャして解析すれば素早く問題を解決することができる。 / Windows XP Professionalでは、パケットをキャプチャするためのnetcapコマンドが利用できる。 / キャプチャしたパケットはServerに付属するネットワーク・モニタなどで解析することができる。
ハッシュ値を利用してファイルの同一性をチェックする
ハッシュ値を比較すれば、ファイルの同一性を確認できる。 / ダウンロード・サイトでは、ファイル同一性のチェック目的でハッシュ値を公開していることがある。 / 大量のファイルを持つディレクトリ同士を比較して、更新されたファイルを特定するのにもハッシュ値を使うと便利である。
pingでネットワークの速度を調査する
ネットワークの速度を大ざっぱに測定するには、pingコマンドを利用するとよい。 / pingはTCP/IPの基本ツールであり、どこでも利用できる可能性が高い。 / ただし誤差を少なくするためには、データ・サイズを大きくして測定するなどの注意が必要である。
“Error Code Lookup”ツールでエラー・コードから原因を探る
障害対策では、エラーを通知するダイアログや、ログ情報などに出力されるエラー番号から原因を調査しなければならない場合がある。 / しかしエラー番号だけでは、どこの何を検索したらよいのか途方に暮れることも多い。 / これに対しマイクロソフトは、Windowsや一部のサーバ製品などが発行するエラー番号から、関連する情報を検索できる無償ツールerr.exeを提供している。
現在ログオン中のユーザー名を調べる
トラブルシューティングなどでは、現在ログオン中のユーザー名を調べる必要がある。 / ユーザー名を調べるには、Windowsセキュリティ・ダイアログを見るのが簡単でよい。 / whoamiコマンドや環境変数を使う方法もある。 / Telnetのセッションはtlntadmnコマンドで調べる。
使用中のIPアドレスを調査する
現在ネットワークで使用されているIPアドレスを調査するには、pingコマンドを使うのが一般的である。 / だが場合によってはpingに対する応答がブロックされていることもあるので、arpコマンドも使うとよい。 / forコマンドと組み合わせれば、簡単にLAN上のIPアドレスを列挙することができる。
日本語エラー・メッセージに対応する英語表記を調べる
日本語版製品のエラー・メッセージをTechNetなどで検索しても、解説ページを見つけられないことがある。 / これに対して、英語版製品のエラー・メッセージを検索すれば、豊富な情報が容易に得られることが多い。 / マイクロソフトのFTPサーバには、各国語の対訳メッセージのデータが用意されている。これを使えば、対応する英語メッセージを基にして、容易に情報を調査できる。
SQL Server 2000/MSDEのバージョンをチェックする
SQL Server 2000やMSDEにService Packやパッチを適用するには、インストールされているSQL Serverのバージョンを調査し、対応する修正プログラムを適用する必要がある。 / SQL Serverのバージョンを調べるにはosqlなどで接続して「select @@version」文を実行するか、sqlservr.exeファイルのバージョンを調べる。 / システムに複数のインスタンスがインストールされている場合は、インスタンス名を指定して接続、調査し、すべてのインスタンスに対して適切な修正プログラムを適用する。
IISのログ・ファイルを午前0時に切り替える
IISでは、1日ごとや1週間ごとにまとめてWebアクセス・ログを出力することができる。 / デフォルトではGMTの午前0:00になるとファイルが切り替わるが、これは日本時間の午前9:00になる。 / 日本時間深夜の午前0:00にログ・ファイルを切り替えるには、IISのログ設定を変更する。
WSHコードで発生したエラー情報をイベント・ログに記録する
イベント・ログは、ハードウェアやソフトウェア、そのほか、システム全般の問題について情報を収集するための重要な手掛かりだ。 / スクリプト内でエラーが発生した場合にも、エラー情報をイベント・ログに記録しておくことで、システム全体の一元的な監視が容易になる。
nslookupの基本的な使い方(SOAレコード編)
ドメインの起点となる情報はSOAレコードで定義されている。 / SOAレコードの情報は、nslookup -type=soaで取得できる。
Webアクセスをモニタする
普段は意識する必要はないが、Webアプリケーション開発時のデバッグ、不審なWebサイトのアクセスでやりとりされているデータの確認など、Webブラウザとサーバがやりとりしているデータの内容を確認したいときがある。 / HTTPの通信内容をモニタする無償ツールを活用すればよい。
pingでネットワーク・トラブルの原因を調査する
pingはTCP/IPにおける最も基本的で、かつ重要なコマンドである。pingが通るかどうかで相手先ノードが稼働しているかどうか、そこまでの通信経路が正しいかどうかを検査することができる。/pingに応答すれば、そのホストは正常に動作しており、そこまでのネットワークのルーティングが正しく設定されているということが分かる。/ネットワークの到達可能性を調べるには、まずはローカルのネットワーク上のホストから始め、順次遠くのホストへとping先を変えながら調べるようにする。
pathpingでネットワークの経路を調査する
pathpingは、ネットワーク・ルートの到達性や品質などを調査するためのコマンドである。 / pathpingを実行すると、tracertのように、まず経路上にあるルータのIPアドレスが表示される。 / 次に、各ルータまで多数のパケットを送信し、そのRTT(応答時間)や喪失率などの情報が表示される。
イベント・ログに任意の文字列を出力する
バッチ・ファイルやWSHを使って作成したタスクから、Windows OS標準のイベント・ログへ出力することにより、タスクの実行結果やエラーなどを統一的に管理することができる。 / WSHでイベント・ログへ出力するためには、WshShellオブジェクトのLogEventメソッドを利用する。 / コマンドラインで出力するにはEventcreateやLogEventコマンドを利用する。
IEの通知機能を利用して、ワークフロー管理を行う
ネットワーク上の共有フォルダにファイルをコピーして、複数のメンバーで順にこれを校閲する場合など、自分の順番がきたことをメールで通知してもらいたいと考えるかもしれない。/ IEの通知機能を使って、共有フォルダのチェックを定期的に行えばこれが可能になる。
注目しているWebページが更新されたことをメールで通知させる方法
Webページの中には、いつもチェックするわけではないが、更新があったらすぐに知りたいというものもある。/そんなときには、IEの同期機能を使い、Webページが更新されたときにメールで通知するように設定できる。
タスク・ログ・ファイルの見方
タスクの実行結果を表すログは、最大サイズは32Kbytesに制限された、Unicode形式のテキスト・ファイルに記録されている。 / タスク・ログは循環形式で記録される。最後まで書かれると、また先頭から順番に記録される。最後に実行されたタスクの場所には特別な文字列が記入されている。
自動実行されるプログラム/サービス/アドインを一望にし、制御する
Windowsでは、さまざまなプログラムやサービス、アドインなどが自動的に起動される。 / スパイウェアの調査やトラブル発生時の対処などで、これら自動起動されるコンポーネントを調査、制御したい場合がある。 / Windowsの標準ツールを使うこともできるが、さらに便利な無償ツールを活用することができる。
共有ファイルを現在使用しているユーザーを特定する方法
ネットワーク経由でサーバ上のファイルをアクセスしていると、複数のユーザーが同じファイルを開こうとして共有違反が発生することがある。 / これを解決するには最初にオープンしたユーザーがファイルをクローズすればよいが、実際にはすでに終了したはずのプロセスがファイルをロックしていることもある。 / このような場合は、だれがファイルをオープンしているかをファイル・サーバ上で調べ、必要ならば強制的にファイルをクローズすればよい。
Windowsサーバへの不正アクセスを検知するためのパフォーマンス・モニタ・オブジェクト
サーバの管理者は、サーバに対して不正なアクセスが行われていないかを注意しなければならない。 / 本格的なIDS製品などもあるが、Windowsの標準ツールであるパフォーマンス・モニタを使って、最低限の対策を行うことができる。
不正アクセスを検知するパフォーマンス・モニタ・カウンタ
遊び半分の愉快犯ではなく、甚大な経済被害をもたらす不正侵入や破壊活動、情報摂取などをもくろむ犯人は、最もリスクが小さく、大きな成果(破壊による被害の大きさや、窃取する情報の価値)が得られる侵入方法を事前に入念に調査する。 / この際には、ログオン・エラーやアクセス違反など、通常ではそれほど発生しない不正アクセスが大量に発生したりする。 / Windows標準ツールであるパフォーマンス・モニタを使って、コストゼロでこれらの不正アクセスを監視することができる。
ログオンの失敗をメールで通知する
重要なサーバなどでは、ログオンの失敗が発生したことを検知したい場合がある。 / WMIを利用して、ログオン失敗時に発生するイベントを監視することができる。さらにCDOを組み合わせれば、ログオン失敗の発生をメールで通知させることが可能である。
リモート・コンピュータの使用者を特定する
あるコンピュータの使用者を特定するには、リモートから接続して、ユーザー・プロファイル・フォルダの名前を調べるという方法がある。 / ユーザー・プロファイル・フォルダへは、\\コンピュータ名\C$\Documents and Settingsというパス表記を使ってアクセスすることができる。
netstatでリッスンしているプロセスを特定する
ネットワーク・サービスは特定のTCPやUDPのポートを使ってリッスン(待ち受け)している。 / ファイアウォールの設定やネットワーク管理などを行うためには、どのサービスやプロセスがどのポートを使用しているかを正確に把握する必要がある。 / あるポートを使用しているサービスを特定するには、サービスを1つずつ止めながらnetstatコマンドを実行して、ポートがリッスン状態でなくなるのを調べればよい。
netstatコマンドを使いこなす
netstatは、TCP/IPにおける通信の状態を調査するために使われる、最も基本的なコマンドである。 / 引数なしでnetstatを起動すると、現在アクティブなTCPコネクションに関するIPアドレスやポート番号などの情報が表示される。 / -aオプションを付けると、現在待ち受け状態にあるTCPやUDPのポートの一覧が表示される。
pingを繰り返し実行させる
pingコマンドはTCP/IPにおける基本ツールであり、IP的に到達可能であるかどうかを調査できる。 / pingコマンドはデフォルトでは4回パケットを送信するが、繰り返し実行したい場合は-nオプションで回数を指定する。 / -tオプションを利用すると、ユーザーが中断するまでずっと連続して実行される。
WFetchツールでWebサーバの応答を調査する
Web関連のトラブルシューティングやアプリケーション開発では、HTTPプロトコルの内容を調査したいことがある。 / ネットワーク・モニタを使ってHTTPプロトコルをトレースしてもよいが、関係ない通信内容も表示されるので使いづらい。 / IISのリソース・キットに含まれるWFetchツールを利用すると、Webサーバにコマンドを送り、その応答を表示させることができる。


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間