SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Log Parserでログを統合的に扱い運用保守に役立てる

Log Parserでログを統合的に扱い運用保守に役立てる(実践編)

IISのログの整形/アプリケーションログの自動監視を行う


  • X ポスト
  • このエントリーをはてなブックマークに追加

補足1:LogParser.exeのパラメータ

 補足として、「LogParser.exe」で利用できるオプションについてまとめます。

LogParser.exeの主要なパラメータ
パラメータ 説明
-i: 入力リソースの指定 -i:EVT
-o: 出力先の指定 -o:NAT
-h: ヘルプの表示 -h -o:NAT
file: クエリファイルの指定 file:Query.txt
-QueryInfo 解析・解釈した診断情報の表示 -queryInfo

 「-i:」「-o:」「-h:」については、これまで説明してきましたので、詳細は本編を参照ください。

fileパラメータ

 「file:」パラメータを利用すると、クエリを外部のファイルとして保存できます。コマンドラインでクエリを書く場合は改行できないので、見やすいクエリを書きたい場合や、繰り返し実行する場合には外部ファイルでクエリを管理すると良いでしょう。

queryInfoパラメータ

 「-queryInfo」を実行するとクエリを実行せずに、そのクエリをチェックし、情報を表示します。

例2に-queryInfoを付加した場合
LogParser -i:EVT -o:CSV "SELECT TOP 10 TimeGenerated,EventID
 INTO eventlog.txt FROM SYSTEM WHERE EventID IN (6005;6006) 
 ORDER BY TimeGenerated DESC" -queryInfo

 上のクエリを実行すると、次のような結果が表示されます。

-queryInfoの実行結果
クエリ:
 SELECT TOP 10 [TimeGenerated], [EventID]
 INTO eventlog.txt
 FROM SYSTEM
 WHERE [EventID] IN ANY (6005; 6006)
 ORDER BY [TimeGenerated] DESC

選択されたフォーマット:
 入力フォーマット: EVT (Windows イベントログ)
 出力フォーマット: CSV (CSV 形式)

Query fields:
  TimeGenerated (T)              EventID (I)

 整形されたクエリ文字列と、入力、出力形式の確認、列の名前と型が確認できます。

補足2:Log Parserの関数一覧

 補足として、Log Parserで利用できる関数を一覧にまとめます。なお、関数の引数における[ ]は省略可能を意味します。

算術関数
関数名 説明
ADD(値1,値2) 2つの値(数値/文字/日時)の合計を計算
BIT_AND(数値1,数値2) 2つの値のビットごとのANDを計算
BIT_NOT(数値) 値のビットごとのNOTを計算
BIT_OR(数値1,数値2) 2つの値のビットごとのORを計算
BIT_SHL(数値,ビット数) 指定されたビット数分だけ値を左にシフト
BIT_SHR(数値,ビット数) 指定されたビット数分だけ値を右にシフト
BIT_XOR(数値1,数値2) 2つの値のビットごとのXORを計算
DIV(数値1,数値2) 2つの値の商を計算
EXP(指数) e(自然対数の底)の指定された引数のべき乗
EXP10(指数) 10のべき乗を計算
FLOOR(数値) 引数の整数部分
LOG(数値) 自然対数を計算
LOG10(数値) 10を底とする対数を計算
MOD(数値,除数) 2つの数値を除算した余りを計算
MUL(数値1,数値2) 2つの値の積を計算
QNTFLOOR_TO_DIGIT(数値,有効桁数) 数値を有効桁数で切り捨て
QNTROUND_TO_DIGIT(数値,有効桁数) 数値を有効桁数で丸め
QUANTIZE(数値1,数値2) 第2引数の倍数で第1引数に最も近い値(数値1>数値2で切り捨て)
ROUND(数値) 引数に最も近い整数を計算
SQR(数値) 2乗値の計算
SQRROOT(数値) 平方根を計算
SUB(値1,値2) 2つの値(数値/文字/日時)の差を計算
変換関数
関数名 説明
HEX_TO_INT(文字列) 16進数を整数自体に変換
INT_TO_IPV4(数値) 32ビット整数をIPV4アドレスに変換
IPV4_TO_INT(文字列) IPV4アドレスを32ビット整数に変換
TO_DATE(日時) 日時を日付のみに変換
TO_HEX(値) 文字/数値を16進数に変換
TO_INT(値) 文字/日時/実数を整数に変換
TO_LOCALTIME(日時) 世界協定時刻(UTC)から現地時刻に変換
TO_REAL(値) 文字/日時/整数を実数に変換
TO_STRING(数値) 数値を文字列に変換
TO_TIME(日時) 日時を時刻のみに変換
TO_TIMESTAMP(文字列,書式) 文字列を書式日時に変換
TO_UTCTIME(日時) 現地時刻から世界協定時刻(UTC)に変換
文字列操作関数
関数名 説明
EXTRACT_EXTENSION(ファイルパス) ファイルパスのファイル拡張子部分
EXTRACT_FILENAME(ファイルパス) ファイルパスのファイル名部分
EXTRACT_PATH(ファイルパス) ファイルパスのディレクトリパス部分
EXTRACT_PREFIX(文字列,番号,区切文字) 文字列を区切文字で分割し、最初から指定番号の文字列
EXTRACT_SUFFIX(文字列,番号,区切文字) 文字列を区切文字で分割し、指定番号から最後までの文字列
EXTRACT_TOKEN(文字列,番号,区切文字) 文字列を区切文字で分割し、指定番号の部分文字列
EXTRACT_VALUE(文字列,キー文字,[区切文字]) 文字列内の指定されたキー値の文字列
HEX_TO_ASC(文字列) 16進数をASCII文字列に変換
HEX_TO_HEX16(文字列) 16進数を16ビットWORDに変換
HEX_TO_HEX32(文字列) 16進数を32ビットWORDに変換
HEX_TO_HEX8(文字列) 16進数を8ビットWORDに変換
HEX_TO_PRINT(文字列) 16進数を印刷可能なASCII文字列に変換
INDEX_OF(文字列,検索文字列) 最初に検索文字列が出現する位置番号
LAST_INDEX_OF(文字列,検索文字列) 最後に検索文字列が出現する位置番号
LTRIM(文字列) 文字列の左側の空白を削除
REPLACE_CHR(文字列,検索文字,置換文字列) 検索文字が文字列に一致すれば置換
REPLACE_STR(文字列,検索文字列,置換文字列) 検索文字列が文字列に一致すれば置換
ROT13(文字列) ROT13アルゴリズムで文字列をエンコード/デコード
RTRIM(文字列) 文字列の右側の空白を削除
STRCAT(文字列1,文字列2) 文字列1に文字列2を付加
STRCNT(文字列,検索文字列) 文字列中の検索文字列の出現回数
STRLEN(文字列) 文字列の長さ
STRREPEAT(文字列,回数) 文字列の回数分繰り返し
STRREV(文字列) 文字列の前後反転
SUBSTR(文字列,開始位置,文字数) 指定位置から長さ分の部分文字列を抽出
TO_LOWERCASE(文字列) アルファベットを小文字に変換
TO_UPPERCASE アルファベットを大文字に変換
TRIM 文字列の前後の空白を削除
URLESCAPE(文字列,[コードページ]) 文字列をURLエンコード
URLUNESCAPE(文字列,[コードページ]) URLエンコードされた文字列をデコード
システム情報関数
関数名 説明
COMPUTER_NAME() ローカルコンピュータのNetBIOS名
RESOLVE_SID(SID) SIDの完全なアカウント名
REVERSEDNS(IPアドレス) IPアドレスに対応するホスト名
SYSTEM_DATE() 世界協定時刻(UTC)のシステム日付
SYSTEM_TIME() 世界協定時刻(UTC)のシステム時刻
SYSTEM_TIMESTAMP() 世界協定時刻(UTC)のシステム日時
SYSTEM_UTCOFFSET() 現地時刻と世界協定時刻(UTC)との差
その他の関数
関数名 説明
CASE条件値WHENテスト値1戻り値1...~END 条件値がテスト値と一致すれば戻り値を戻す
COALESCE(値1,値2,値3...) NULL以外の値で最初に合致したもの
HASHMD5_FILE(ファイルパス) ファイルの内容のMD5ハッシュを計算した16進数
HASHSEQ(文字列) 文字列の値が一意になる整数
IN_ROW_NUMBER() 入力レコードの行番号
OUT_ROW_NUMBER() 出力レコードの行番号
REPLACE_IF_NOT_NULL(値1,値2) 値1がNULLの場合、値2を戻す
SEQUENCE(開始番号) 開始番号から始まる入力レコードの連番
WIN32_ERROR_DESCRIPTION(エラーコード) Windowsエラーコードに関連付けられたテキストメッセージ

まとめ

 以上、Log Parserを利用した実用的なログのチェック方法について解説しました。最後に本稿についてまとめます。

  • Log ParserはMicrosoftが提供するフリーのツールでログ情報を簡単に抽出できます。
  • テキストファイルのログから見栄えのよいグラフやHTMLを生成することができます。
  • 手動ではなく自動監視することによって、確実にエラーを検知することができます。
  • Log Parserはコマンドラインからでも、WSHのスクリプトからでも実行できます。

 運用・監視と言うと、Tivoli、JP1、ITIL製品のようなソフトウェアを思い浮かべるかもしれませんが、規模の小さいシステムでは、このような高価なソフトウェアが導入されることは滅多にありません。その点、Log Parserは手軽に導入できますので、効率的な監視に興味がある方は、管理しているシステムに有用なクエリを作成して、サービスの向上に役立ててみてはいかがでしょうか。

参考資料

  1. Microsoft TechNet スクリプトセンター Log Parser
  2. Microsoft ダウンロードセンター Log Parser
  3. Microsoft TechNet コラム Log Parser 2.2 の動作方法
  4. Microsoft TechNet スクリプトセンター ログこそすべて (Log Parserについて)
  5. eXperts Connection LogParserフォーラム
  6. The Unofficial Log Parser Support Site(英語)
  7. @IT 『Windows標準機能とWSHを使ってメールを送信する』 海津智宏 著、2004年5月
  8. @IT 『運用 Windows管理者のためのWindows Script Host入門』 デジタルアドバンテージ 著、2003年12月
  9. @IT 『タスク・スケジューラとWSHで定例処理を実現する』 山田祥寛 著、2003年9月
  10. @IT 『イベントログの自動監視とコマンドの自動実行』 たかはしもとのぶ 著、2004年4月
  11. VBScript/JScriptプログラミング&Tips for WSH 『cafe de VBS
  12. サーバー管理者のためのイベントログ運用の基本』 養老利紀 著、毎日コミュニケーションズ、2005年8月
  13. CodeZine 『スクリプトとタスクによるサーバ監視の自動化』 中 博俊 著、2006年9月
  14. japan.internet.com『Office Web Componentsを利用してASP.NETでグラフを作成する』 Olav Lerflaten 著、2005年10月

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Log Parserでログを統合的に扱い運用保守に役立てる連載記事一覧
この記事の著者

WINGSプロジェクト 青木 淳夫(アオキ アツオ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/541 2008/08/21 21:11

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング