3 Syslogプロパティの設定
3.3 Rules / Filters / Actions (ルール/フィルター/アクション)
3.3.16 Action - Run Script (アクション – スクリプト実行)
3.3.16.2 スクリプト変数
スクリプト間で受け渡される変数は多種多様です。アクションの Read/Write permissions 設定に従い、変数は変更されSyslog プログラムに返され使用されます。
変数および関数はグローバルにアクセスできる Fields というオブジェクト経由で渡されます。変数および関数にアクセスするに は変数/関数名の前に Fields.を付けます。
共通フィールド Fields.VarFacility
詳細: メッセージのファシリティ値 タイプ: 整数 (0-32767)
範囲: 0 〜 23 ファシリティの一覧については関連項目を参照してください。
Fields.VarLevel
詳細: メッセージのレベル値 タイプ: 整数 (0-32767)
範囲: 0 〜 7 レベルの一覧については関連項目を参照してください。
Fields.VarInputSource 詳細: メッセージの入力元 タイプ: 整数 (0-32767)
範囲: 0 to 2. 0=UDP, 1=TCP, 2=SNMP, 3 = KeepAlive, 4 = NT Event Log, 5 = Log file, 6 = Comm port (4, 5, 6 は未使用)
Fields.VarPeerAddress 詳細:
送信デバイスのIPアドレス(フォーマットは nnn.nnn.nnn.nnn)。メッセージが他のSyslogコレクタから転送されても、この値は 本来の送信元アドレスとなります。
ケース A.
ファイアーウォールデバイス (192.168.1.1) ---> 最初のSyslogコレクタ (192.168.1.2) ---> このSyslogコレクタ (192.168.1.3)
フィールドの値は 192.168.1.1です。
ケース B.
ファイアーウォールデバイス (192.168.1.1) ---> このSyslogコレクタ (192.168.1.3) フィールドの値は 192.168.1.1です。
タイプ: 文字列
フォーマット: nnn.nnn.nnn.nnn ゼロパディングなし 例: 192.168.1.67
Fields.VarPeerName 詳細:
送信デバイスのホスト名。DNSルックアップオプションが有効でルックアップが成功した時に限り解決されたホスト名が入る。そ れ以外は VarPeerAddress と同じの値。フォーマットは nnn.nnn.nnn.nnn。FQDNのホスト名部分のみが入りドメインの接尾 語は含まれない。
タイプ: 文字列 フォーマット: myhost Fields.VarPeerDomain 詳細:
解決されている FQDNのドメイン名部分。ドメインの接尾語のみでが入りホスト名は含まれない。DNSルックアップオプションが 有効でルックアップが成功した時に限り値が入る。それ以外は空白。
タイプ: 文字列
フォーマット: mydomain.com Fields.VarCleanMessageText 詳細:
(ヘッダー削除, DNS ルックアップ, 元のアドレス削除, Cisco 日付削除など)変更後の文字列.
タイプ: 文字列 例:
%SEC-6-IPACCESSLOGP: list 101 denied udp 10.0.0.3 (firewall) (137) -> 216.7.14.105 (webserver.company.com) (137), 1 packet
その他のフィールド Fields.VarDate
詳細: メッセージ受信日付 タイプ: 文字列(10バイト) フォーマット: YYYY-MM-DD 例: 2002-03-17
Fields.VarTime 詳細: メッセージ受信時刻 タイプ: 文字列(8バイト) フォーマット: HH:MM:SS 例: 23:10:04
Fields.VarMilliSeconds
詳細: 1/1000秒単位のメッセージ受信時刻 タイプ: 文字列 (3バイト)
範囲: 000 〜 999
フォーマット: nnn (3バイト, ゼロパディング) Fields.VarSocketPeerAddress
詳細: メッセージ送信デバイスまたは最も近いコレクタのIPアドレス ケース A.
ファイアーウォールデバイス (192.168.1.1) ---> 最初のSyslogコレクタ (192.168.1.2) ---> このsyslogコレクタ (192.168.1.3)
値は 192.168.1.2.
ケース B.
ファイアーウォールデバイス (192.168.1.1) ---> このsyslog コレクタ (192.168.1.3) 値は 192.168.1.3.
タイプ: 文字列
フォーマット: nnn.nnn.nnn.nnn.ゼロパディングなし 例: 192.168.1.67
Fields.VarPeerAddressHex 詳細:
メッセージを送信したIPアドレスを8桁16進数に変換。
16進アドレスはIPマスクとIPレンジフィルターに使用。VarPeerIPAddress を変更しIPマスクやIPレンジフィルターを使うには VarPeerAddressHex フィールドも変更します。
タイプ: 文字列 (8バイト ) 範囲: 00000000 から FFFFFFFF
例: C0A80102 (192.168.1.2 を2バイト16進数に変換。ゼロパディング) Fields.VarPeerPort
詳細: メッセージを送信した UDP/TCP ポート タイプ: 整数 (0-65535)
範囲: 0 から 65535
通常使用する値: 1023以上の値
Fields.VarLocalAddress
詳細: このマシンにメッセージを送信したIPアドレス タイプ: 文字列
例: 127.0.0.1, 192.168.1.2 Fields.VarLocalPort
詳細: メッセージを受信したローカルマシンのUDP/TCP ポート タイプ: 整数 (0-65535)
範囲: 0 から 65535
通常使用する値: UDP では514, TCPでは1468, SNMPでは162 Fields.VarPriority
詳細: メッセージプライオリティ値 タイプ: 整数 (0-32767) 範囲: 0 から191
Fields.VarRawMessageText 詳細:
変更前の受信メッセージ ( <pri> タグ, 元のアドレスなどを含む)。
このフィールドは読み取り専用です。スクリプトのフィールドを変更しても対応するプログラム変数は変更されません。
カスタムフィールド
これらのフィールドは動的に変更され、新しいメッセージを受信するたびにクリアされます。これらのフィールドにはスクリプト の結果が入るため Log to file や Log to Database アクションに使われます。このフィールドの値は %VarCustom01 Insert message content or counter オプションか AutoSplit 文を使ってアクションにパラメータとして渡すこともできます。メッ セージをスクリプトでいくつかのフィールドに分割し、ファイルやデータベースの対応するフィールドに記録するのに適していま す。
カスタムフィールドは16個あります。1 〜 9 まではゼロパディングされます(VarCustom1ではなくVarCustom01となります)。
Fields.VarCustom01 から Fields.VarCustom16
スクリプト間フィールド
固定されておりメッセージを受信しても変化しません。他のスクリプトへの値の受け渡し、同一スクリプトで後に利用するために 値を維持するためのものです。%VarGlobal01 Insert message content or counter オプションか AutoSplit 文を使って値を パラメータとしてアクションに渡すこともできます。
グローバルフィールドは16個あります。1 〜 9 まではゼロパディングされます(VarCustom1ではなくVarCustom01となりま す)。
Fields.VarGlobal01 から Fields.VarGlobal16
カスタムスクリプトフィールド
固定されておりメッセージを受信しても変化しません。自身のカスタム統計とカウンター用に使われます。%VarStats01 Insert message content or counter オプションを使って値をパラメータとしてアクションに渡すこともできます。
Syslog Statistics ウィンドウの Counters タブで現在のフィールド値を見ることができます。カスタム統計は日別統計Eメール にも記載されています。
統計フィールドの名前と初期値は Scripting オプションから設定します。
カスタム統計フィールドは16個あります。1 〜 9 まではゼロパディングされます(VarStats1ではなくVarStats01となります)。
Fields.VarStats01 から Fields.VarStats16
コントロールとタイミングフィールド Fields.ActionQuit
詳細:
スクリプト実行後に何をするかを設定します。0 はルールの次のアクションを続けます。1 〜 99はルール内でスキップするアク ション数です(1=次の1アクションをスキップ、3=次の3アクションをスキップ)。100 は次のルールへのジャンプです。1000 は すべてのルールをスキップしメッセージ処理を終了します。値が指定されていないときは 0 とみなされます。
タイプ: 整数 (0-32767) 範囲: 0 から 1000
指示: 0=スキップしない, 1-99=スキップするアクション数, 100=次のルールまでスキップ, 1000=メッセージ処理終了 Fields.SecondsSinceMidnight
詳細: 深夜0時からの経過時間(秒)
タイプ: ロング (0-20億) 範囲: 0 〜 86400
Fields.SecondsSinceStartup
詳細: プログラム起動からの経過時間(秒)
タイプ: ロング (0-20億)