3 Syslogプロパティの設定
3.3 Rules / Filters / Actions (ルール/フィルター/アクション)
3.3.10 Action - Log to database (アクション – データベース記録)
3.3.10.1 Action - Log to database ( アクション – データベース記録 )
この機能は正規登録版でのみ使用できます。
メッセージをODBC Data Source Name (DSN)で指定したテーブルに記録します。
Datalink connection string
Datalink connection string フィールドにデータベースのDSN、ユーザーID、パスワードを入力します。
あるいは、[...] ボタンでマシンに構成されているODBC DSNから選びます。
Datalink connection string は次の要素で構成されています。
Data Source Name
システムに構成されている ODBC DSN を参照します。[...]ボタンを押してシステムのODBC Data Source Names リストから 選びます。
UID=UserID; データベースがパスワードで保護されている時に限り必要です。データベースのユーザー名を入力します。
PWD=Password; データベースがパスワードで保護されている時に限り必要です。データベースのパスワードを入力します。
例
DSN=Syslogd;UID=Admin;PWD=Password;
各要素はセミコロンで区切ります。UserID や Password が不要の時、接続文字列はDSNのみで構成されます。
デフォルトの接続文字列は DSN=Syslogdです;
多くの場合DSN名の前に DSN= と指定しなければなりません。
Database table name
有効なデータベーステーブル名を指定します。指定したテーブルには選択したデータベースフォーマットに合致するフィールド名 が設定されていなければなりません。フィールドサイズが短かすぎると、データがデータベースに記録される時に切り詰められて しまいます。
デフォルトのテーブル名は Syslogd です。
ODBCデータベースのログアクションをテストするには [Test] ボタンを押します。アクションの成功/失敗およびエラーの詳細を 示すメッセージが表示されます。
Database type/field format
デフォルトのデータベースタイプリストから選ぶか、[Edit custom format] ボタンをクリックしてオリジナルのフォーマットを 作成します。
デフォルトのデータベースタイプ:
• Access
• SQL
• MySQL
• Oracle
デフォルトのデータベーステーブルは以下のように設計されています。
Microsoft Access database
Field Name Type Size
Date MSGDATE Date 10
Time MSGTIME Time 8
Priority MSGPRIORITY Text 30
Hostname MSGHOSTNAME Text 255
Message text MSGTEXT Memo 1024
SQL database (Microsoft SQL とgeneric SQL)
Field Name Type Size
Date MSGDATE DateTime 10
Time MSGTIME DateTime 8
Priority MSGPRIORITY VarChar 30
Hostname MSGHOSTNAME VarChar 255
Message text MSGTEXT VarChar 1024
MySQL database
Field Name Type Size
Date MSGDATE Date 10
Time MSGTIME Time 8
Priority MSGPRIORITY VarChar 30
Hostname MSGHOSTNAME VarChar 255
Message text MSGTEXT Text 1024
Oracle database
Field Name Type Size
Date MSGDATE Date 10
Time MSGTIME Time 8
Priority MSGPRIORITY VarChar2 30
Hostname MSGHOSTNAME VarChar2 255
Message text MSGTEXT VarChar2 1024
注:
ODBC データソースに記録するには MDAC (Microsoft Data Access Components)ドライバーが必要です。バージョン2.50以 上をお奨めします。このパッケージは次のページからダウンロードできます。
http://www.microsoft.com/data/
データベースが他のプロセスで排他的に開かれている間は Kiwi Syslog Daemon はデータベースへの新しいレコードの記録がで きません。
ODBC データベースのサンプルを次のページからからダウンロードできます。
http://www.kiwitools.com/downloads/Syslog_ODBC_Samples.zip
Zipファイルには情報とサンプルデータベースが含まれており、ご使用のシステムで ODBC ロギング設定を行う際役立ちます。
ODBC Control Panel ボタン
[コントロールパネル] の [ODBC] アプレットが開き、システムDSNの構築や使用可能なODBCオプションを確認することができ
ます。
Create table ボタン
DSNで参照されたデータベースに指定されたテーブルを作成します。既存のテーブルは削除され内容が失われます。選択したデー タベースタイプで指定したフィールド名とタイプの新しいテーブルが作成されます。すべてうまく行き、新しいテーブルが作成さ れると確認メッセージが表示されます。テーブル作成中に問題が生じると、エラーメッセージが表示されます。問題を修正してく ださい。
Query table ボタン
指定したテーブルの最終5エントリーを取得します。ダイナミックアクセスができるようDSNタイプを指定します。Foward only databases はデータベースに対して Move previous コマンドが発行されていますので正しく読めません。
得られたデータはメモ帳で読めます。最後の5フィールドのテーブル構造とデータから情報を得ることが出来ます。
クエリーで得られた情報の例:
Field name Type Size Data
---+---+---+--->
MsgDate adDBTimeStamp 16 28/07/2002
MsgTime adDBTimeStamp 16 14:45:16
MsgPriority adVarWChar 30 Local7.Debug
MsgHostname adVarWChar 255 host.company.com
MsgTex adLongVarWChar 1024 This is a test message from Kiwi Syslog Daemon Edit custom format ボタン
Database type/field format のドロップダウンリストからカスタムフォーマットを選んで、このボタンを押すと選択したカスタ ムフォーマットが表示されます。カスタムフォーマットを選択しなかった場合、Custom DB formats オプションで新しいフォー マットを作成できます。
Show SQL commands ボタン
選択したテーブルに挿入するデータを作成するためのSQLコマンドを生成します。生成されるコマンドは選択されたデータベース によって異なります。これらのコマンドを使ってご使用のデータベースアプリケーションで使用できるデータベーステーブルス キーマが生成されます。あるいは、Create table ボタンを使って Kiwi Syslog Daemonでテーブルを生成することも可能です。
生成されたSQLコマンドの例:
Database type: Access database
Database name: Kiwi Access format ISO yyyy-mm-dd テーブル生成のSQLコマンド:
CREATE TABLE Syslogd (MsgDate DATE,MsgTime TIME,MsgPriority TEXT(30),MsgHostname TEXT(255),MsgText MEMO)
SQL INSERT コマンドの例:
INSERT INTO Syslogd (MsgDate,MsgTime,MsgPriority,MsgHostname,MsgText) VALUES
('2002-07-28','14:58:04','Local7.Debug','host.company.com','This is a test message from Kiwi Syslog Daemon') Connection Inactivity timeout
最終メッセージの送信からどのくらいデータベース接続をオープンしているかを指定します。接続のオープンとクローズはデータ ベースのロギングにおいて最も時間のかかる処理です。データのロギング中は継続してオープンにします。タイムアウト前にログ データが無くなった場合、データベース接続はクローズされます。新しいメッセージが到着すると再び接続がオープンされます。
デフォルト値は 600 秒 (10分)です。0 を指定すると接続がタイムアウトしなくなります。最大値は 86400 秒 (1日)です。
Run debug command ボタン
データベースへのロギング中に問題が発生した場合このボタンで診断できます。データベースで実行するSQLコマンドを入力する ための別のウィンドウが開きます。コマンドが失敗すると結果フィールドに詳細なエラーメッセージが表示されます。デフォルト では選択したデータベースタイプの現在のINSERT文が query フィールドに表示されます。この文を少し変更してテストを試み ることができます。
このオプションを実行してもデータベース上でクエリーが実行されるわけではありません。エラー情報だけが結果フィールドに返 されます。例えば Select From 文を実行し結果を得ることはできません。わかるのはその文が正しく実行されたか否かだけです。
Show SQL commands ボタンをクリックすればデバッグテストで使用する正しい構文を確認できます。
カスタムフィールド
カスタムフィールドは Run script アクションで使います。構文解析スクリプトを作成すると、syslog メッセージテキストをい くつかのサブフィールドに分離できます。値は16個のカスタムフィールドに割り当てられデータベースに記録されます。syslog メッセージはデバイスメーカーごとに異なるフォーマットで生成されますので、メッセージテキストを別々のフィールドに分離す る汎用の構文解析プログラム(パーサー)を作成することはできません。メッセージテキストを解析し、カスタムデータベースフィー ルドに挿入するカスタムスクリプトを作成しなければなりません。\Scripts サブフォルダに構文解析スクリプトのサンプルがあり ますので参考にしてください。
3.3.10.2 To configure an ODBC database DSN (ODBC データベース DSN の構築 )
[コントロールパネル] を開き [データソース(ODBC)] アプレット(32ビット) を開きます。
[システム DSN] タブの [追加] ボタンをクリックします(サービスとしてKiwi Syslog Daemonを実行する場合は、システム DSN の作成が必要です)。
使用するドライバーを選びます (サンプルデータベースの場合 Microsoft Access Driver を選択します)。
[データソース名] フィールドに重複しない固有の名前を入力します (Syslogd で始まる名前にすると良いでしょう)。
[選択] ボタンをクリックし、フォルダを参照して使用するデータベースファイル名を探します。
[OK] をクリックしデータソース名のリストに作成したDSNが追加されているか確認します。
Log to Database アクションの設定時に Data link connection string フィールドにこの新しいDSN名を入力します。
3.3.10.3 Problems logging when running as a Service ( サービス版実行時の記録エラー )
Service Manager からODBC記録テストを実行する際プログラムは現在のユーザーで実行されています(通常Administrator)。
サービスがログをODBCデータベースに記録する時、デフォルトでは Local System ユーザーとして実行します。
テストメッセージは正しく送信されるが、サービスでエラーが発生する場合、サービスのログオン名を Local System ではなく Administrator に変更してみてください。
ログオン名は [コントロールパネル] の [サービス] アプレットで変更できます。
プログラムをデスクトップから操作できるようにするためのチェックボックスもありますので必要であればオンにしてください。