NEC IXシリーズにおけるログ管理の方法についてまとめます。NEC IXはサブシステム単位でログ出力のseverity(重要度)を定義する事ができます。
設定まとめ
コマンド一覧
syslogに関するコマンド一覧は以下の通りです。
Router(config)# logging subsystem <subsystem> <severity> Router(config)# logging subsystem all <severity> Router(config)# logging buffered <size> [ cyclic | one-time ] Router(config)# logging timestamp {datetime|timeofday|uptime} Router(config)# syslog ip enable Router(config)# syslog ip host <host> Router(config)# syslog ip facility <facility> Router(config)# syslog ip source <ipv4_address>
ログのメモリ保存
以下のコマンドで出力されたログをメモリ内に保存する事ができます。保存するログの量やローテートするかを指定する事もできます。
なお、メモリに保存されたログですので再起動と同時に消えてしまう事に注意して下さい。再起前のログ調査が必要ならば後述のsyslogサーバへの転送設定が必要です。
Router(config)# logging buffered <size> [ cyclic | one-time ]
「初期設定 (telnetログインができるまで)」で示した「Webブラウザ操作用の工場出荷設定」のデフォルト設定は以下の通りです。デフォルトで131072byteのログがローテートされながらメモリに記録されます。
logging buffered 131072
重要度(severity)の定義
NEC IXは、システム単位でログ出力の量を定義する事ができます。以下のコマンドでsubsystem毎にseverityを定義します。なお、subsystemにはtelnet, ssh, ospf, vrrp, natなどが存在します。例えば、telnetを有効にすればルータへのログイン・ログアウトを記録する事ができます。
Router(config)# logging subsystem <subsystem> <severity>
以下のコマンドで全subsystemに対するログを有効にする事ができます。ただし、全subsystemのログを有効にするのはログの量が多くなり過ぎるリスクがありますので、リスクとリターンを考えつつ設定を作成しましょう。
Router(config)# logging subsystem all <severity>
「初期設定 (telnetログインができるまで)」で示した「Webブラウザ操作用の工場出荷設定」のデフォルト設定は以下の通りです。デフォルトで全システムのwarn以上のログが記録されます。
logging subsystem all warn
ログの表示設定
以下のコマンドでログに記録される時間をdatetime, timeofday, uptimeのいずれかを指定できます。なお、設定が適用されるのはメモリ内のログのみで、syslogサーバへ転送されるログには適用されません。
Router(config)# logging timestamp {datetime|timeofday|uptime}
「初期設定 (telnetログインができるまで)」で示した「Webブラウザ操作用の工場出荷設定」のデフォルト設定は以下の通りです。
logging timestamp datetime
syslogサーバへの転送
以下のコマンドでsyslogサーバへのログ転送を有効にします。
Router(config)# syslog ip enable
syslogサーバのIPアドレスおよびfacilityを指定します。
Router(config)# syslog ip host <host> Router(config)# syslog ip facility <facility>
送信元インターフェースの指定
syslogの送信元IPアドレスを明示指定する事ができます。明示的な指定がないと障害時や構成変更時に送信元IPアドレスが変わってしまいログが見づらくなってしまいます。送信元をLoopback Addressのような不変の値を使用するようにすると、ログが管理しやすくなります。
Router(config)# syslog ip source <ipv4_address>
動作確認
動作確認の構成
以下の環境で動作確認を行います。
+-----------------+ | Internet | | (ISP:Jcom) | +-------+---------+ | | | | Gi0.0 | .dhcp +-------+---------+ | NEC IX 2015 | | R1 | +-------+---------+ Gi1.0 | .254 | | 192.168.1.0/24 | ens192 | .100 +-------+---------+ | Rocky Linux 8.5 | | host100 | +-----------------+
初期設定
IX2015の初期設定は以下の通りとします。設定はIPアドレスとインターネットに接続するためのNATしか投入していません。
動作確認 (1) ログのメモリ蓄積
以下の設定を投入し、メモリへのログ出力を有効にします。なお、以下設定は「Webブラウザ操作用の工場出荷設定」と全く同じ設定です。「コンソールケーブル操作用の工場出荷設定」を使用する方は、以下のような明示的な設定が必要になります。
[R1:IX2015] logging buffered 131072 logging subsystem all warn logging timestamp datetime
NEC IXを再起動し、その時に出力されるログを観察します。
[R1:IX2015] Router# svintr-config Enter configuration commands, one per line. End with CNTL/Z. Router(config)# reload Notice: The router will be RELOADED. This is to ensure that the peripheral devices are properly initialized. Are you sure you want to reload the router? (Yes or [No]): Yes 再起動に伴いログが出力される事を確認します。 [R1:IX2015] Router(config)# show logging Buffer logging enabled, 131072 bytes, type cyclic 13 messages (1-13), 1002 bytes logged, 0 messages dropped Log Buffer (1-13): 2021/11/21 15:24:49 GW.038: User anonymous@ has logged on 2021/11/21 15:24:58 ETH.031: Link status up for port 0, 1G b/s, GigaEthernet0 2021/11/21 15:24:58 IP.021: Interface GigaEthernet0.0, link up 2021/11/21 15:24:58 ETH.031: Link status up for port 1, 1G b/s, GigaEthernet1 2021/11/21 15:24:58 ETH.031: Link status up for port 4, 1G b/s, GigaEthernet1 2021/11/21 15:24:58 IP.021: Interface GigaEthernet1.0, link up 2021/11/21 15:24:58 IP.021: Interface GigaEthernet0.0, line protocol up 2021/11/21 15:24:58 IP.021: Interface GigaEthernet1.0, line protocol up 2021/11/21 15:24:58 IP.021: Interface GigaEthernet1.0, up 2021/11/21 15:25:07 IP.021: Interface GigaEthernet0.0, up 2021/11/21 15:25:09 TCP.039: Received ACK segment with destination port 23, sequence number 4139019608 while in the LISTEN state, send RESET 2021/11/21 15:25:09 TCP.040: Sending RESET to host 192.168.1.100 2021/11/21 15:25:11 GW.038: User anonymous@192.168.1.100 has logged on Router(config)#
動作確認 (2) 重要度(severity)
NEC IXがサブシステム単位のログ出力が可能である事を確認します。デフォルト設定である全サブシステムのwarn以上の出力を削除し、telnetのinfo以上を出力するように変更します。
[R1:IX2015] no logging subsystem all logging subsystem tels info
NEC IXを削除します。
[R1:IX2015] Router(config)# reload Notice: The router will be RELOADED. This is to ensure that the peripheral devices are properly initialized. Are you sure you want to reload the router? (Yes or [No]): Yes
さきほどのログではインターフェースのupなどが記録されていましたが、以下はtelnetに関するログしか記録されていません。
[R1:IX2015] Router(config)# show logging Buffer logging enabled, 131072 bytes, type cyclic 3 messages (1-3), 245 bytes logged, 0 messages dropped Log Buffer (1-3): 2021/11/21 15:28:11 TELS.001: Connected client 192.168.1.100, server 192.168.1.254 2021/11/21 15:29:15 TELS.001: Connected client 192.168.1.100, server 192.168.1.254 2021/11/21 15:29:15 TELS.007: Received terminal size width 80, height 24 Router(config)#
動作確認 (3) syslogサーバへの転送
syslogサーバへの転送設定は以下3行です。syslogの転送を有効にし、syslogサーバのIPアドレスとfacilityを指定します。
[R1:IX2015] syslog ip enable syslog ip host 192.168.1.100 syslog facility local6
何らかの方法でsyslogサーバを構築します。3cdaemonを使用しても良いですし、VMware等でLinuxサーバを構築しても良いでしょう。syslogサーバにログが転送された事を確認します。
[host100:RockyLinux8.5] [root@host100 ~]# tail -n3 /var/log/messages Nov 21 15:38:24 192.168.1.254 TELS[003]: Disconnected client 192.168.1.100, server 192.168.1.254 Nov 21 15:38:25 192.168.1.254 TELS[001]: Connected client 192.168.1.100, server 192.168.1.254 Nov 21 15:38:25 192.168.1.254 TELS[007]: Received terminal size width 80, height 24 [root@host100 ~]#