Cisco IOSのsyslog設定についてまとめます。設定可能な項目は意外と多いので、一度はオンラインドキュメントを熟読する事をお勧めします。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Router(config)# logging on Router(config)# logging buffered [ <size> ] [ <severity> ] Router(config)# logging console [ <severity> ] Router(config)# logging monitor [ <severity> ] Router(config)# logging trap [ <severity> ] Router(config)# logging history [ <severity> ] Router(config)# logging trap [ <severity> ] Router(config)# logging host <addr> [ transport { udp | tcp } port <num> ] Router(config)# logging facility <facility> Router(config)# logging origin-id [ ip | hostname | string <string> ] Router(config)# logging source-interface <interface> Router(config)# logging queue-limit trap <size> Router(config)# logging history <severity> Router(config)# logging history size <size> Router(config)# logging count Router(config)# service timestamp debug [ uptime | datetime show-timezone localtime msec year ] Router(config)# service timestamp log Router(config)# service timestamp sequence-number Router(config-if)# loggin event link-status Router(config-if)# loggin event dlci-status-change
構成図
これ以降の動作確認は、以下の環境で行います。
+--------+ ┌------+ R2 | s0/0 2│ .2+--------+ +--------+.1 1+---+----+s0/0 | R1 +------+ FRSW | +--------+ +---+----+s0/0 3│ .3+--------+ └------+ R3 | +--------+
[R1] interface Loopback0 ip address 10.1.1.1 255.255.255.255 ! interface Serial0/0 ip address 192.168.123.1 255.255.255.0 encapsulation frame-relay no ip split-horizon eigrp 10 ! router eigrp 10 network 0.0.0.0 no auto-summary [R2] interface Loopback0 ip address 10.2.2.2 255.255.255.255 ! interface Serial0/0 ip address 192.168.123.2 255.255.255.0 encapsulation frame-relay ! router eigrp 10 network 0.0.0.0 no auto-summary [R3] interface Loopback0 ip address 10.3.3.3 255.255.255.255 ! interface Serial0/0 ip address 192.168.123.3 255.255.255.0 encapsulation frame-relay ! router eigrp 10 network 0.0.0.0 no auto-summary
設定全文は下記ファイルです。詳細設定は下記を参照ください。
log severity
仕様説明
syslog, rsyslogにはseverityという概念があります。severityとはログの重要度を表す概念で、以下コマンドでどのseverity以上を出力するかを定義する事ができます。
コマンド | 説明 |
---|---|
logging on | ログ出力を有効にします。デフォルトでログ出力は有効になっているので明示的に投入する必要はありません。なお、no logging onと入力すると、一切のログ出力が無効化されます。 |
logging buffered | ルータのメモリ内にログを保存します。<size>, <severity>を省略した場合は、それぞれ4096, debuggingとなります。 |
logging console | コンソールに対するログレベルを定義します。<severity>を省略した場合はdebuggingとなります。なお、no logging consoleと入力すると、コンソールに対するログ出力が無効化されます。 |
logging monitor | telnet接続に対するログレベルを定義します。<severity>を省略した場合はdebuggingとなります。なお、no logging consoleと入力すると、telnet接続に対するログ出力が無効化されます。 |
logging trap | syslog serverに対するログレベルを定義します。<severity>を省略した場合はdebuggingとなります。なお、no logging consoleと入力すると、syslog serverに対するログ出力が無効化されます。 |
logging history | syslogをSNMP trapで送信する際のログレベルを定義します。 |
Router(config)# logging on Router(config)# logging buffered [ <size> ] [ <severity> ] Router(config)# logging console [ <severity> ] Router(config)# logging monitor [ <severity> ] Router(config)# logging trap [ <severity> ] Router(config)# logging history [ <severity> ]
よくある業務要件と設定すべきseverityの関係をまとめると以下のようになります。
requirement | severity |
---|---|
Error messages about software or hardware malfunctions | |
Output from the debug commands | debugging |
Interface up or down transitions and system restart messages | notifications |
動作確認
severityを以下のように変更します。
[R1] logging buffered 4096 warnings logging console debugging logging monitor informational
severityは、show loggingコマンドで確認する事ができます。
[R1] R1#show logging Syslog logging: enabled (11 messages dropped, 0 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled) Console logging: level debugging, 33 messages logged, xml disabled, filtering disabled Monitor logging: level informational, 0 messages logged, xml disabled, filtering disabled Buffer logging: level warnings, 0 messages logged, xml disabled, filtering disabled Logging Exception size (4096 bytes) Count and timestamp logging messages: disabled Trap logging: level informational, 40 message lines logged Log Buffer (4096 bytes): R1#
動作確認のために、R2からR1へのtelnetアクセスを試みます。初期設定の状態と異なり、ter monコマンドを入力してもデバッグログを見る事ができません。logging monitor informationalと設定されているためです。
[R2] R2#telnet 192.168.123.1 Trying 192.168.123.1 ... Open User Access Verification Password: R1>en Password: R1#debug ip packet IP packet debugging is on R1#ter mon R1#
syslog
仕様説明
syslogに関する設定は以下の通りです。
コマンド | 説明 |
---|---|
logging trap | syslog serverに対するログレベルを定義します。<severity>を省略した場合はdebuggingとなります。なお、no logging consoleと入力すると、syslog serverに対するログ出力が無効化されます。 |
logging host | ログの転送先(syslog server)を指定します。ポート番号を省略した場合は、デフォルトのudp 514が使用されます。 |
logging facility | facility名を指定します。 |
logging origin-id | ログメッセージの先頭にホストを識別するためのIDを付与します。IPアドレスやホスト名をIDとして利用するのが一般的です。 |
logging source-interface | ログを転送する際の送信元interfaceを指定します。 |
logging queue-limit trap | syslog serverにログを転送する際のキュー長を定義します。 |
Router(config)# logging trap [ <severity> ] Router(config)# logging host <addr> [ transport { udp | tcp } port <num> ] Router(config)# logging facility <facility> Router(config)# logging origin-id [ ip | hostname | string <string> ] Router(config)# logging source-interface <interface> Router(config)# logging queue-limit trap <size>
動作確認
syslogについて以下のように設定します。
[R1] logging monitor informational logging trap informational logging host 10.2.2.2 logging origin-id hostname logging source-interface Loopback 0
syslogがR1 Loopback0(10.1.1.1)からR2 Loopback0(10.2.2.2)へ転送される事を確認します。
R1(config)#access-list 100 permit udp any any eq syslog R1(config)#exit R1# *Mar 1 00:12:37.635: %SYS-5-CONFIG_I: Configured from console by console R1# R1# R1#debug ip packet 100 IP packet debugging is on for access list 100 R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#^Z R1# R1# *Mar 1 00:13:08.459: %SYS-5-CONFIG_I: Configured from console by console R1# *Mar 1 00:13:09.463: IP: tableid=0, s=10.1.1.1 (local), d=10.2.2.2 (Serial0/0), routed via FIB R1#
この時、転送されたパケットをキャプチャしました。syslogメッセージ内にホスト名が付与されている事が読み取れます。
Frame 1: 118 bytes on wire (944 bits), 118 bytes captured (944 bits) Frame Relay Internet Protocol Version 4, Src: 10.1.1.1 (10.1.1.1), Dst: 10.2.2.2 (10.2.2.2) User Datagram Protocol, Src Port: 57671 (57671), Dst Port: syslog (514) Syslog message: LOCAL7.NOTICE: 45: R1: *Mar 1 00:14:42.367: %SYS-5-CONFIG_I: Configured from console by console
SNMP Trap
仕様説明
syslogをSNMP Trapで送信する事も可能です。
コマンド | 説明 |
---|---|
logging history | ログをSNMP Trapで送信する際のログレベルを定義します。 |
logging history size | ログをSNMP Trapで送信する際のキュー長を定義します。 |
Router(config)# logging history <severity> Router(config)# logging history size <size>
動作確認
syslogをSNMP Trapで転送するよう以下のように設定します。snmp trapに関する設定も忘れないよう注意して下さい。
logging history informational logging history size 100 snmp-server trap-source Loopback0 snmp-server enable traps syslog snmp-server host 10.3.3.3 CCIE
syslogがR1 Loopback0(10.1.1.1)からR3 Loopback0(10.3.3.3)へ転送される事を確認します。
R1#debug snmp packets SNMP packet debugging is on R1# R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#^Z R1# *Mar 1 00:30:40.975: %SYS-5-CONFIG_I: Configured from console by console *Mar 1 00:30:41.019: SNMP: Queuing packet to 10.3.3.3 *Mar 1 00:30:41.019: SNMP: V1 Trap, ent ciscoSyslogMIB.2, addr 10.1.1.1, gentrap 6, spectrap 1 clogHistoryEntry.2.20 = SYS clogHistoryEntry.3.20 = 6 clogHistoryEntry.4.20 = CONFIG_I clogHistoryEntry.5.20 = Configured from console by console clogHistoryEntry.6.20 = 184098 R1#
ログ出力形式
仕様説明
以下のコマンドでログの出力形式を定義する事が可能です。
コマンド | 説明 |
---|---|
logging count | ログを件数を数えるようになります。数えた件数は、show logging countコマンドで確認できます。 |
service timestamp debug | デバッグログに付与される時刻の表示形式を変更します。 |
service timestamp log | デバッグ以外のログに付与される時刻の表示形式を変更します。 |
service timestamp sequence-number | ログにsequence-numberを付与します。sequence-numberを付与する事によって、ログの改ざんが難しくなる効果が期待できます。 |
Router(config)# logging count Router(config)# service timestamp debug [ uptime | datetime show-timezone localtime msec year ] Router(config)# service timestamp log Router(config)# service timestamp sequence-number
動作確認
R1に以下のコマンドを投入し、ログの出力形式を変更します。また、ログの件数をカウントするようにします。
[R1] logging count service timestamps debug uptime service timestamps log datetime msec year
適当なログを出力させます。
ログの表示形式が変わった事を確認します。
[R1] R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#exit R1# R1#debu R1#debug ip Sep 8 2012 09:48:07.675: %SYS-5-CONFIG_I: Configured from console by console pa R1#debug ip packet IP packet debugging is on R1# 00:07:48: IP: s=10.1.1.1 (local), d=224.0.0.10 (Loopback0), len 60, sending broad/multicast 00:07:48: IP: s=10.1.1.1 (Loopback0), d=224.0.0.10, len 60, rcvd 2 R1#u all All possible debugging has been turned off R1# R1# R1#show logg R1#show logging Syslog logging: enabled (11 messages dropped, 0 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled) Console logging: level debugging, 42 messages logged, xml disabled, filtering disabled Monitor logging: level informational, 0 messages logged, xml disabled, filtering disabled Buffer logging: level debugging, 19 messages logged, xml disabled, filtering disabled Logging Exception size (4096 bytes) Count and timestamp logging messages: enabled Trap logging: level informational, 34 message lines logged Logging to 10.2.2.2(global) (udp port 514, audit disabled, link up), 6 message lines logged, xml disabled, filtering disabled Log Buffer (4096 bytes): *Mar 1 00:05:34.811: %SYS-5-CONFIG_I: Configured from console by console *Mar 1 00:05:41.479: IP: s=10.1.1.1 (local), d=224.0.0.10 (Loopback0), len 60, sending broad/multicast *Mar 1 00:05:41.487: IP: s=10.1.1.1 (Loopback0), d=224.0.0.10, len 60, rcvd 2 *Mar 1 00:05:46.247: IP: s=10.1.1.1 (local), d=224.0.0.10 (Loopback0), len 60, sending broad/multicast *Mar 1 00:05:46.255: IP: s=10.1.1.1 (Loopback0), d=224.0.0.10, len 60, rcvd 2 *Mar 1 2002 00:07:02.335: %SYS-5-CONFIG_I: Configured from console by console *Sep 8 2012 09:48:00.000: %SYS-6-CLOCKUPDATE: System clock has been updated from 00:07:37 UTC Fri Mar 1 2002 to 09:48:00 UTC Sat Sep 8 2012, configured from console by console. Sep 8 2012 09:48:07.675: %SYS-5-CONFIG_I: Configured from console by console 00:07:48: IP: s=10.1.1.1 (local), d=224.0.0.10 (Loopback0), len 60, sending broad/multicast 00:07:48: IP: s=10.1.1.1 (Loopback0), d=224.0.0.10, len 60, rcvd 2 R1#
show logging countでログの件数がカウントできる事を確認します。
R1#show logging count Facility Message Name Sev Occur Last Time ================================================================================== SYS CLOCKUPDATE 6 1 Sep 8 2012 09:48:00.000 SYS CONFIG_I 5 2 Sep 8 2012 09:48:07.675 ------------- ------------------------------- ---------------------------------- SYS TOTAL 3 R1#
ログ出力 有効 無効
仕様説明
以下のコマンドでログ出力の有効無効を設定する事ができます。
コマンド | 説明 |
---|---|
loggin event link-status | link status変化時にログ出力するようになります。デフォルトで有効な機能で、noを指定する事で無効化できます。 |
loggin event dlci-status-change | DLCI status変化時にログ出力するようになります。 |
Router(config-if)# loggin event link-status Router(config-if)# loggin event dlci-status-change
動作確認
R1に以下のコマンドを投入し、ログ出力の有効無効を変更します。
[R1] interface Loopback0 no logging event link-status ! interface Serial0/0 logging event dlci-status-change
R1 lo0をshutdownさせ、リンクダウンに関するログが出力されない事を確認します。
[R1] R1(config)#do sho ip int bri lo0 Interface IP-Address OK? Method Status Protocol Loopback0 10.1.1.1 YES NVRAM up up R1(config)# R1(config)# R1(config)#int lo0 R1(config-if)#shut R1(config-if)# R1(config-if)# R1(config-if)#do sho ip int bri lo0 Interface IP-Address OK? Method Status Protocol Loopback0 10.1.1.1 YES NVRAM administratively down down R1(config-if)#
R1 s0/0をshutdownさせ、通常のログに加え、DLCIに関するログも出力される事を確認します。
[R1] R1(config)#int s0/0 R1(config-if)#shut R1(config-if)#^Z R1# *Mar 1 00:04:28.103: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 192.168.123.3 (Serial0/0) is down: interface down *Mar 1 00:04:28.559: %SYS-5-CONFIG_I: Configured from console by console *Mar 1 00:04:30.027: %LINK-5-CHANGED: Interface Serial0/0, changed state to administratively down *Mar 1 00:04:30.035: %FR-5-DLCICHANGE: Interface Serial0/0 - DLCI 102 state changed to DELETED *Mar 1 00:04:30.035: %FR-5-DLCICHANGE: Interface Serial0/0 - DLCI 103 state changed to DELETED *Mar 1 00:04:31.027: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down R1#