2017-12-08 28 views
1

何とか私はこの作業を行うことができず、私はいくつかの助けが必要です。rsyslogは別のログファイルにメッセージをフィルタリングしません

systemdサービスによって書き込まれたsyslogのログを別のログファイルにフィルタリングしようとしました。現在私はDebianを使用しています。ここに私のrsyslogの設定ファイルは、コンテンツと/etc/rsyslog.d/19-test.confに位置しています

:msg,contains,"[frontend]" -/var/log/frontend_app.log 

にsystemdユニットファイルの内容:今

[Service] 
    ExecStart=/opt/test/current/venv/bin/python -m api.tasks.frontend_app 
    StandardOutput=syslog 
    WorkingDirectory=/opt/test/frontend/current 
    StandardError=syslog 
    User=coco 
    ProtectSystem=full 
    SyslogIdentifier=[frontend] 

、私は、ログはなく、/var/log/frontend_app.logになく、ときに私syslogに挿入されているサービスを実行するときこれを試してください

logger -p local1.info "[frontend] test message" 

メッセージが挿入されました/var/log/frontend_app.logにOKです。

/etc/rsyslog.conf内容:

# /etc/rsyslog.conf Configuration file for rsyslog. 
# 
#   For more information see 
#   /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html 


################# 
#### MODULES #### 
################# 

module(load="imuxsock") # provides support for local system logging 
module(load="imklog") # provides kernel logging support 
#module(load="immark") # provides --MARK-- message capability 

# provides UDP syslog reception 
#module(load="imudp") 
#input(type="imudp" port="514") 

# provides TCP syslog reception 
#module(load="imtcp") 
#input(type="imtcp" port="514") 


########################### 
#### GLOBAL DIRECTIVES #### 
########################### 

# 
# Use traditional timestamp format. 
# To enable high precision timestamps, comment out the following line. 
# 
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat 

# 
# Set the default permissions for all log files. 
# 
$FileOwner root 
$FileGroup adm 
$FileCreateMode 0640 
$DirCreateMode 0755 
$Umask 0022 

# 
# Where to place spool and state files 
# 
$WorkDirectory /var/spool/rsyslog 

# 
# Include all config files in /etc/rsyslog.d/ 
# 
$IncludeConfig /etc/rsyslog.d/*.conf 


############### 
#### RULES #### 
############### 

# 
# First some standard log files. Log by facility. 
# 
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 

# 
# 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:* 

私はそれがこのように振る舞うと、このための解決策は何である理由を見つけるように見えることができません。

Thx!

+0

カスタムrsyslog設定を削除した場合、ログは '/ var/log/syslog'に表示されますか?この質問は、問題がsystemd-> rsyslogかrsyslogフィルタリングからログを取得しているかどうかを判断するのに役立ちます。 –

+0

ログはsyslogに表示されます。実際には、 ':msg'の代わりに':rawmsg'を使って修正することができます。 ':msg'は' SyslogIdentifier'のないメッセージだけを含み、 ':rawmsg'はそれを含みます。 – chirgeo

答えて

1

OK、私は

:rawmsg,contains,"[frontend]" -/var/log/frontend_app.log 

、そう:rawmsg代わりの:msgを使用して、それを修正するために管理場合(:rawmsgは、タイムスタンプとの完全なメッセージを含んでいながら:msg MSGはSyslogIdentifierのみログメッセージが含まれていないようです有効)とSyslogIdentifier

詳細はこちらhttp://www.rsyslog.com/doc/master/configuration/properties.html#message-properties

関連する問題