| Syslog | |
|---|---|
| 原著者 | エリック・オールマン |
| 初回リリース | 1980年代 |
| オペレーティングシステム | Unixライク |
| タイプ | システムログ |
| ウェブサイト | datatracker.ietf.org/wg/syslog/about/ |
コンピューティングにおいて、syslog(/ ˈ s ɪ s l ɒ ɡ / )はメッセージログの標準規格です。syslogは、メッセージを生成するソフトウェア、メッセージを保存するシステム、そしてメッセージを報告・分析するソフトウェアを分離することを可能にします。各メッセージには、メッセージを生成したシステムの種類を示すファシリティコードが付与され、重大度レベルが割り当てられます。
コンピュータシステム設計者は、システム管理やセキュリティ監査、そして一般的な情報、分析、デバッグメッセージにsyslogを使用できます。プリンタ、ルーター、メッセージレシーバーなど、様々なプラットフォームのデバイスがsyslog標準を使用しています。これにより、異なる種類のシステムからのログデータを中央リポジトリに統合できます。syslogの実装は、多くのオペレーティングシステムに存在します。
ネットワーク上で動作する場合、syslog はクライアント サーバーアーキテクチャを使用し、 syslog サーバーがクライアントからのメッセージをリッスンして記録します。
歴史
Syslogは、1980年代にEric AllmanによってSendmailプロジェクトの一環として開発されました。[ 1 ]他のアプリケーションにも容易に採用され、それ以来Unix系システムの標準的なログソリューションとなっています。[ 2 ]他のオペレーティングシステムにもさまざまな実装が存在し、ルーターなどのネットワークデバイスによく見られます。[ 3 ]
Syslogは当初、公式な仕様が公開されていないまま事実上の標準として機能し、多くの実装が存在し、その中には互換性のないものもありました。インターネット技術タスクフォースは、 2001年8月にRFC 3164で現状を文書化しました。その後、2009年3月にRFC 5424で標準化されました。[ 4 ]
様々な企業がsyslog実装の特定の側面について特許を主張しようと試みてきました。[ 5 ] [ 6 ]これはプロトコルの使用と標準化にほとんど影響を与えませんでした。
メッセージコンポーネント
Syslogメッセージの発信元から提供される情報には、ファシリティコードと重大度レベルが含まれます。Syslogソフトウェアは、エントリをSyslog受信者に渡す前に、情報ヘッダーに情報を追加します。これらのコンポーネントには、発信元のプロセスID、タイムスタンプ、デバイスの ホスト名またはIPアドレスが含まれます。
ファシリティ
ファシリティコードは、メッセージを記録しているシステムの種類を指定するために使用されます。異なるファシリティを持つメッセージは、異なる方法で処理される場合があります。[ 7 ]利用可能なファシリティのリストは、標準で次のように説明されています。[ 4 ] : 9
| 施設コード | キーワード | 説明 |
|---|---|---|
| 0 | カーン | カーネルメッセージ |
| 1 | ユーザー | ユーザーレベルメッセージ |
| 2 | メール | メールシステム |
| 3 | デーモン | システムデーモン |
| 4 | 認証 | セキュリティ/認証メッセージ |
| 5 | syslog | syslogdによって内部的に生成されるメッセージ |
| 6 | lpr | ラインプリンターサブシステム |
| 7 | ニュース | ネットワークニュースサブシステム |
| 8 | UUCP | UUCPサブシステム |
| 9 | cron | cronサブシステム |
| 10 | authpriv | セキュリティと認証メッセージ |
| 11 | ftp | FTPデーモン |
| 12 | ntp | NTPサブシステム |
| 13 | セキュリティ | ログ監査 |
| 14 | コンソール | ログアラート |
| 15 | solaris-cron | スケジューリングデーモン |
| 16~23 | local0 – local7 | ローカルで使用されるファシリティ |
ファシリティコードとキーワードのマッピングは、オペレーティングシステムやSyslogの実装によって異なる場合があります。[ 8 ]
重大度レベル
問題の重大度リストも規格に記載されています: [ 4 ] : 10
| 値 | 重大度 | キーワード | 非推奨のキーワード | 説明 | 状態 |
|---|---|---|---|---|---|
| 0 | 緊急 | emerg | panic[ 9 ] | システムは使用不可です | パニック状態。[ 10 ] |
| 1 | 警告 | alert | 直ちに対処する必要があります | システムデータベースの破損など、直ちに修正する必要がある状態。[ 10 ] | |
| 2 | クリティカル | crit | クリティカルな状態 | ハードデバイスのエラー。[ 10 ] | |
| 3 | エラー | err | error[ 9 ] | エラー状態 | |
| 4 | 警告 | warning | warn[ 9 ] | 警告状態 | |
| 5 | 通知 | notice | 正常だが重要な状態 | エラー状態ではないが、特別な処理が必要になる可能性がある状態。[ 10 ] [ 11 ] | |
| 6 | 情報 | info | 情報メッセージ | プログラムが期待どおりに動作していることの確認 | |
| 7 | デバッグ | debug | デバッグレベルメッセージ | 通常、プログラムのデバッグ時にのみ使用される情報を含むメッセージ。[ 10 ] |
緊急とデバッグ以外の重大度レベルの意味は、アプリケーションによって異なります。例えば、システムの目的が顧客の口座残高情報を更新するためのトランザクション処理である場合、最終ステップで発生したエラーにはアラートレベルを割り当てる必要があります。一方、顧客の郵便番号を表示しようとする際に発生したエラーには、エラーレベル、あるいは警告レベルを割り当てることができます。
メッセージの表示を処理するサーバープロセスは、通常、より重大度の低いレベルの表示が要求された場合、より重大度の高いレベルのメッセージもすべて表示します。つまり、メッセージが個々の重大度で区切られている場合、Notice、Info、およびDebugメッセージをフィルタリングする際に、 Warningレベルのエントリも含まれることになります。[ 12 ]
メッセージ
RFC 3164では、メッセージコンポーネント(MSGと呼ばれる)は、メッセージを生成したプログラムまたはプロセスの名前であるTAGフィールドと、メッセージの詳細を含む CONTENTフィールドを持つと規定されています
RFC 5424では、[ 4 ]「MSGはRFC 3164でCONTENTと呼ばれていたものです。TAGは現在ヘッダーの一部ですが、単一のフィールドではありません。TAGはAPP-NAME、PROCID、およびMSGIDに分割されています。これはTAGの使用法と完全に似ているわけではありませんが、ほとんどの場合同じ機能を提供します。」NXLog、Rsyslogなどの一般的なsyslogツールはこの新しい標準に準拠しています。
コンテンツフィールドはUTF-8文字セットでエンコードする必要があり、従来のASCII制御文字範囲内のオクテット値は避けるべきである。[ 13 ] [ 4 ]
ロガー
生成されたログメッセージは、コンソール、ファイル、リモートsyslogサーバー、リレーなど、さまざまな宛先に送信される場合があります。ほとんどの実装では、ログにメッセージを送信するためのコマンドラインユーティリティ(多くの場合、ロガーと呼ばれます)とソフトウェアライブラリが提供されています。 [ 14 ]
収集されたログを表示および監視するには、クライアントアプリケーションを使用するか、システム上のログファイルに直接アクセスする必要があります。基本的なコマンドラインツールはtailとgrepです。ログサーバーは、ログをローカルファイルに加えてネットワーク経由で送信するように設定できます。一部の実装では、syslogメッセージをフィルタリングおよび表示するためのレポートプログラムが組み込まれています。
ネットワークプロトコル
ネットワーク上で動作する場合、Syslogはクライアント・サーバー・アーキテクチャを採用しており、サーバーはクライアントからのプロトコル要求を既知のポートまたは登録済みポートで待ち受けます。歴史的に、ネットワークログ記録における最も一般的なトランスポート層プロトコルはユーザーデータグラムプロトコル(UDP)であり、サーバーはポート514で待ち受けていました。[ 15 ] UDPには輻輳制御メカニズムがないため、伝送制御プロトコル(TCP)のポート6514が使用されます。また、実装にはトランスポート層セキュリティ(TLS)も必須であり、一般的な使用にも推奨されています。[ 16 ] [ 17 ]
制限事項
各プロセス、アプリケーション、オペレーティングシステムはそれぞれ独立して記述されているため、ログメッセージのペイロードにはほとんど統一性がありません。そのため、そのフォーマットや内容については想定されていません。syslogメッセージはフォーマットされています(RFC 5424では拡張バッカス・ナウア記法(ABNF)の定義が示されています)が、MSGフィールドはフォーマットされていません
ネットワーク プロトコルは単純通信であり、送信元に配信を確認する手段はありません。
展望
様々なグループが、ネットワークやセキュリティイベントのログ記録だけでなく、医療環境における提案されたアプリケーションなど、Syslogの使用を詳述した標準草案の作成に取り組んでいます。[ 18 ]
サーベンス・オクスリー法、PCI DSS、HIPAAなど、多くの規制により、組織は包括的なセキュリティ対策を実施することが求められており、これには多くの場合、様々なソースからのログの収集と分析が含まれます。Syslog形式は、ログのレポート作成と分析のためのオープンソースおよび独自ツールが多数存在するため、ログの統合に効果的であることが実証されています。Windowsイベントログやその他のログ形式をSyslogに変換するユーティリティも存在します。
マネージドセキュリティサービスプロバイダーは、分析技術と人工知能アルゴリズムを適用してパターンを検出し、顧客に問題を警告しようとします。[ 19 ]
インターネット標準文書
Syslogプロトコルは、インターネット技術タスクフォース(インターネット標準)が発行するRequest for Comments(RFC)文書によって定義されています。以下は、Syslogプロトコルを定義するRFCのリストです。[ 20 ]
- BSD syslogプロトコル。RFC 3164 。( Syslog プロトコルにより廃止。RFC 5424。) )
- syslog の信頼性の高い配信。RFC 3195 。
- Syslogプロトコル。RFC 5424 。
- Syslog の TLS トランスポートマッピング。RFC 5425 。
- UDP 経由のSyslog メッセージの送信。RFC 5426 。
- Syslog 管理のテキスト規則。RFC 5427 。
- 署名されたSyslog メッセージ。RFC 5848。
- Syslog のデータグラム トランスポート層セキュリティ (DTLS) トランスポートマッピング。RFC 6012 。
- TCP 経由のSyslog メッセージの送信。RFC 6587 。
参照
参考資料
- ^ 「エリック・オールマン」。インターネットの殿堂。2017年10月30日閲覧。
- ^ 「今週応募すべき3つの素晴らしいエンジニアリング職」 . VentureBeat . 2021年8月6日. 2021年8月16日閲覧。
- ^チャン、シェンリン;劉英。孟、ウェイビン。ブ、ジアハオ。ヤン、セン。孫永銭。ペイ、ダン。シュウ、ジュン。張裕志。ソン、レイ。張明(2020)。「データセンター ネットワークにおけるネットワーク デバイスの効率的かつ堅牢な Syslog 解析」。IEEE アクセス。8 : 30245–30261。Bibcode : 2020IEEEA...830245Z。土井:10.1109/ACCESS.2020.2972691。
- ^ a b c d e Gerhards, Rainer. Syslogプロトコル. doi : 10.17487/RFC5424 . RFC 5424 .
- ^ 「LXer: 特許がIETF syslog標準を危険にさらす」。
- ^ 「HUAWEIの特許請求に関するIETF IPR開示」。
- ^ 「Syslog Facility」 。 2012年11月22日閲覧。
- ^ 「Syslogを使用したシステム ログの詳細」SANS Institute。
- ^ a b c "syslog.conf(5) - Linux man page" . 2017年3月29日閲覧。
キーワードerror、warn、panicは非推奨であり、今後は使用しないでください。
- ^ a b c d e「closelog、openlog、setlogmask、syslog - システムログの制御」 。 2017年3月29日閲覧。LOG_NOTICE
エラー状態ではないが、特別な処理が必要になる可能性がある状態。
- ^ 「GNU Cライブラリ: syslog、vsyslog」。2024年7月19日閲覧。LOG_NOTICE
このメッセージは、正常だが重要なイベントについて説明しています。
- ^ 「Syslogメッセージの重大度レベル」 cd.delphix.com 2024年10月2日閲覧。
- ^ 「TCP経由のSyslogメッセージの転送」 . www.ipa.go.jp . 2021年8月16日閲覧。
- ^ 「loggerコマンド」 . www.ibm.com . 2021年8月16日閲覧。
- ^ 「Syslogサーバー」 . www.howtonetwork.com . 2021年8月16日閲覧。
- ^ Gerhards, Rainer (2009年3月). 「RFC 5424 - Syslogプロトコル」 . tools.ietf.org . doi : 10.17487/RFC5424 .
- ^ Fuyou, Miao; Yuzhi, Ma; Salowey, Joseph A. (2009年3月). Miao, F; Ma, Y; Salowey, J (編). 「RFC 5425 - SyslogのTLSトランスポートマッピング」 . tools.ietf.org . doi : 10.17487/RFC5425 .
- ^ 「ATNA + SYSLOGで十分」。ヘルスケア交換標準。2012年1月2日。 2018年6月6日閲覧。
- ^山西健司、丸山裕子 (2005-08-21). 「ネットワーク障害監視のための動的Syslogマイニング」 .第11回ACM SIGKDD国際会議「データマイニングにおける知識発見」議事録. KDD '05. シカゴ、イリノイ州、米国: Association for Computing Machinery. pp. 499– 508. doi : 10.1145/1081870.1081927 . ISBN 978-1-59593-135-1. S2CID 5051532 .
- ^ 「ネットワークイベントロギング(syslog)におけるセキュリティの問題」 . IETF