書式
snmptrapd [common options] [-P] [-o file] [-s] [-f] [-p port] [-e] [-l [d0-7]] [-a] [-C] [-c confFile] [-F FORMAT]説明
snmptrapd はローカルマシンの SNMP-TRAP ポート (162) に送られてきた snmp trap メッセージを受信してログに記録する SNMP アプリケーションである。
ログメッセージは以下のような形式である:
Sep 17 22:39:52 suffern snmptrapd: 128.2.13.41:
Cold Start Trap (0) Uptime:
8 days, 0:35:46
snmptrapd は UDP ポート 162 をオープンするので、 root で実行しなければならない。
コマンドライン引き数
snmpcmd(1) で説明されているコマンドライン引き数に加え、以下の引き数が使用できる。- -P
- ログメッセージを標準エラーに表示する。
- -o file
- 指定したファイルにメッセージを記録する。
- -p port
- デフォルトの 162 番ポートで実行したくない場合に、 実行させるポートを指定する。
- -s
- メッセージを syslog(8) に記録する。 syslog メッセージは、(デフォルトでは) level を LOG_WARNING、 facility を LOG_LOCAL0 として送られる。 syslog 機能を使うと、デーモンは fork されて 呼び出し元から切り離される。 これは '-P' フラグまたは '-o' フラグを使わない場合のデフォルトである。
- -n
- IP アドレスからホスト名への逆変換を行わない。
- -l [d0-7]
- 使用する syslog facility を指定する。demon または local[0-7]。
- -a
- snmptrapd に AuthenticationFailure trap を無視させる。
- -d
- アプリケーションに入出力パケットをダンプさせる。
- -D
- デバッグ出力を有効にする。
- -f
- syslog() を使用する場合に、 fork による呼び出し元から切り離しを行わない。
- -C
- デフォルトの設定ファイルのセットを読み込ませない。
- -c confFile
- confFile を設定ファイルとして読み込ませる。
- -F FORMAT
- 標準出力にログを記録するときに、フォーマットとして文字列 FORMAT を使う。
FORMAT は printf で使われる文字列に似ている。 snmptrapd は以下のフォーマット文字列を解釈する:
- %%
- % という文字
- %t
- OS の紀元 (epoch) からの 10 進数での秒数
- %y
- 現在の年
- %m
- 現在の月 (数値)
- %l
- 現在の月内日
- %h
- 現在の時
- %j
- 現在の分
- %k
- 現在の秒
- %T
- 稼働時間 (up-time) (10 進数での秒数)
- %Y
- 稼働時間の「年」のフィールド。
- %M
- 稼働時間の「月 (数値)」のフィールド。
- %L
- 稼働時間の「月内日」のフィールド。
- %H
- 稼働時間の「時」のフィールド。
- %J
- 稼働時間の「分」のフィールド。
- %K
- 稼働時間の「秒」のフィールド。
- %A
- 取得可能な場合はエージェントのホスト名。 取得不可能な場合はエージェントの IP アドレス。
- %a
- エージェントの IP アドレス。
- %B
- 取得可能な場合は PDU のホスト名。 取得不可能な場合は PDU の IP アドレス。
- %b
- PDU の IP アドレス。
- %N
- enterprise 文字列。
- %w
- trap タイプ (10 進数)
- %W
- trap の説明
- %q
- trap サブタイプ (10 進数)
- %P
- PDU のセキュリティ情報 (v1/v2c におけるコミュニティ名、v3 におけるユーザーとコンテキスト)
- %v
- trap 変数のリスト
これらの値に加え、フィールドの幅と精度 (printf と同じ) および フラグ値などをオプションとして指定することもできる。 以下のフラグを指定することができる:
- -
- 左寄せ
- 0
- 先頭を 0 で埋める
- #
- 別形式を使用する
「別形式を使用する」ためのフラグを指定すると、 いくつかのフォーマットフラグは動作が変更される。 通常、時間情報のフィールドはローカル時刻に基づいて表示されるが、 このフラグを使うと GMT を使うようになる。 また通常、変数リストはタブで区切られるが、 このフラグを使うとコンマ区切りのリストになる。 稼働時間の別形式は、元と同じで "3 days, 0:14:34.65" のような形式である。
例:
"14:03 TRAP3.1 from humpty.ucd.edu" のような形式のメッセージにするためには、 以下のようにすればよい:
- snmptrapd -P -F "%02.2h:%02.2j TRAP%w.%q from %A\n"
上と同じであるが、ローカル時刻ではなく GMT を使いたい場合は、 以下のようにすればよい:
- snmptrapd -P -F "%#02.2h:%#02.2j TRAP%w.%q from %A\n"