web-dev-qa-db-ja.com

Centosのログサーバーにサードパーティのログをリダイレクトする方法

すべてのクライアントからのログを受け入れるように単純なログサーバーをセットアップしたいと思います。/var/log/mail、メッセージ、ブートなどの標準的なシステムログについては話していません。アプリケーションログをリダイレクトまたは送信したいのですが、syslogデーモンを使用してメッセージをログに記録していない可能性があります。

/appdir/log/error.logなど。

私はインターネット上の多くの投稿に出くわしました。ほとんどの場合、rsyslogまたはsyslog-ngの使用をお勧めします。これまでのところ、アプリケーションログではなく、標準のシステムログをリダイレクトすることができました。私はcentos5/6環境を使用しています。

3
chandank

私が見たこれへの2つの主要なアプローチがあります。

まず、多くのアプリケーションは、syslogホストにネイティブに書き込むことができます。これが最善のルートです。それ以外の場合は、基本的なスクリプトを使用します。以下に示すようなものが機能します。

Sudo tail /my/app/log | nc -w0 -u 192.168.1.1 514

編集-ログを生成するシステムで実行している場合は、syslog-ng内でこれを処理する方法が実際にあります。必要に応じて、命名規則と宛先を置き換えます。 rsyslogにも同様の機能がありますが、より不格好です(imho)。

source s_trbdk3 {
   file("/var/log/trbdk3.log" flags(no-parse) program_override("trbdk3")  );
};
log{
    source(s_trbdk3);
    destination( d_mesg );
 };
4
Tim Brigham

rsyslogのimfile入力モジュールは次のことができます。

標準のテキストファイルをsyslogメッセージに変換する機能を提供します。標準のテキストファイルは、行がLFで区切られた印刷可能な文字で構成されるファイルです。

詳細については、 公式ドキュメント を読むことができます。

私はそれを試したことがなく、それはひどく効率的ではないかもしれませんが、それは仕事をすることができるようです。

syslog-ngは、その file() source driver と同様のことを実行できるようです。 この例 は次のようなソース宣言を提案します:

source s_all {  
    file("/path/to/your/file" follow_freq(1) flags(no-parse)); 
};  
3
chutz