カテゴリ:

今回はIOSでのログをLinuxで記録する設定を行います。R1はF0/1(192.168.0.100)でLANに接続されています。LinuxサーバのIPアドレスは192.168.0.180です。

R1#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.1      YES manual up                    up
FastEthernet0/1            192.168.0.100   YES manual up                    up
Loopback0                  17.17.1.1       YES NVRAM  up                    up

R1#ping 192.168.0.180

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.180, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/8 ms

Linuxで外部のログを受け取るにはsyslogd起動時に-rオプションが必要です。/etc/sysconfig/syslogに設定を追加して、syslogdを再起動します。

# grep 'SYSLOGD_OPTIONS' /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0 -r"
# /etc/rc.d/init.d/syslog restart

まずIOSからログを送信するにはloggingコマンドでsyslogサーバを指定します。

R1(config)#logging 192.168.0.180 (logging host 192.168.0.180 も可)

設定の確認にはshow loggingを利用します。初期値では一般的に利用される、UPD ポート514が指定されることが分かります。

R1(config)#do sh loggi | i Logging to
        Logging to 192.168.0.180  (udp port 514,  audit disabled,

ここでF0/0をshutし、Linuxにログが届くかを確認します。

R1(config)#int f0/0
R1(config-if)#sh

 

# tail -f /var/log/messages
May 10 20:08:01 192.168.0.100 56: May 10 07:37:20.291: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 12.12.12.2 (FastEthernet0/0) is down: interface down
May 10 20:08:03 192.168.0.100 57: May 10 07:37:22.259: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
May 10 20:08:03 192.168.0.100 58: May 10 07:37:23.259: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down

ログが保存されていることが分かりました。この設定を全てのルータで行えば、ログが集中管理できることが分かります。

現在のログを見ると、送信元はF0/1(192.168.0.100)になっています。変更するにはlogging source-interfaceコマンドを利用します。ここではLo0を指定してみました。

R1(config)#logging source-interface loopback 0
R1(config)#int f0/0
R1(config-if)#no sh

送信元が変更されたことが分かります。

May 10 20:11:43 17.17.1.1 59: May 10 07:40:57.567: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up

/etc/hostsにホスト名を登録するとより判別しやすくなります。

# grep r1 /etc/hosts
17.17.1.1       r1.example.com r1

May 10 20:14:01 r1.example.com 63: May 10 07:43:20.455: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 12.12.12.2 (FastEthernet0/0) is down: interface down

IOSからのログを個別に保存したい場合はファシリティを利用します。ここではlocal5を指定しました。

R1(config)#logging facility local5

Linuxでファシリティlocal5を独立したファイル/var/log/iosに保存する場合の設定例です。/var/log/messagesにlocal5.noneを追加することでログが二重に保管されることを防いでいます。

# grep 'local5' /etc/syslog.conf
*.info;mail.none;authpriv.none;cron.none;local5.none            /var/log/messages
local5.*                                                /var/log/ios

これ以降、ログは専用のファイル(/var/log/ios)にのみ保存されることが分かります。

# tail -f /var/log/ios /var/log/messages

==> /var/log/ios <==
May 10 20:28:30 r1.example.com 81: May 10 07:57:49.123: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 12.12.12.2 (FastEthernet0/0) is down: interface down