「ログそのものの見方」→「どこに表示するか」→「どこに保存するか」 の3つに分けると、かなり整理しやすいです 👍
1. システムログの表示形式
Cisco機器のログは、だいたい次のような情報で構成されています。
① シーケンス番号
② 日時
③ ファシリティ / シビリティ / メッセージ
④ 詳細
たとえば、
000123: Oct 7 10:25:33.123: %SYS-5-CONFIG_I: Configured from console by console
のような形です。
これを分解すると、
| 部分 | 意味 |
|---|---|
000123 |
① シーケンス番号 |
Oct 7 10:25:33.123 |
② ログが出た日時 |
%SYS-5-CONFIG_I |
③ ファシリティ・シビリティ・メッセージ識別子 |
Configured from console by console |
④ 詳細内容 |
① シーケンス番号
シーケンス番号は、
何番目のログか
を表します。
000001
000002
000003
...
という感じです。
ただし、
デフォルトでは表示されません
という点がポイントです。
イメージは、ログの「通し番号」です。
② 出力日時
次は、
そのログがいつ発生したか
です。
たとえば、
Oct 7 10:25:33
なら、
10月7日 10時25分33秒
に発生したログ、ということです。
トラブル調査では、
「何時から障害が起きたのか」
を見るのに非常に重要です。
③ ファシリティ / シビリティ / メッセージ
たとえば、
%SYS-5-CONFIG_I
なら、
%SYS - 5 - CONFIG_I
と分けて考えます。
| 部分 | 意味 |
|---|---|
SYS |
ファシリティ |
5 |
シビリティ |
CONFIG_I |
メッセージ識別子 |
ファシリティ
ファシリティは、
どの種類・機能から出たログなのか
です。
たとえば、
SYS
LINK
LINEPROTO
SECURITY
などがあります。
前回出てきた「Local7」はSyslogサーバーへ送る際のファシリティ設定の話で、ここに表示されるファシリティはCisco IOS内部のどの機能がメッセージを出したかを示すもの、と考えると整理しやすいです。
シビリティ
真ん中の数字が、
重大度
です。
たとえば、
%SYS-5-CONFIG_I
↑
5
なら、
レベル5 = Notification
です。
前回の表とつながります。
| 数字 | 意味 |
|---|---|
| 0 | Emergency |
| 1 | Alert |
| 2 | Critical |
| 3 | Error |
| 4 | Warning |
| 5 | Notification |
| 6 | Informational |
| 7 | Debugging |
つまりログを見るだけで、
「これはどのくらい重要なログなのか」
が分かります。
④ 詳細
最後が人間が読む本文です。
Configured from console by console
なら、
コンソールから設定変更が行われました
という意味です。
つまりログは、
いつ?
↓
どの機能が?
↓
どのくらい重要な?
↓
何をした?
という順に読むと分かりやすいです。
ログの読み方まとめ
000123: Oct 7 10:25:33: %SYS-5-CONFIG_I: Configured from console by console
│ │ │ │ │ │
│ │ │ │ │ └ 詳細
│ │ │ │ └ メッセージ
│ │ │ └ シビリティ
│ │ └ ファシリティ
│ └ 日時
└ シーケンス番号
この図を覚えておくとかなり楽です。
2. システムログは「どこに表示するか」を決められる
Cisco機器ではログの表示先を変えられます。
大きく、
- コンソール
- 仮想ターミナル
があります。
コンソールライン
コンソール接続中は、
デフォルトでログが表示されます
つまり設定なしでも出ます。
PC
│
│ コンソールケーブル
▼
Cisco機器
ログレベルを変えたい場合は、
(config)# logging console <レベル>
です。
たとえば、
(config)# logging console 4
なら、
0
1
2
3
4
だけが表示されます。
つまり、
指定した数値以下 = それより重要なログ
が出ます。
仮想ターミナルライン
SSHやTelnetで接続している場合です。
PC
│
│ SSH / Telnet
▼
Cisco機器
こちらは、
デフォルトではログが表示されません
なので、自分で有効化する必要があります。
# terminal monitor
で表示開始。
# terminal no monitor
で表示停止です。
覚え方はかなりそのままです。
monitor
= 見る
仮想ターミナルでログレベルを変える
(config)# logging monitor <レベル>
です。
たとえば、
(config)# logging monitor 5
なら、
0〜5
が対象になります。
コンソールと仮想ターミナルの違い
| 接続 | デフォルト | 表示開始 | レベル変更 |
|---|---|---|---|
| コンソール | 表示される | 不要 | logging console |
| SSH/Telnet | 表示されない | terminal monitor |
logging monitor |
ここは試験でも比較されやすいです。
3. システムログの「保存先」
表示するだけでなく、
ログを後から確認できるように保存する
こともできます。
主な保存先は、
- RAM
- Syslogサーバー
です。
RAMに保存
Cisco機器自身のRAMにログをためる方法です。
これを、
buffered logging
といいます。
Cisco機器
┌──────────────┐
│ RAM │
│ ログを保存 │
└──────────────┘
コマンドは、
(config)# logging buffered <数値>
です。
ただし、ここが少しややこしいです。
logging buffered の数値には2つの意味がある
同じコマンドですが、数字によって意味が変わります。
logging buffered 8192
なら、
RAMに8192バイト分保存
です。
一方、
logging buffered 5
なら、
レベル0〜5を保存
です。
なぜ区別できるの?
Syslogレベルは、
0〜7
しかありません。
一方、バッファサイズは、
4096以上
です。
なので、
5
ならレベル。
8192
ならサイズ。
とCisco IOSが判断できます。
覚え方
0〜7
↓
ログレベル
4096以上
↓
保存サイズ
ここは数字だけ見ると混乱しやすいので、この2段構えで覚えると良いです。
RAM保存の注意点
RAMなので、
再起動するとログは消えます
これも重要です。
RAM
↓
電源OFF
↓
消える
前回学んだRAMの性質そのものですね。
Syslogサーバーに保存
長期間保存したい場合は、
外部のSyslogサーバー
を使います。
Router ─┐
Switch ─┼──→ Syslogサーバー
Switch ─┘
設定は、
(config)# logging host <IPアドレス>
です。
例:
(config)# logging host 192.168.1.100
意味は、
「192.168.1.100へログを送って」
です。
ホスト名でも指定できる
たとえば、
(config)# logging host syslog-server
のように名前でも指定できます。
ただしその場合、
名前解決ができること
が必要です。
つまりDNSなどで、
syslog-server
↓
192.168.1.100
と変換できないといけません。
表示先と保存先を整理
ここまで混ざりやすいので、まとめます。
| 種類 | 目的 | コマンド |
|---|---|---|
| コンソール | 画面に表示 | logging console |
| SSH/Telnet | 画面に表示 | terminal monitor |
| RAM | 機器内に保存 | logging buffered |
| Syslogサーバー | 外部に保存 | logging host |
イメージすると、
┌→ コンソール表示
Cisco機器 ─────┼→ SSH/Telnet表示
├→ RAM保存
└→ Syslogサーバー保存
です。
コマンド一覧
| やりたいこと | コマンド |
|---|---|
| コンソールのログレベル変更 | logging console <レベル> |
| SSH/Telnetでログ表示 | terminal monitor |
| SSH/Telnetのログ表示停止 | terminal no monitor |
| SSH/Telnetのログレベル変更 | logging monitor <レベル> |
| RAM保存サイズ指定 | logging buffered <4096以上> |
| RAM保存レベル指定 | logging buffered <0〜7> |
| Syslogサーバー指定 | logging host <IP/ホスト名> |
最後に全体を1枚で
Cisco機器でイベント発生
↓
システムログ生成
↓
┌─────────────────────┐
│ ログの中身 │
│ ①番号 │
│ ②日時 │
│ ③Facility/Severity │
│ ④詳細 │
└─────────────────────┘
↓
どこへ出す?
↓
┌────────────┬─────────────┐
│ 表示 │ 保存 │
├────────────┼─────────────┤
│Console │RAM │
│SSH/Telnet │Syslog Server │
└────────────┴─────────────┘
CCNA向け最重要ポイント
特に覚えておきたいのはこのあたりです。
Consoleはデフォルト表示
SSH/Telnetは
terminal monitorが必要logging buffered = RAM保存
logging host = Syslogサーバー指定
0〜7 = ログレベル
4096以上 = bufferedのサイズ
そしてログを読むときは、
番号 → 日時 → 誰が出した → 重大度 → 内容
という順に見ると、かなり読みやすくなります 📘