2017-11-09 10 views
0

私はUbuntu 16.04を実行しています。 rsyslogdを使用して、ローカルのいずれの施設にもsyslogメッセージを送信できるようにしようとしています。ここに私の構成は次のとおりです。ここでrsyslogdは自分の設定に従ってローカル施設に書き込んでいません

[email protected]:/etc/rsyslog.d$ cat 50-default.conf 
# Default rules for rsyslog. 
# 
#   For more information see rsyslog.conf(5) and /etc/rsyslog.conf 

# 
# First some standard log files. Log by facility. 
# 
local0.*    /var/log/test-local-facility.log 

auth,authpriv.*   /var/log/auth.log 
*.*;auth,authpriv.none  -/var/log/syslog 
#cron.*    /var/log/cron.log 
#daemon.*   -/var/log/daemon.log 
kern.*    -/var/log/kern.log 
#lpr.*    -/var/log/lpr.log 
mail.*    -/var/log/mail.log 
#user.*    -/var/log/user.log 

# 
# Logging for the mail system. Split it up so that 
# it is easy to write scripts to parse these files. 
# 
#mail.info   -/var/log/mail.info 
#mail.warn   -/var/log/mail.warn 
mail.err   /var/log/mail.err 

# 
# Logging for INN news system. 
# 
news.crit   /var/log/news/news.crit 
news.err   /var/log/news/news.err 
news.notice   -/var/log/news/news.notice 

# 
# Some "catch-all" log files. 
# 
#*.=debug;\ 
# auth,authpriv.none;\ 
# news.none;mail.none -/var/log/debug 
#*.=info;*.=notice;*.=warn;\ 
# auth,authpriv.none;\ 
# cron,daemon.none;\ 
# mail,news.none  -/var/log/messages 

# 
# Emergencies are sent to everybody logged in. 
# 
*.emerg        :omusrmsg:* 

# 
# I like to have messages displayed on the console, but only on a virtual 
# console I usually leave idle. 
# 
#daemon,mail.*;\ 
# news.=crit;news.=err;news.=notice;\ 
# *.=debug;*.=info;\ 
# *.=notice;*.=warn /dev/tty8 

# The named pipe /dev/xconsole is for the `xconsole' utility. To use it, 
# you must invoke `xconsole' with the `-file' option: 
# 
# $ xconsole -file /dev/xconsole [...] 
# 
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably 
#  busy site.. 
# 
daemon.*;mail.*;\ 
    news.err;\ 
    *.=debug;*.=info;\ 
    *.=notice;*.=warn |/dev/xconsole 
[email protected]:/etc/rsyslog.d$ 

は私のプログラム例です:

#include <stdio.h> 
#include <unistd.h> 
#include <syslog.h> 

    int main(void) 
    { 
     openlog("test", LOG_PID|LOG_CONS, LOG_LOCAL0); 
     syslog(LOG_INFO, "This is a test log message for local0"); 
     closelog(); 

     return 0; 
    } 

私はrsyslogdサービスを再起動し、設定変更が終了したら:

sudo service rsyslog restart 

私は私の例のプログラムを実行するとし、ファイル/var/log/test-local-facility.logは作成されません。代わりに、syslogメッセージが/ var/log/syslogに表示されます。私はインターネットの腸を捜して、助けを求めていました。私はrsyslogdをデバッグモードで動かしてみました。誰でもここに経験がありますか?

答えて

0

私は手動でファイルを作成し、アクセス権/所有者/グループを変更し[OK]を:私は私の例のプログラムを実行すると

[email protected]:/etc/rsyslog.d$ ls -l /var/log/test-local-facility.log 
-rw-r----- 1 syslog adm 142 Nov 9 18:43 /var/log/test-local-facility.log 

は今、ログメッセージが予想されるとして表示されます。しかし、まだ/ var/log/syslogに送られていますが、これは私が望んでいないものです。それがそこに送られないようにするにはどうすればいいですか? syslogメッセージは、は/ var/log/syslogに行かないために取得するには、上記に加えて

+0

詳細を含む回答を作成するのではなく、これらの詳細を含めるように質問を編集する必要があります。 – froggythefrog

0

、私もそれが、施設によって消費された後に処理を停止するルールを追加する必要がありました:

local0.*    /var/log/test-local-facility.log 
& stop 

これが他の施設規則の前にあることを確認する必要があります。このようなシンプルなユースケースは、その例を見つけるのが簡単だと思います。実際には、rsyslogドキュメントがこの特定のユースケースを明確にカバーすると思います。

+0

詳細を含む回答を作成するのではなく、これらの詳細を含めるように質問を編集する必要があります – froggythefrog

関連する問題