tailコマンドでログ監視−oracle10g(RAC構成) | ミニミニ管理者(システム管理者/社内SE/CIO)の独り言

[ ミニミニ管理者の独り言Oracleの運用(RAC構成等) > tailコマンドでログ監視−oracle10g(RAC構成) ]
スポンサードリンク

tailコマンドでログ監視−oracle10g(RAC構成)

JUGEMテーマ:コンピュータ




Windows OSに限らず、OS上で動作している各種のサービス・プログラムでは、動作状態の情報を「ログ・ファイル」として、テキスト・ファイルに書き出すものが多い。
オラクルも例外ではなく一般に「アラートログ」と呼ばれるログ情報を吐き出す。

一般的にログ・ファイルの内容を調査するには、メモ帳や秀丸等のアプリケーションで開いたり、コマンド・プロンプト上でmoreやtypeコマンドを使って表示させたりする。だがログ・ファイルの内容は時間が進むにつれて内容が次々と追加されているので、「開いた時点の情報」にすぎない。時間の経過と共に、新しいログ・データが追加されている。そのため最新の内容を確認するには、その都度ファイルをオープンし直す必要がある。

このような場合UNIXでは、tailコマンドを使ってファイルの最後を常時監視することができる。
※「tail」とは、ファイルの最後尾を(指定した行数だけ)表示するというコマンド。

tailコマンドに「-f」オプションを指定することにより、ファイルの最後尾を監視し、新しいデータ(行)が追加されるたびにそれを表示する事が可能で、ログ・ファイルの最後を表示させておけば、新しいログ・イベントをリアルタイムに監視することができる。

tailコマンドはWindows OSの標準コマンドではない。
Windows 2000の場合は、SFU(Microsoft Windows Services for UNIX)をインストールすればこの中にtailコマンドが用意されており、Windows XP/Windows Server 2003の場合はリソース・キットに含まれているので、これをインストールすればよい。

※SFUの入手とインストールについては「UNIX互換環境を実現するSFUを利用する(Windows2000/WindowsX/WindowsServer2003)」参照。

また、合わせてWindowsで利用できるUNIXコマンドの記事も紹介しておく。

ここではWindowsにはないがUNIXに存在するコマンドのうち便利なものをチョイスして紹介している。


■コマンドライン(tail)

C:¥>tail -n 100 -f ログファイル名

-f:コマンドを終了せず、待機します。新しい行がログに書き込まれると画面に表示します。
-n:表示するログの行数を指定します。「-n 100」でファイルの末尾から100行を表示。


・Oracle10gのログパス
C:¥oracle¥product¥10.2.0¥admin¥racdb¥bdump¥alert_racdb1.log

・Oracle10g(ASM)のログパス
C:¥oracle¥product¥10.2.0¥admin¥+ASM¥bdump¥alert_+ASM1.log

しかし、このtailコマンドはWinodws版なので文字コードが「S-JIS」となっており、Oracleで使う「UTF8」ではない。そのため、ログ監視で重要なエラーの詳細(日本語表示)が文字化けしてしまう。

これではORAエラーのコードからもう一度調べなおすこととなり不便である。

そこで、次に使うコマンドが「nkf」である。これはベクターなどからダウンロードできる。


このコマンドはネットワーク用漢字コード変換フィルタでDOSコマンドの出力結果の文字コードを変換して表示してくれるすぐれもので、これを使って文字化けを直す。

■コマンドライン(nkf)
ここでは上記で紹介したtailコマンドにプラスしてnkfコマンドを利用している。
ここで「|(パイプ)」ですが、これはコマンドとコマンドを繋ぐものです。
下記の例ではtailコマンドの結果をnkfコマンドに渡しています。

C:¥>tail -f ログファイル名|nkf -uWs

-uWs:utf8の文字コードをs-jisに変換します。

これで文字コードを変換するので文字化けが解消します。

また、複数のログファイルを監視する場合、バッチファイルを作成して実行すると便利だが、この時に「タイトルを表示」させておくと「どの画面が何のログか?」が一目でわかるのでよい。

/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
title alert_racdb1.log
C:¥tail.exe -n 100 -f C:¥oracle¥product¥10.2.0¥admin¥racdb¥bdump¥alert_racdb1.log
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-

またクライアント端末からネットワーク先にあるOracleサーバに接続してログ監視をするには「net use」コマンドを使うとよい。
注意:バッチファイルにOracleのIPアドレス、USERID(Windows)、Passwordを平文で登録するので扱いには十分に注意する。

/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-

title alert_racdb1.log
NET USE ¥¥xxx.xxx.xxx.xxx¥C$ psssword /USER:userid
C:¥tail.exe -n 100 -f C:¥oracle¥product¥10.2.0¥admin¥racdb¥bdump¥alert_racdb1.log
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-

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


■Oracle学ぶならこれ!





               最新記事へ     トップページ









スポンサードリンク


■Blog Ranking■
1. ←←サーバー構築・運用ブログあり お奨め:★★★★★
2. (ブログランキング ドット ネット)
3.にほんブログ村 IT技術ブログへにほんブログ村
4.BS blog Ranking
ブログランキングに挑戦中です。あなたもブログランキングに挑戦してみよう!
サーバー構築・運用ブログなんかもありますのでシステム管理者の方にもお奨めのサイトがあり!
ソニーストア
ボーズ・インイヤーヘッドホン

コメント
コメント投稿フォーム:
 上の情報を次回も利用する

トラックバック
トラックバックURL:
※ クリックで選択できます。
トラックバック一覧: