Syslog、rsyslog、syslog-ngで少し混乱しています。
syslog()
のソースコードはどこから入手できますか?
Rsyslogとrsyslogdの間に違いはありますか?
基本的に、それらはすべて同じで、中央リポジトリ内のさまざまなタイプのシステムからのデータのロギングをすべて許可します。
しかし、これらは3つの異なるプロジェクトであり、各プロジェクトは、より信頼性と機能性を備えた以前のプロジェクトを改善しようとしています。
Syslog
プロジェクトは最初のプロジェクトでした。 1980年に開始されました。これは、Syslog
プロトコルのルートプロジェクトです。現時点では、Syslogは非常に単純なプロトコルです。最初は、トランスポート用のUDPのみをサポートしているため、メッセージの配信は保証されません。
次に来たsyslog-ng
1998年。これは、基本的なsyslog
プロトコルを次のような新機能で拡張します。
次は2004年にRsyslog
が登場しました。これはsyslog
プロトコルを次のような新機能で拡張します:
今日、それらは3つの同時進行のプロジェクトであり、バージョンごとに別々に成長しているが、隣人が何をしていたかに関して並行して成長しているとしましょう。
個人的には今日syslog-ng
は、簡単で包括的なセットアップと構成に加えて、必要な主な機能を提供する最も成熟したプロジェクトであるため、ほとんどの場合のリファレンスです。
これらは3種類のログマネージャーです。システムでフィルターを収集し、ログを送信/保存できます。
Syslog
(sysklogd
とも呼ばれるデーモン)は、一般的なLinuxディストリビューションのデフォルトのLMです。軽量ではあるが柔軟性に欠けるため、ファシリティと重大度でソートされたログフラックスをファイルおよびネットワーク(TCP、UDP)にリダイレクトできます。rsyslog
はsysklogd
の「高度な」バージョンであり、設定ファイルは同じままです(syslog.conf
ファイルを直接rsyslog.conf
そしてそれは動作します);しかし、あなたはそれにたくさんの新しいクールなものを持っています:
Syslog-ngは「次世代」です。私はそれがログを管理する最良の方法だと思います:すべてがオブジェクト(ソース、宛先、フィルター、そして非常に転送ルール)であり、構文は明確です。機能面でrsyslog
とsyslog-ng
異なっています。
どこからsyslog()のソースコードを入手できますか
これは glibc または他のUnixフレーバーのlibc実装によって提供されます。この呼び出しは基本的に、メッセージをsyslog unixドメインソケット/ dev/logに送信します。このソケットは通常、システムロガー(rsyslog、syslog-ng、nxlogなど)によって作成されます。
それらはすべてsyslogデーモンであり、rsyslogとsyslog-ngは(ほとんどメンテナンスされていない)従来のsyslogdに代わる高速で機能豊富な代替品です。 syslog-ngは最初から(構成形式が異なります)rsyslogはもともとsyslogdのフォークであり、その構文をサポートおよび拡張していました。近年、rsyslogはより新しい構成フォーマットもサポートし始めました。現時点では、具体的な内容に触れずに火炎戦争を開始することなく、2つを比較することは非常に困難です。
Syslogは一般に、複数のものになる可能性があるため、かなり混乱します。私はここで曖昧さをなくすことを試みました: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/