Logwatch忽略自定义服务,但显式设置--service $service有效

Logwatch忽略自定义服务,但显式设置--service $service有效

我在服务器上使用 SSLH 来接受端口 443 上的 SSL 和 SSH 连接。

由于 sshd 和 apache2 的日志显示来自 127.0.0.1 的每个通过 SSLH 传入的连接,我想将 SSLH 的日志添加到 Logwatch。

为了实现这一点,我首先将有关 sslh 的所有条目过滤到一个单独的日志文件中,其中包含以下代码/etc/rsyslog.d/sslh.conf

if $programname == 'sslh' then /var/log/sslh.log
if $programname == 'sslh' then ~

在文件中,/etc/logwatch/conf/logfiles/sslh.conf我添加了以下内容来告诉 Logwatch 有关日志文件的信息:

LogFile = /var/log/sslh.log
LogFile = /var/log/sslh.log.0
Archive = /var/log/sslh.log.*.gz

*ApplyStdDate =

中的服务定义/etc/logwatch/conf/services/sslh.conf如下所示:

Title = "SSLH SSH / HTTPS Multiplexer"
LogFile = sslh

最后,我添加了/etc/logwatch/scripts/services/sslh包含以下内容的服务脚本:

#!/bin/bash

echo "Date Range: $LOGWATCH_DATE_RANGE"
echo "Detail Level: $LOGWATCH_DETAIL_LEVEL"
echo "Temp Dir: $LOGWATCH_TEMP_DIR"
echo "Debug Level: $LOGWATCH_DEBUG"

grep -v 'forwarded to SSL$'

当我使用显式指定的服务 sslh 运行 Logwatch 时,一切都像魅力一样工作,我得到了所需时间跨度的过滤输出:

logwatch --service sslh --output stdout

################### Logwatch 7.4.0 (05/02/12) ####################
       Processing Initiated: Fri Jul 12 11:37:46 2013
       […]
##################################################################

--------------------- SSLH SSH / HTTPS Multiplexer Begin ------------------------

Jul 11 22:51:13 example sslh[2225]: connection from […].adsl.alicedsl.de:3643 to […].yourvserver.net:https forwarded from localhost:59788 to localhost:https
Jul 11 22:51:13 example sslh[2225]: connection from […].adsl.alicedsl.de:3644 to […].yourvserver.net:https forwarded from localhost:59789 to localhost:https
[…]

---------------------- SSLH SSH / HTTPS Multiplexer End -------------------------


###################### Logwatch End #########################

该问题发生在常规操作中,当像这样调用Lo​​gwatch时:

logwatch --mailto [email protected]

我将 Logwatch 的输出重定向到一个文件中,并发现了一些奇怪的行,例如,其中 sslh 被列为禁用:

Service List:
[0] = all
[1] = -zz-network
[2] = -zz-sys
[3] = -eximstats
[4] = -sslh

sslh在 Logwatch 输出中进行 Grepping会产生以下结果:

root:~# grep -r -i -n sslh ~/logwatch_out

38:[4] = -sslh
75:[4] = -sslh
4747:ReadConfigFile: Opening /etc/logwatch/conf/services/sslh.conf
4748:ReadConfigFile: Read Line: Title = "SSLH SSH / HTTPS Multiplexer"
4749:ReadConfigFile: Name=Title, Value="SSLH SSH / HTTPS Multiplexer"
4750:ReadConfigFile: Read Line: LogFile = sslhReadConfigFile: Name=LogFile, Value=sslh
6431:ReadConfigFile: Opening /etc/logwatch/conf/logfiles/sslh.conf
6432:ReadConfigFile: Read Line: LogFile = /var/log/sslh.log
6433:ReadConfigFile: Name=LogFile, Value=/var/log/sslh.log
6434:ReadConfigFile: Read Line: LogFile = /var/log/sslh.log.0
6435:ReadConfigFile: Name=LogFile, Value=/var/log/sslh.log.0
6436:ReadConfigFile: Read Line: Archive = /var/log/sslh.log.*.gz
6437:ReadConfigFile: Name=Archive, Value=/var/log/sslh.log.*.gz
6527:[85] = sslh
6594:[47] = sslh
6867:Service Name: sslh
6868:   Logfile = sslh
7181:Logfile Name: sslh
7183:   Logfile = /var/log/sslh.log

在弄清楚我对 Logwatch 有关 sslh 的配置有效后,当我显式指定服务 sslh 时,我完全不知道为什么在定期运行 Logwatch 时排除 sslh。

即使类别“SSLH”也不包含在电子邮件中,无论有或没有任何内容。

任何帮助,将不胜感激。

相关内容