システム メッセージ ロギングについて
システム メッセージ ロギング
スイッチはデフォルトで、システム メッセージおよび debug 特権 EXEC コマンドの出力をロギング プロセスに送信します。ロギング プロセスはログ メッセージを各宛先(設定に応じて、ログ バッファ、端末回線、UNIX Syslog サーバなど)に配信する処理を制御します。ロギング プロセスは、コンソールにもメッセージを送信します。
注: Syslog フォーマットは 4.3 Berkeley Standard Distribution(BSD)UNIX と互換性があります。
ロギング プロセスがディセーブルの場合、メッセージはコンソールにのみ送信されます。メッセージは生成時に送信されるため、メッセージおよびデバッグ出力にはプロンプトや他のコマンドの出力が割り込みます。メッセージを生成したプロセスが終了すると、メッセージがコンソールに表示されます。
メッセージの重大度を設定して、コンソールおよび各宛先に表示されるメッセージのタイプを制御できます。ログ メッセージにタイム スタンプを設定したり、Syslog 送信元アドレスを設定したりして、リアルタイムのデバッグ機能および管理機能を強化できます。
ロギングされたシステム メッセージにアクセスするには、スイッチのコマンドライン インターフェイス(CLI)を使用するか、または適切に設定された Syslog サーバにこれらのシステム メッセージを保存します。スイッチ ソフトウェアは Syslog メッセージを内部バッファに保存します。
システム メッセージをリモートでモニタするには、Syslog サーバ上でログを表示するか、または Telnet あるいはコンソール ポート経由でスイッチにアクセスします。
システム ログ メッセージのフォーマット
システム ログ メッセージは最大 80 文字とパーセント記号(%)、およびその前に配置されるオプションのシーケンス番号やタイム スタンプ情報(設定されている場合)で構成されています。メッセージは、次のフォーマットで表示されます。
seq no:timestamp: %facility-severity-MNEMONIC:description
パーセント記号の前のメッセージ部分は、 service sequence-numbers 、 service timestamps log datetime 、 service timestamps log datetime [ localtime ] [ msec ] [ show-timezone ] 、または service timestamps log uptime グローバル コンフィギュレーション コマンドの設定によって変わります。
表 48 システム ログ メッセージの要素
|
|
seq no: |
service sequence-numbers グローバル コンフィギュレーション コマンドが設定されている場合だけ、ログ メッセージにシーケンス番号をスタンプします。 詳細については、「ログ メッセージのシーケンス番号のイネーブル化およびディセーブル化」を参照してください。 |
timestamp のフォーマット: mm/dd hh:mm:ss または hh:mm:ss (短時間) または d h (長時間) |
メッセージまたはイベントの日時です。 service timestamps log [ datetime | log ] グローバル コンフィギュレーション コマンドが設定されている場合だけ、この情報が表示されます。 詳細については、「ログ メッセージのタイム スタンプのイネーブル化およびディセーブル化」を参照してください。 |
facility |
メッセージが参照する機能(SNMP、SYS など)です。 |
severity |
メッセージの重大度を示す 0 ~ 7 の 1 桁のコードです。 |
MNEMONIC |
メッセージを一意に示すテキスト ストリングです。 |
description |
レポートされているイベントの詳細を示すテキスト ストリングです。 |
ログ メッセージ
特定のコンソール ポート回線または仮想端末回線に対して、非送信請求メッセージおよび debug 特権 EXEC コマンドの出力を送信請求デバイスの出力およびプロンプトと同期させることができます。重大度に応じて非同期に出力されるメッセージのタイプを特定できます。また、端末の非同期メッセージが削除されるまで保存しておくバッファの最大数を設定することもできます。
非送信請求メッセージおよび debug コマンド出力の同期ロギングがイネーブルの場合、送信請求デバイス出力がコンソールに表示または印刷された後に、非送信請求デバイスからの出力が表示または印刷されます。非送信請求メッセージおよび debug コマンドの出力は、ユーザ入力用プロンプトが返された後に、コンソールに表示されます。したがって、非送信請求メッセージおよび debug コマンドの出力は、送信請求デバイス出力およびプロンプトに割り込まれることはありません。非送信請求メッセージが表示された後に、コンソールはユーザ プロンプトを再表示します。
メッセージの重大度
注: level を指定すると、この数値以下のレベルのメッセージが出力先に表示されます。
コンソールへのロギングをディセーブルにするには、 no logging console グローバル コンフィギュレーション コマンドを使用します。コンソール以外の端末へのロギングをディセーブルにするには、 no logging monitor グローバル コンフィギュレーション コマンドを使用します。Syslog サーバへのロギングをディセーブルにするには、 no logging trap グローバル コンフィギュレーション コマンドを使用します。
表 49に level キーワードを示します。また、対応する UNIX Syslog 定義を、重大度の最も高いものから順に示します。
表 49 レベル キーワード
|
|
|
|
emergencies |
0 |
システムが不安定 |
LOG_EMERG |
alerts |
1 |
即時処理が必要 |
LOG_ALERT |
critical |
2 |
クリティカルな状態 |
LOG_CRIT |
errors |
3 |
エラー状態 |
LOG_ERR |
warnings |
4 |
警告状態 |
LOG_WARNING |
notifications |
5 |
正常だが注意を要する状態 |
LOG_NOTICE |
informational |
6 |
情報メッセージだけ |
LOG_INFO |
debugging |
7 |
デバッグ メッセージ |
LOG_DEBUG |
ソフトウェアは、これらのカテゴリのメッセージを生成します。
■ソフトウェアまたはハードウェアの誤動作に関するエラー メッセージ: warnings ~ emergencies の重大度で表示されます。このタイプのメッセージは、スイッチの機能に影響があることを示します。
■ debug コマンドの出力: debugging の重大度で表示されます。通常、デバッグ コマンドは Technical Assistance Center(TAC)でのみ使用されます。
■インターフェイスのアップまたはダウン トランジション メッセージおよびシステム再起動メッセージ: notifications の重大度で表示されます。このメッセージは単なる情報であり、スイッチの機能には影響がありません。
UNIX Syslog サーバの設定
次に、UNIX サーバの Syslog デーモンを設定し、UNIX システム ロギング機能を定義する手順について説明します。
UNIX Syslog デーモンへのログ メッセージ
システム ログ メッセージを UNIX Syslog サーバに送信する前に、UNIX サーバ上で Syslog デーモンを設定する必要があります。この手順は任意です。
注: 最新バージョンの UNIX Syslog デーモンの中には、デフォルトでネットワークからの Syslog パケットを受け入れないものがあります。このようなシステムの場合に、Syslog メッセージのリモート ロギングをイネーブルにするには、Syslog コマンド ラインに追加または削除する必要があるオプションを、UNIX の man syslogd コマンドを使用して判別します。
root としてログインし、次のステップを実行します。
1. /etc/syslog.conf ファイルに次のような行を 1 行追加します。
local7.debug /usr/adm/logs/cisco.log
local7 キーワードは、使用するロギング機能を指定します。 debug キーワードは、syslog レベルを指定します。syslog デーモンは、次のフィールドで指定されたファイルに、このレベルまたはより重大なレベルのメッセージを送信します。このファイルは、syslog デーモンに書き込み権限がある既存ファイルである必要があります。
2. UNIX シェル プロンプトに次のコマンドを入力して、ログ ファイルを作成します。
$ touch /var/log/cisco.log
$ chmod 666 /var/log/cisco.log
3. Syslog デーモンに新しい設定を認識させます。
$ kill -HUP `cat /etc/syslog.pid`
詳細については、ご使用の UNIX システムの man syslog.conf および man syslogd コマンドを参照してください。
表 50に、ソフトウェアでサポートされている UNIX システム機能を示します。これらの機能の詳細については、ご使用の UNIX オペレーティング システムの操作マニュアルを参照してください。
表 50 UNIX システムファシリティ
|
|
auth |
許可システム |
cron |
cron 機能 |
daemon |
システム デーモン |
kern |
カーネル |
local0 ~ local7 |
ローカルに定義されたメッセージ |
lpr |
ライン プリンタ システム |
mail |
メール システム |
news |
USENET ニュース |
sys9 ~ sys14 |
システムで使用 |
syslog |
システム ログ |
user |
ユーザ プロセス |
uucp |
UNIX から UNIX へのコピー システム |
システム メッセージ ロギングのデフォルト設定
|
|
コンソールへのシステム メッセージ ロギング |
有効。 |
コンソールの重大度 |
debugging(および数値の低いレベル)。 |
ログ ファイル設定 |
ファイル名の指定なし |
ログ バッファ サイズ |
4096 バイト |
ログ履歴サイズ |
1 メッセージ |
タイム スタンプ |
ディセーブル。 |
同期ロギング |
ディセーブル。 |
ロギング サーバ |
ディセーブル。 |
Syslog サーバの IP アドレス |
未設定 |
設定変更ロガー |
ディセーブル。 |
サーバ機能 |
local7。 |
サーバの重大度 |
informational(および数値の低いレベル)。 |
システム メッセージ ロギングの設定方法
メッセージ ロギングのディセーブル化
メッセージ ロギングはデフォルトでイネーブルに設定されています。コンソール以外のいずれかの宛先にメッセージを送信する場合は、メッセージ ロギングをイネーブルにする必要があります。メッセージ ロギングがイネーブルの場合、ログ メッセージはロギング プロセスに送信されます。ロギング プロセスは、メッセージを生成元プロセスと同期しないで指定場所に記録します。
ロギング プロセスをディセーブルにすると、メッセージがコンソールに書き込まれるまでプロセスは処理続行を待機する必要があるため、スイッチの処理速度が低下することがあります。ロギング プロセスがディセーブルの場合、メッセージは生成後すぐに(通常はコマンド出力に割り込む形で)コンソールに表示されます。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
no logging console |
メッセージ ロギングをディセーブルにします。 |
3. |
end |
特権 EXEC モードに戻ります。 |
メッセージ表示宛先デバイスの設定
メッセージ ロギングがイネーブルの場合、コンソールだけでなく特定の場所にもメッセージを送信できます。特権 EXEC モードから、次のコマンドの 1 つ以上を使用してメッセージを受信する場所を指定します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
logging buffered [ size ] |
スイッチの内部バッファにメッセージを保存します。有効な範囲は 4096 ~ 2147483647 バイトです。デフォルトのバッファ サイズは 4096 バイトです。 スイッチに障害が発生すると、フラッシュ メモリに保存されていないログは失われます。ステップ 4 を参照してください。 注: バッファサイズを大きすぎる値に設定しないでください。他の作業に使用するメモリが不足することがあります。スイッチ上の空きプロセッサ メモリを表示するには、 show memory 特権 EXEC コマンドを使用します。ただし、表示される値は使用できる最大値であるため、バッファ サイズをこの値に設定 しないで ください。 |
3. |
logging host |
UNIX Syslog サーバ ホストにメッセージを保存します。 host :Syslog サーバとして使用するホストの名前または IP アドレスを指定します。 ログ メッセージを受信する Syslog サーバのリストを作成するには、このコマンドを複数回入力します。 |
4. |
logging file flash: filename [ max-file-size [ min-file-size ]] [ severity-level-number | type ] |
フラッシュ メモリ内のファイルにログ メッセージを格納します。 ■ filename :ログメッセージのファイル名を入力します。 ■(任意) max-file-size :ログファイルの最大サイズを指定します。指定できる範囲は 4096 ~ 2147483647 です。デフォルトは 4096 バイトです。 ■(任意) min-file-size :ログファイルの最小サイズを指定します。指定できる範囲は 1024 ~ 2147483647 です。デフォルトは 2048 バイトです。 ■(任意) severity-level-number | type :ロギングの重大度またはロギングタイプを指定します。重大度に指定できる範囲は 0 ~ 7 です。デフォルトでは、デバッグ メッセージ、および数値的により低いレベルのメッセージがログ ファイルに送信されます。 |
5. |
end |
特権 EXEC モードに戻ります。 |
6. |
terminal monitor |
現在のセッション間、非コンソール端末にメッセージを保存します。 端末パラメータ コンフィギュレーション コマンドはローカルに設定され、セッションの終了後は無効になります。デバッグ メッセージを表示する場合は、セッションごとにこのステップを実行する必要があります。 |
ログ メッセージの同期化
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
line [ console | vty ] line-number [ ending-line-number ] |
メッセージの同期ロギングに設定する回線を指定します。 ■スイッチのコンソール ポートを介して行われる設定には、 console キーワードを使用します。 ■同期ロギングをイネーブルにする vty 回線を指定するには、 line vty line-number コマンドを使用します。Telnet セッションを介して行われる設定には、vty 接続を使用します。回線番号に指定できる範囲は 0 ~ 15 です。 16 個の vty 回線の設定をすべて一度に変更するには、次のように入力します。 line vty 0 15 また、現在の接続に使用されている 1 つの vty 回線の設定を変更することもできます。たとえば、vty 回線 2 の設定を変更するには、次のように入力します。 line vty 2 このコマンドを入力すると、ライン コンフィギュレーション モードになります。 |
3. |
logging synchronous [ level [ severity-level | all ] | limit number-of-buffers ] |
メッセージの同期ロギングをイネーブルにします。 ■(任意) level severity-level :メッセージの重大度レベルを指定します。重大度がこの値以上であるメッセージは、非同期に出力されます。値が小さいほど重大度は大きく、値が大きいほど重大度は小さくなります。デフォルトは 2 です。 ■(任意) level all :重大度に関係なく、すべてのメッセージが非同期に出力されます。 ■(任意) limit number-of-buffers :キューイングされる端末のバッファ数を指定します。これを超える新しいメッセージは廃棄されます。指定できる範囲は 0 ~ 2147483647 です。デフォルトは 20 です。 |
4. |
end |
特権 EXEC モードに戻ります。 |
ログ メッセージのタイム スタンプのイネーブル化およびディセーブル化
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
service timestamps log uptime または service timestamps log datetime [ msec ] [ localtime ] [ show-timezone ] |
ログのタイムスタンプをイネーブルにします。 最初のコマンドを実行するとログ メッセージのタイム スタンプがイネーブルになり、システムを再起動した後の経過時間が表示されます。 2 番目のコマンドを実行すると、ログ メッセージのタイム スタンプがイネーブルになります。選択したオプションに応じて、ローカル タイム ゾーンを基準とした日付、時間(ミリ秒)、タイム ゾーン名をタイム スタンプとして表示できます。 |
3. |
end |
特権 EXEC モードに戻ります。 |
ログ メッセージのシーケンス番号のイネーブル化およびディセーブル化
複数のログ メッセージのタイム スタンプが同じになることがあるため、1 つのメッセージを正確に識別できるように、メッセージにシーケンス番号を表示できます。デフォルトでは、ログ メッセージにシーケンス番号は表示されません。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
service sequence-numbers |
シーケンス番号をイネーブルにします。 |
3. |
end |
特権 EXEC モードに戻ります。 |
メッセージ重大度の定義
選択したデバイスに表示されるメッセージを制限するには、メッセージの重大度を指定します(表 2 を参照)。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
logging console level |
コンソールに保存するメッセージを制限します。 デフォルトで、コンソールはデバッグ メッセージ、および数値的により低いレベルのメッセージを受信します。 |
3. |
logging monitor level |
端末回線に出力するメッセージを制限します。 デフォルトで、端末はデバッグ メッセージ、および数値的により低いレベルのメッセージを受信します。 |
4. |
logging trap level |
Syslog サーバに保存するメッセージを制限します。 デフォルトで、Syslog サーバは通知メッセージ、および数値的により低いレベルのメッセージを受信します。 |
5. |
end |
特権 EXEC モードに戻ります。 |
履歴テーブルおよび SNMP に送信される Syslog メッセージの制限
snmp-server enable trap グローバル コンフィギュレーション コマンドを使用して、SNMP ネットワーク管理ステーションに送信されるように Syslog メッセージ トラップがイネーブルに設定されている場合は、スイッチの履歴テーブルに送信および格納されるメッセージの重大度を変更できます。また、履歴テーブルに格納されるメッセージの数を変更することもできます。
SNMP トラップは宛先への到達が保証されていないため、メッセージは履歴テーブルに格納されます。デフォルトでは、Syslog トラップが有効でない場合も、レベルが warning であるメッセージや数値的に下位レベルのメッセージの 1 つが履歴テーブルに格納されます。
履歴テーブルがいっぱいの場合( logging history size グローバル コンフィギュレーション コマンドで指定した最大メッセージ エントリ数が格納されている場合)は、新しいメッセージ エントリを格納できるように、最も古いエントリがテーブルから削除されます。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
logging history level |
履歴ファイルに保存され、SNMP サーバに送信される syslog メッセージのデフォルト レベルを変更します。 デフォルトでは、 warnings 、 errors 、 critical 、 alerts 、および emergencies のメッセージが送信されます。 |
3. |
logging history size number |
履歴テーブルに保存できる Syslog メッセージの数を指定します。 デフォルトでは 1 つのメッセージが格納されます。指定できる範囲は 0 ~ 500 です。 |
4. |
end |
特権 EXEC モードに戻ります。 |
設定変更ロガーのイネーブル化
コマンドライン インターフェイス(CLI)で行った設定変更をトラッキングするために設定ロガーをイネーブルにすることができます。 logging enable 設定変更ロガー コンフィギュレーション コマンドを入力すると、設定変更用に入力されたセッション、ユーザおよびコマンドがログに記録されます。設定ログのサイズは 1 ~ 1000 エントリの間で設定することができます(デフォルトは 100)。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
archive |
アーカイブ コンフィギュレーション モードを開始します。 |
3. |
log config |
設定変更ロガー コンフィギュレーション モードを開始します。 |
4. |
logging enable |
設定変更のロギングをイネーブルにします。 |
5. |
logging size entries |
(任意)設定ログで取得するエントリ数を設定します。範囲は 1 ~ 1000 です。デフォルトは 100 です。 注: 設定ログがいっぱいになると、新規エントリが入力されるたびに最も古いログエントリが削除されます。 |
6. |
end |
特権 EXEC モードに戻ります。 |
UNIX システム ロギング機能の設定
システム ログ メッセージを外部デバイスに送信する場合は、メッセージを UNIX Syslog 機能から送信されたメッセージとして特定するようにシステムを設定できます。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
logging host |
IP アドレスを入力することにより、メッセージを UNIX Syslog サーバ ホストに保存するようにします。 ログ メッセージを受信する Syslog サーバのリストを作成するには、このコマンドを複数回入力します。 |
3. |
logging trap level |
Syslog サーバに保存するメッセージを制限します。 デフォルトでは、Syslog サーバは通知メッセージおよびそれより下のレベルのメッセージを受信します。 |
4. |
logging facility facility-type |
Syslog ファシリティを設定します。 デフォルトは local7 です。 |
5. |
end |
特権 EXEC モードに戻ります。 |