syslogとは
syslogは、ネットワーク機器やサーバが生成するログメッセージを転送するための標準規格です。クライアント/サーバ型プロトコルであり、送信側(例:Ciscoルータ、スイッチなど)が受信側(例:Linuxサーバ)へテキスト形式でログを送信します。
syslogメッセージはUDPまたはTCPのポート番号514を使用して送信されます。
ネットワーク機器のログを収集することで、障害の原因や機器の動作状況を把握でき、トラブルシューティングやセキュリティ監視に役立ちます。
syslog – Facility
Facility(ファシリティ)は「ログの出力元」を意味します。どのシステムやサービスからのメッセージかを区別する役割を持ちます。Linuxでは * を指定することで全てのFacilityを対象にできます。
| Facility | 説明 |
|---|---|
| auth, authpriv | 認証サービス(login、suなど) |
| cron | cronジョブ関連 |
| daemon | 各種デーモン |
| kern | カーネル |
| lpr | 印刷システム |
| メールシステム | |
| news | ニュースサービス |
| syslog | syslog機能自身 |
| user | ユーザープログラム |
| local0~local7 | 独自の設定で利用可能 |
syslog – Severity
Severity(シビリティ)は「メッセージの重要度(優先度)」を意味します。数値が小さいほど深刻で、大きいほど軽度です。指定したSeverity以上のレベルが記録される仕組みになっています。
| Severity | 数値 | 説明 |
|---|---|---|
| emerg | 0 | 非常に危険な状態(システム停止レベル) |
| alert | 1 | 危険な状態、即時対応が必要 |
| crit | 2 | 重大な障害、クリティカル状態 |
| err | 3 | 一般的なエラー |
| warning | 4 | 警告 |
| notice | 5 | 重要な通知(注意すべき情報) |
| info | 6 | 情報メッセージ |
| debug | 7 | デバッグ情報 |
| none | – | ログを送らない(除外指定) |
CiscoにおけるSeverityレベル定義
Cisco機器では、syslogのSeverityを以下のように定義しています。
| Levelキーワード | 数値 | 説明 | UNIX syslog定義 |
|---|---|---|---|
| emergencies | 0 | システムが不安定 | LOG_EMERG |
| alerts | 1 | 即時処理が必要 | LOG_ALERT |
| critical | 2 | クリティカルな状態 | LOG_CRIT |
| errors | 3 | エラー状態 | LOG_ERR |
| warnings | 4 | 警告状態 | LOG_WARNING |
| notifications | 5 | 注意を要する状態 | LOG_NOTICE |
| informational | 6 | 情報メッセージ | LOG_INFO |
| debugging | 7 | デバッグメッセージ | LOG_DEBUG |
まとめ
- syslogは「ネットワーク機器やサーバのイベントログを集める仕組み」
- Facilityは「どこからのログか」、Severityは「どの程度重要か」を示す
- UDP 514番ポートがよく使われる(軽量だが信頼性は低い)、TCP 514番を使う場合もある
syslogの設定:デフォルト値
CiscoルータやCatalystスイッチは、デフォルトでsyslog機能が有効ですが、そのままでは運用上不十分です。主なデフォルト値は以下の通りです。
| 機能 | デフォルト値 |
|---|---|
| コンソール出力 | 有効(logging console) |
| コンソール出力レベル | debugging以上の全てのメッセージ |
| 出力ファイル指定 | なし |
| ログバッファサイズ | 4096バイト(非常に小さい) |
| ログ履歴サイズ | 1メッセージ |
| タイムスタンプ | 無効 |
| 同期ロギング | 無効 |
| syslogサーバ利用 | 無効 |
| syslogサーバIP | 未設定 |
| syslogサーバ送信レベル | informational |
| syslogサーバ facility | local7 |
そのため、タイムスタンプやバッファサイズの拡張、syslogサーバの指定などを必ず行うのが実務では一般的です。
分かりやすいログの表示設定
ログ解析を容易にするために、以下の設定を推奨します。
(config)# service timestamps debug datetime msec localtime show-timezone
(config)# service timestamps log datetime msec localtime show-timezone
(config)# service sequence-numbers
(config)# clock timezone JST 9
(config)# ntp server 10.1.1.10
- timestamps:ログに時刻を付与(ミリ秒・タイムゾーン付き)
- sequence-numbers:ログに通し番号を付与
- NTP:正確な時刻を維持
さらに、作業中にログが割り込んで見づらくなるのを防ぐために「同期ロギング」を設定します。
(config)# line console 0
(config-line)# logging synchronous
(config)# line vty 0 15
(config-line)# logging synchronous
syslogサーバの設定
外部のsyslogサーバへログを送信する場合は次の設定を行います。
バッファサイズの指定
(config)# logging buffered 512000
デフォルト4096バイトは小さすぎるため、Cisco推奨の 512000バイト に変更するのが一般的です。
syslogサーバのIPアドレス
(config)# logging host 192.168.10.100
syslog送信レベル
(config)# logging trap informational
→ informational (level 6) から emergencies (level 0) までが送信対象。
syslog送信時のFacility
(config)# logging facility local5
※ どの local0〜local7 を使うかはサーバ管理者に確認。
syslog設定例
(config)# service timestamps debug datetime msec localtime show-timezone
(config)# service timestamps log datetime msec localtime show-timezone
(config)# service sequence-numbers
(config)# clock timezone JST 9
(config)# ntp server 10.1.1.10
(config)# logging buffered 512000
(config)# logging host 192.168.10.100
(config)# logging trap informational
(config)# logging facility local5
(config)# line console 0
(config-line)# logging synchronous
(config)# line vty 0 15
(config-line)# logging synchronous
syslog出力レベル
syslogのログレベルは 0~7 の8段階があります。
| Level | キーワード | 説明 | UNIX syslog |
|---|---|---|---|
| 0 | emergencies | システム停止級 | LOG_EMERG |
| 1 | alerts | 即時対応必要 | LOG_ALERT |
| 2 | critical | 致命的障害 | LOG_CRIT |
| 3 | errors | エラー | LOG_ERR |
| 4 | warnings | 警告 | LOG_WARNING |
| 5 | notifications | 注意 | LOG_NOTICE |
| 6 | informational | 情報 | LOG_INFO |
| 7 | debugging | デバッグ情報 | LOG_DEBUG |
多くの企業では notifications(5) または informational(6) を常用し、トラブル調査時のみ debugging(7) を一時的に利用します。
インターフェースの linkup/linkdown ログ
Catalystスイッチでは、機種によってはインターフェースのリンクアップ/リンクダウンがデフォルトで出力されないことがあります。その場合は明示的に以下を設定します。
(config)# interface range GigabitEthernet1/1 - 1/48
(config-if)# logging event link-status