まだsyslogをサポートしていないアプリケーションのログをsyslogにリダイレクトするにはどうすればよいですか?

まだsyslogをサポートしていないアプリケーションのログをsyslogにリダイレクトするにはどうすればよいですか?

Nginxを追加システムログに記録バージョン 1.7.1 の機能です。

ppa:nginx/stableからバージョン1.6.2を入手するか、デフォルトのUbuntuパッケージソースからバージョン1.4.6のみを取得できます。

数十のサーバーからデータを収集するユニバーサルロギング(rsyslog)サーバーがあります。 rsyslogは、プライマリログマシンにログを伝播するか、プライマリログマシンがシャットダウンした場合にフェールオーバーを実行するように各マシンに設定されます。

Nginxログをローカルsyslogにインポートし、rsyslogを介してリモートサーバーに送信するオプションは何ですか?


注:Nginxロギングに直接関連する回答を歓迎しますが、次に適用される一般的な回答も探しています。どのアプリケーション(したがって不足この質問のラベル)。その理由は、まだすべてのアプリを移行しておらず、syslog他のアプリでも同様の問題が発生すると予想しているからです。


許可された回答に関する重要な注意:

  1. inotify時間があるとき2012年4月12日rsyslog 5.9.6ベータ版以降、そうでない場合のみサポート2014年1月24日現在、rsyslog 8.1.5

    ppa:adiscon/v8-stableこの記事を書いた時点の最新のUbuntuディストリビューション(14.04 LTS)はrsyslog 7.4.4を使用しているため、Ubuntuで使用する必要があります。

  2. inotifyモードはmodule()次の代わりに指定されますinput()

    module(load="imfile" mode="inotify")
    

    の場合、inotify指定するPollingInterval必要はありません。

  3. 誤って設定すると、rsyslog何も記録されません/var/log/syslog。問題が何であるかを確認するには、このコマンドがrsyslogd -N1非常に役立つようです。明らかに、これは実行中であることps -A | grep rsyslogを確認するのにも役立ちます。rsyslog

    rsyslog現在のバージョンは を実行して取得できますrsyslogd -version

  4. ReadMode存在するinput() 0に設定する必要があります

  5. module()構成input()「rsyslog.confファイルの先頭に配置する必要があります。」

  6. 私はNginxを嫌うようですrsyslog/var/log/nginx/または、設定されている所有者、グループ、または権限に関係なく、/var/log/nginx/access.logファイルの変更はエラーなしで無視されます。ディレクトリに作成された他のファイルでも同様です/var/log/nginx/

    /home/demo/別のディレクトリ(または)にファイルを作成すると、変更は期待/var/log/どおりに反映されます。syslog

ベストアンサー1

ローカルシステムでrsyslogを実行しており、ログをリモートログサーバーに転送しているとします。

rsyslogのドキュメントによると、必要な操作を正確に実行するように入力モジュールを定義できるようです。詳細はこちらで確認しました。

http://www.rsyslog.com/doc/master/configuration/modules/imfile.html

もいくつかの素晴らしい例を提供します。

おすすめ記事