この記事は、改訂&リニューアルして『P はプロトコルのP - Cisco のservice timestamps』へ移転しました。
service timestamps - タイムスタンプの表示方法
Cisco ルータで発生したトラブルを調査する時、皆さんはどのshow コマンドを一番に確認しますか?
状況により答えは様々だと思いますが、私はshow logging を実行して、障害発生中の状況がお客様の証言と食い違いがないかを確認します。
show logging を実行すると、そのルータで過去に発生したイベントが時系列で表示されます。
00:01:47: %LINK-3-UPDOWN: Interface GigabitEthernet0/2, changed state to up
00:01:48: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to up
00:01:48: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to up
2行目の「GigabitEthernet0/1 のリンクアップ」は、0時1分47秒に発生したかのように見えますが、そうではありません。
数日が経過するとタイムスタンプの表示は次のように変わります。
6d06h: %LINK-3-UPDOWN: Interface GigabitEthernet0/2, changed state to down
もうお分かりですね。show logging で表示されるタイムスタンプは、イベントの発生時刻ではなく、ルータが起動してから、そのイベントが発生するまでに経過した時間なのです(この例では、Ge0/2 のリンクダウンは6日と6時間経過時に発生している)。
これでは、正確なイベント発生時刻が分からず、複数台のルータ間でログを見比べることなどできません。
show running-config を実行してみます。
Building configuration...
Current configuration : 1404 bytes
!
version 12.2
no service pad
service timestamps debug uptime
service timestamps log uptime
最後の行に注目してください。
service timestamp は、ルータが出力するメッセージにつけられるタイムスタンプの表記法を設定するコマンドです。
log uptime を指定すると、以後のログのタイムスタンプは起動後の経過時間(Uptime)になります。
IOS では、このUptime がデフォルトになっているのです。
ここで設定をuptime からdatetime へ変更します。
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#
Router(config)#service timestamps log datetime
Router(config)#^Z
Router#
datetime に変更すると、タイムスタンプの表記が、イベントの発生した時刻になります。
*Mar 1 00:01:28: %LINK-3-UPDOWN: Interface GigabitEthernet0/2, changed state to up
*Mar 1 00:01:29: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to up
*Mar 1 00:01:29: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to up
datetime msec とすると、ミリ秒単位のタイムスタンプを表示させることができます。
*Mar 1 00:01:28.701: %LINK-3-UPDOWN: Interface GigabitEthernet0/2, changed state to up
*Mar 1 00:01:29.682: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to up
*Mar 1 00:01:29.707: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to up
同様に、service timestamps debug datetime msec を設定すると、Debug コマンドの出力にも同様のタイムスタンプを表示させることができます。
さすがにネットワークの中心に設置されているコアルータでは、service timestamps がデフォルトのままで運用されている例はほとんど見たことがありませんが、地方オフィスに設置されているような小型ルータではたまに見かけます。
イベントが発生した時刻を正確に表示させることで、トラブル発生時のネットワークの状況を正確に把握することが可能となります。
ネットワークエンジニアになろう!のトップページへ戻る