運用・管理 / ログ
本製品のログ機能について説明します。ログ機能は初期状態で有効になっており、ランタイムメモリーとフラッシュメモリー上に保存されるよう設定されています。また、重要なログメッセージがログイン中の仮想端末にも出力されるよう設定されているほか、ターミナルモニターという機能を使って、任意の管理端末上でリアルタイムにログを確認することもできます。
本製品ではさらに、任意の出力先を定義することにより、ログメッセージをsyslogサーバーに送信したり、特定のメールアドレスに送信したりすることもできます。また、メッセージフィルターを使ってログの出力条件をカスタマイズし、特定の条件を満たしたメッセージだけを保存・出力するよう設定することもできます。
ログメッセージ
本製品が生成するログメッセージは次の各フィールドで構成されています。<date> <time> <facility>.<severity> <program[<pid>]>: <message>
各フィールドの意味は次のとおりです。
| date | メッセージの生成日付 |
| time | メッセージの生成時刻 |
| facility | ファシリティー。どの機能グループに関連するメッセージかを示す(別表を参照) |
| severity | ログレベル。メッセージの重大さを示す(別表を参照) |
| program[pid] | メッセージを生成したプログラムの名前とプロセスID(PID) |
| message | メッセージ本文 |
ファシリティー
ファシリティー(facility)には次のものがあります。| auth | 認証サブシステム |
| authpriv | 認証サブシステム(機密性の高いもの) |
| cron | 定期実行デーモン(crond) |
| daemon | システムデーモン |
| ftp | ファイル転送サブシステム |
| kern | カーネル |
| local5 | ローカル定義用ファシリティーの1つだが、本製品では初期設定でUTM関連機能によって使用 |
| lpr | プリンタースプーラーサブシステム |
| メールサブシステム | |
| news | ネットニュースサブシステム |
| syslog | syslogデーモン(syslogd) |
| user | ユーザープロセス |
| uucp | UUCPサブシステム |
ログレベル
ログレベル(severity)には次のものがあります。各レベルには番号と名称が付けられており、番号は小さいほど重大であることを示します。| 0 | emergencies | システムが使用不能であることを示す |
| 1 | alerts | ただちに対処を要する状況であることを示す |
| 2 | critical | 重大な問題が発生したことを示す |
| 3 | errors | 一般的なエラーメッセージ |
| 4 | warnings | 警告メッセージ |
| 5 | notices | エラーではないが、管理者の注意を要するかもしれないメッセージ |
| 6 | informational | 通常運用における詳細情報 |
| 7 | debugging | きわめて詳細な情報 |
ログ出力先
本製品内部で生成されたログメッセージは、あらかじめ定義しておいた「ログ出力先」に出力されます。ログメッセージがどの出力先に出力されるかは、各出力先に関連付けられた「メッセージフィルター」(出力条件)の内容によって決まります。設定によりログメッセージを複数の出力先に出力したり、まったく出力しないよう設定したりすることも可能です。
既定のログ出力先
初期状態では、次に示す4つのログ出力先(既定のログ出力先)が定義されており、それぞれ以下の基準でログメッセージを出力するよう設定されています。これら既定のログ出力先は、個別に出力を停止(無効化)したり、出力条件を変更したり、保存サイズを変更したりできます。詳しくは以降の各節をご覧ください。
| noticesレベル以上(0~5) | ランタイムメモリー(RAM)に50KByte(RAMが4GB以下の場合)または5000KByte(RAMが4GBを超える場合)まで保存。前記上限を超えた場合は古いメッセージから順に消去 | ||
| warningsレベル以上(0~4) | フラッシュメモリー(flash:デバイス)に50KByte(フラッシュメモリーが4GB以下の場合)または5000KByte(フラッシュメモリーが4GBを超える場合)まで保存。前記上限を超えた場合は古いメッセージから順に消去 | ||
| debuggingレベル以上(0~7) | 任意の端末でterminal monitorコマンドを入力することにより、該当端末の画面にリアルタイムで出力されるようになる | ||
| criticalレベル以上(0~2) | ログイン中の仮想端末の画面にリアルタイムで出力される |
任意設定のログ出力先
本製品では、既定のログ出力先に加え、次の2種類の出力先を任意で定義することもできます。同じ種類の出力先を複数定義することも可能です(たとえば、syslogサーバー192.168.10.5と192.168.10.11)。初期状態では、任意設定のログ出力先は定義されていません。これら任意設定のログ出力先を定義する方法については、以降の各節をご覧ください。
| 任意に設定可 | 出力条件に合致したメッセージをsyslogプロトコルで送信 | ||
| 任意に設定可 | 出力条件に合致したメッセージを電子メールとして送信(SMTP) |
ログの閲覧
メモリーに保存されているログ、すなわち、bufferedログ(RAM上に保存されたログ)とpermanentログ(フラッシュメモリーに保存されたログ)の内容を見るには、それぞれ特権EXECモードのshow logコマンド、show log permanentコマンドを使います。bufferedログ、permanentログを見るにはそれぞれ次のようにします。
AT-vFW-app# show log AT-vFW-app# show log permanent
最新の10件だけを見たいときは次のようにします。
AT-vFW-app# show log tail AT-vFW-app# show log permanent tail
tailパラメーターに数値を指定すれば、指定件数の最新メッセージだけを見ることができます。前述のとおり、省略時は最新の10個が表示されます。
AT-vFW-app# show log tail 50 AT-vFW-app# show log permanent tail 50
特定のメッセージだけを表示させたい場合は、モディファイアを使用します。たとえば、「FAILED」という文字列を含むメッセージだけを表示させたい場合は、includeフィルターを使って次のようにします。
AT-vFW-app# show log | include FAILED
2012 Jan 14 00:57:25 authpriv.notice login: FAILED LOGIN 1 FROM (null) FOR manag
er, Authentication failure
モディファイアの詳細については、「運用・管理」の「コマンドラインインターフェース(CLI)」をご覧ください(「モディファイアとリダイレクション」)。
bufferedログ、permanentログを消去するには、clear logコマンドを使います。
単に「clear log」とした場合は、bufferedログとpermanentログの両方が消去されます。
AT-vFW-app# clear log buffered AT-vFW-app# clear log permanent AT-vFW-app# clear log
monitorログとconsoleログは、管理端末の画面にリアルタイムで出力されます。
monitorログを見るには、管理端末上でterminal monitorコマンドを実行し、「ターミナルモニター」をオンにします。これにより、monitorログの出力条件に合致するメッセージが、該当端末画面にリアルタイムに出力されるようになります。初期設定では、monitorログにはすべてのメッセージ(debuggingレベル以上のメッセージ)を出力するよう設定してあるため、ターミナルモニターをオンにすると該当端末には大量のメッセージが表示されます。
AT-vFW-app# terminal monitor
01:09:10 syslog: 2. init app syslog-ng sessPt=268908776, addr=805392384
01:09:35 login: pam_unix(login:auth): authentication failure; logname= uid=0 eui
d=0 tty=pts/1 ruser= rhost=localhost user=manager
01:09:36 login: FAILED LOGIN 1 FROM localhost FOR manager, Authentication failur
e
01:09:38 login: pam_unix(login:session): session opened for user manager by (uid
=0)
01:09:38 login: LOGIN ON pts/1 BY manager FROM localhost
...
ターミナルモニターをオフにするには、terminal monitorコマンドを「terminal no monitor」の形式で実行します。monitorログはプロンプトと非同期で出力されるため、行頭にコマンドプロンプトが表示されていない場合もありますが、気にせずに「terminal no monitor」と入力し、Enterキーを押せば問題ありません。あるいは、Enterキーを押してコマンドプロンプトを表示させてからコマンドを入力してもかまいません(この場合も入力途中に次のログメッセージが出力される可能性があります)。
01:09:38 login: pam_unix(login:session): session opened for user manager by (uid
=0)
01:09:38 login: LOGIN ON pts/1 BY manager FROM localhost
...
AT-vFW-app# terminal no monitor
consoleログは、出力条件に合致したログメッセージが生成されると、自動的にログイン中の仮想端末に出力されます。初期設定では、consoleログにはcriticalレベル以上の重大なメッセージだけが出力されます。
ログ設定のカスタマイズ
ログ機能の設定は、次の2つの要素を組み合わせることによって行います。- 出力先の定義
出力先には、既定4種と任意2種の合計6種類があります。さらに任意の2種類に関しては、それぞれ複数の出力先を定義できます。
各出力先において設定できる項目は以下のとおりです。
表 6:出力先ごとの設定可能項目 名称 種別(数) 出力先指定 状態設定 保存量設定 時差設定 buffered 既定(1) - ○ 有効/無効 ○ - permanent 既定(1) - ○ 有効/無効 ○ - monitor 既定(1) - △ ターミナルモニターをオン/オフ - - console 既定(1) - ○ 有効/無効 - - host 任意(複数) IPv4/IPv6アドレス △ 作成/削除 - ○ email 任意(複数) メールアドレス △ 作成/削除 - ○
- 既定のログ出力先のうち、buffered、permanent、consoleに関しては、有効(出力する)・無効(出力しない)の設定変更が可能です。
- 既定のログ出力先のうち、monitorに関しては、管理端末ごとにターミナルモニターをオン・オフすることで出力する・しないを制御するため、monitorログ総体としての有効・無効設定はありません。
- 既定のログ出力先のうち、buffered、permanentに関しては、保存するメッセージの最大量(KByte)を変更可能です。
- 任意設定のログ出力先(host、email)に関しては、syslogサーバーのIPv4/IPv6アドレスや電子メールアドレスを指定することで、新規出力先を定義できます。
- 任意設定のログ出力先(host、email)に関しては、出力先(syslogサーバーや電子メール受信者)との時差を設定できます。時差を設定した場合、ログメッセージ中の時刻情報が受信側の時刻に変換された上で送信されます。
- 既定のログ出力先のうち、buffered、permanent、consoleに関しては、有効(出力する)・無効(出力しない)の設定変更が可能です。
- メッセージフィルターの設定
各出力先定義に対してメッセージフィルターを設定することで、該当出力先への出力条件を指定します。
メッセージフィルターでは、個々のログメッセージの内容(ログレベル、ファシリティー、生成元プログラム、メッセージ内容)に応じて、出力する・しないを決定します。出力先定義にメッセージフィルターを関連付けることによって、初めてログメッセージが出力されるようになります。
さらに、メッセージフィルターによって出力対象となったログメッセージの中から、特定の条件に当てはまるものを除外する設定も可能です(ログ出力抑制機能)。出力抑制の条件や設定方法は、メッセージフィルターとほぼ同じです。
以下、各手順について例を挙げながら解説します。
出力先の定義
既定のログ出力先は初期状態で有効になっており、メッセージフィルターの条件に合致したログメッセージが出力されるよう設定されています。これら既定の出力先へのログ出力を停止したり、各種メモリーへのログ保存量を変更したりするには、以下の各例のようにします。
bufferedログ、permanentログ、consoleログへの出力を停止するには、logコマンドをno形式でそれぞれ次のように実行します。
AT-vFW-app(config)# no log buffered AT-vFW-app(config)# no log permanent AT-vFW-app(config)# no log console
monitorログは、ターミナルモニターをオンにするまで実際には出力されません。出力を開始するにはterminal monitorコマンドを実行してください。また、出力を停止するにはterminal monitorコマンドを「terminal no monitor」の形式で実行してください。
AT-vFW-app# terminal monitor ... AT-vFW-app# terminal no monitor
メモリー上にログメッセージを保存するbufferedログとpermanentログでは、保存するメッセージの最大量を変更することができます。これにはlog sizeコマンドを使います。
たとえば、bufferedログの保存メッセージ量を20000KByteに変更するには、次のようにします。
AT-vFW-app(config)# log buffered size 20000
任意設定のログ出力先は初期状態では定義されていません。
syslogプロトコルや電子メールでログを出力するには、logコマンドを使って最初に出力先を定義する必要があります。以下に例を示します。
syslogサーバーにログを送信する場合は、syslogサーバーのIPv4/IPv6アドレスを指定してhostログの出力先を定義します。hostログの出力先は複数定義できます。
AT-vFW-app(config)# log host 192.168.10.2
電子メールでログを送信する場合は、宛先のメールアドレスを指定してemailログの出力先を定義します。emailログの出力先は複数定義できます。
AT-vFW-app(config)# log email admin@example.com
hostログとemailログでは、出力先(syslogサーバーや電子メール受信者)のタイムゾーンを設定できます。これにはlog timeコマンドを使います。同コマンドで指定したタイムゾーンが本装置と異なる場合は、ログメッセージ中の時刻情報が受信側の時刻に変換された上で送信されます。
たとえば、出力先のほうが本装置の設置場所よりも3時間進んでいる場合は次のように設定します。この場合、該当出力先に送信するメッセージ内の時刻情報は3時間加算されて送信されます。
AT-vFW-app(config)# log host 192.168.10.2 time local-offset plus 3
出力先(syslogサーバーや電子メール受信者)のタイムゾーンは、UTC(協定世界時)からの時差としても設定できます。たとえば、さきほどのsyslogサーバー192.168.20.2のタイムゾーンがUTCより12時間進んでいるなら、次のように設定することも可能です。
AT-vFW-app(config)# log host 192.168.10.2 time utc-offset plus 12
出力先(syslogサーバーや電子メール受信者)と本装置との間に時差がない場合は、log timeコマンドでキーワードlocalを指定します。これは初期値なので、通常log timeコマンドを実行する必要はありませんが、いったん時差を指定した後で時差なしに戻したいときは次のようにします。
AT-vFW-app(config)# log host 192.168.10.2 time local
hostログ、emailログの出力先を削除するには、logコマンドをno形式で実行します。たとえば、電子メールアドレスadmin@example.comへのログ送信を停止するには、次のようにします。
AT-vFW-app(config)# no log email admin@example.com
メッセージフィルターの設定
出力先を定義しただけでは、ログメッセージは出力されません。出力先の定義にメッセージフィルターを関連付け、出力すべきメッセージの条件を指定して初めて、該当出力先にメッセージが出力されるようになります。既定のログ出力先には初期状態で次のメッセージフィルターが設定されているため、初期設定の出力条件で問題がなければ、設定は不要です。
- buffered:noticesレベル以上(レベル0~5)のメッセージを出力
- permanent:warningsレベル以上(レベル0~4)のメッセージを出力
- monitor:debuggingレベル以上(レベル0~7)のメッセージ(すべてのメッセージ)を出力
- console:criticalレベル以上(レベル0~2)のメッセージを出力
前記出力先への出力条件を変更したい場合は、log(filter)コマンドを使って、それぞれの出力先に設定されたメッセージフィルターの内容を変更します。次に例を示します。
bufferedログへの保存条件を「warningsレベル以上(レベル0~4)」に変更するには、log(filter)コマンドを使って次のようにします。
bufferedログにはあらかじめ「noticesレベル以上」というエントリーが設定されているので、2つ目のコマンドではこれを削除しています。
AT-vFW-app(config)# log buffered level warnings AT-vFW-app(config)# no log buffered level notices
任意設定のログ出力先(hostログ、emailログ)の場合、logコマンドで出力先を定義した直後はメッセージフィルターが関連付けられていないため、実際にはメッセージが出力されません。以下の各例を参考にして、各出力先にメッセージフィルターを設定してください。
すべてのログメッセージを出力したいときは、log(filter)コマンドで次のように「level debugging」を指定します。
AT-vFW-app(config)# log host 192.168.10.2 level debugging
errorsレベル以上(レベル0~3)のメッセージだけを出力したいときは、次のようにします。
AT-vFW-app(config)# log host 192.168.10.2 level errors
ログレベルは次のように数字で指定することもできます。
AT-vFW-app(config)# log host 192.168.10.2 level 3
特定のファシリティーに関するログメッセージだけを出力したいときは、log(filter)コマンドのfacilityパラメーターにファシリティー名を指定します。たとえば、認証関連のメッセージだけを出力させたい場合は次のようにします。
AT-vFW-app(config)# log host 192.168.10.2 facility auth AT-vFW-app(config)# log host 192.168.10.2 facility authpriv
特定のプログラムが生成したログメッセージだけを出力させたいときは、log(filter)コマンドのprogramパラメーターにプログラム名を指定します。たとえば、BGP関連のメッセージだけを出力させたい場合は次のようにします。
AT-vFW-app(config)# log host 192.168.10.2 program bgp
メッセージフィルターの設定では、メッセージに「~を含む」という条件も使えます。たとえば、「FAILED LOGIN」という文字列を含むメッセージだけを出力したい場合は、次のようにします。
AT-vFW-app(config)# log host 192.168.10.2 msgtext FAILED LOGIN
メッセージフィルターでは、複数の条件を同時に指定することもできます。たとえば、epsr関連のメッセージのうち、warningsレベル以上(レベル0~4)以上のメッセージだけを出力したい場合は次のようにします。
AT-vFW-app(config)# log host 192.168.10.2 level warnings program epsr
出力先定義からメッセージフィルターを削除するにはlog(filter)コマンドをno形式で実行します。
AT-vFW-app(config)# no log host 192.168.10.2 msgtext FAILED LOGIN
出力したくないメッセージを除外する(ログ出力抑制機能)
メッセージフィルターによって出力対象となったログメッセージの中に一部出力したくないものが混じっている場合は、メッセージフィルターとほぼ同じ条件指定によって、その出力を抑制することができます。ログ出力抑制機能の設定は、ログ出力先ごとにlog excludeコマンドで除外条件を指定することによって行います。
bufferedログに「martian」という文字列を含むログメッセージが出力されないようにするには次のようにします。
AT-vFW-app(config)# log buffered exclude msgtext martian
出力時のファシリティー固定設定
個々のログメッセージは個別のファシリティー値を持ち、初期設定では各々のファシリティーで出力されますが、すべてのログメッセージを特定のファシリティーで出力させる設定も可能です。ファシリティーの固定設定はlog facilityコマンドで行います。この設定はすべての出力先、ログメッセージに適用されます。
すべてのログメッセージをlocal1ファシリティーで出力するには次のようにします。
AT-vFW-app(config)# log facility local1
ファシリティーの固定設定を解除し、各メッセージ固有のファシリティーで出力する動作に戻すにはlog facilityコマンドをno形式で実行します。
AT-vFW-app(config)# no log facility
初期値への復帰
ログ設定(出力先およびメッセージフィルター)を初期値に戻すには、default logコマンドを使います。既定のログ出力先(buffered、permanent、monitor、console)に対してdefault logコマンドを実行すると、出力の状態(有効・無効)、保存メッセージ量、メッセージフィルターの設定が初期値に戻ります。
AT-vFW-app(config)# default log buffered AT-vFW-app(config)# default log permanent AT-vFW-app(config)# default log monitor AT-vFW-app(config)# default log console
任意設定のログ出力先(host、email)に対してdefault logコマンドを実行すると、時差設定はlocal(本装置と同じ)に、メッセージフィルターはなしの状態に戻ります。
AT-vFW-app(config)# default log host 192.168.10.2 AT-vFW-app(config)# default log email admin@example.com
ログ設定の確認
ログの出力先定義、および、各出力先に関連付けられているメッセージフィルターの内容は、show log configコマンドで確認できます。これは特権EXECモードのコマンドですが、グローバルコンフィグモードでも実行できます。AT-vFW-app(config)# show log config
Buffered log:
Status ......... enabled
Maximum size ... 5000kb
Filters:
1 Level ...... warnings
Program .... any
Facility ... any
Msg text ... any
Type ....... include
Statistics ..... Not available
Permanent log:
Status ......... enabled
Maximum size ... 5000kb
Filters:
*1 Level ...... warnings
Program .... any
Facility ... any
Msg text ... any
Type ....... include
Statistics ..... Not available
Host 192.168.10.2
Time offset .... +0:00
Filters:
1 Level ...... warnings
Program .... rip
Facility ... any
Msg text ... any
Type ....... include
2 Level ...... any
Program .... any
Facility ... auth
Msg text ... any
Type ....... include
3 Level ...... any
Program .... any
Facility ... authpriv
Msg text ... any
Type ....... include
Statistics ..... Not available
Monitor log:
Filters:
*1 Level ...... debugging
Program .... any
Facility ... any
Msg text ... any
Type ....... include
Statistics ..... Not available
Console log:
Status ......... enabled
List of consoles:
1 .............. ttyS0
Filters:
*1 Level ...... critical
Program .... any
Facility ... any
Msg text ... any
Type ....... include
Statistics ..... Not available
設定例
syslogサーバーへのログ送信
ここでは、すべてのログをsyslogサーバーに転送するための設定を示します。IP等の設定は終わっているものとします。- logコマンドでhostログの出力先を定義します。ここでは、syslogサーバーのIPアドレスとして192.168.10.2を指定しています。
AT-vFW-app(config)# log host 192.168.10.2
- log(filter)コマンドですべてのログメッセージを出力するメッセージフィルターを設定します。
AT-vFW-app(config)# log host 192.168.10.2 level debugging
syslogサーバー192.168.10.2がリモートからの接続を受け付けるよう設定されていれば、本製品の生成するすべてのログメッセージがsyslogサーバーに送られ、記録されるようになります。
電子メールでのログ送信
ログメッセージを電子メールで特定のメールアドレスに送りたい場合は、次のようにします。- メール送信機能の基本設定をします。詳しくは「運用・管理」の「メール送信」をご覧ください。
AT-vFW-app(config)# mail from manager@bulbul.example.com AT-vFW-app(config)# mail smtpserver 172.17.28.1
- logコマンドでemailログの出力先を定義します。ここでは、宛先メールアドレスとしてadmin@example.comを指定しています。
AT-vFW-app(config)# log email admin@example.com
- log(filter)コマンドでcriticalレベル(レベル0~2)の重大なメッセージと「FAILED LOGIN」という文字列を含むメッセージだけを出力するメッセージフィルターを設定します。
AT-vFW-app(config)# log email admin@example.com level critical AT-vFW-app(config)# log email admin@example.com msgtext FAILED LOGIN