web-dev-qa-db-ja.com

特定のプロセスのsyslog出力を特定のファイルにリダイレクトする

私は完全なsyslog初心者であることを認めなければなりません。今まで触れたことはありませんが、私たちのほとんどのように、毎日その出力を使用しています:)

現在、gmetadデーモンが/ var/log/messagesファイルに次のようなメッセージをスパムする問題があります。

9月1日10:09:49モニター/ usr/sbin/gmetad [31752]:RRD_update(/ var/lib/ganglia/rrds/Machines/SummaryInfo/example.rrd):更新の不正な試み最終更新時刻が1314868188(最小1秒ステップ)のときに時刻1314868188を使用します。

エラーについてはあまり心配していません。私がやりたいのは、これらの特定のメッセージを別のログファイル(例:/var/log/gmetad.log)にリダイレクトすることです。問題は、gmetadのログを構成内の特定の場所に送る方法がないように思われることです(そして、この特定のソフトウェアのドキュメントは非常にまばらに見えます)。そのため、syslogの「ローカル」機能を使用してこれらのメッセージを取得し、別の場所に貼り付けて/ var/log/messagesを少しすっきりさせることができるかどうか疑問に思いました。

誰か助けてもらえますか? 「地元の」施設の例はありますか?

2
ticktockhouse

どのsyslogデーモンがありますか? Syslogd? syslog-ng? rsyslog?構文はデーモンごとに異なります。

たとえば、rsyslogでは、次のようなことができます。

local5.*   /var/log/gmetad.log

{アプリケーションの機能を見つける必要があります}

そうでなければあなたは次のようなことをすることができます

if $msg contains gmetad then /var/log/gmetad.log
2