设置rsyslog以从两个网络设备进行日志记录


1

我的网络上有2个VOIP设备(ht502和ht704),它们都能够将日志信息作为系统日志数据发送。接收器是Raspbian上的一个小覆盆子。

我想配置syslog以接收来自两个VOIP设备的消息,并将它们存储到各自(不同的)日志文件中。到目前为止,我没能做到这一点。

我启用了syslog(通过取消注释下面的行) /etc/rsyslog.conf ):

$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514

我创建了两个文件 /etc/rsyslog.d/ 如下。

ht704.conf
$template NetworkLog, "/var/log/ht704.log"
:fromhost-ip, isequal, "192.168.11.160" -?NetworkLog

ht502.conf
$template NetworkLog, "/var/log/ht502.log"
:fromhost-ip, isequal, "192.168.11.162" -?NetworkLog

请注意各自不同的IP地址。

并重新启动服务:

service rsyslog restart

然而事实证明,所有输出都落在了 /var/log/ht502.log 文件。

例:

Nov  7 19:05:39 HT-502 [00: 0B:82:42:31:62]: [1.0.14.1] NAT::checkNAT: detected NAT environment for account 1
Nov  7 19:05:39 HT-502 [00: 0B:82:42:31:62]: [1.0.14.1] NAT::addPortMapping(STUN), iport = 49260
Nov  7 19:05:39 HT704 [00: 0B:82:65:DD:1C] [1.0.5.10]:System uptime: 1846
Nov  7 19:05:39 HT704 [00: 0B:82:65:DD:1C] [1.0.5.10]:System memory: 13213696/724992/0/794624
Nov  7 19:05:40 HT-502 [00: 0B:82:42:31:62]: [1.0.14.1] SIPClientTransaction::sendRequest: Request 15 is sent
Nov  7 19:05:40 HT-502 [00: 0B:82:42:31:62]: [1.0.14.1] SIPStack(0)::run: Active transactions: 2

最重要的是,我实际上只是注意到来自VOIP设备的消息也出乎意料地出现了 /var/log/messages/var/log/syslog。我不认为他们应该出现在那里。或者他们应该?

知道缺少什么吗?

Answers:


1

TL; DR:

你的模板互相破坏(虽然它们似乎没有被其他人继承 .conf 文件,它们是冲突的 - 你的猜测和我的一样好。

改名 NetworkLog 每个文件的唯一名称。

& ~ 作为最后一行 ht704.confht502.conf

替代(清洁剂):

创造一个单一的 .conf 档案 /etc/rsyslog.d/ 包含以下内容:

:fromhost-ip, isequal, "192.168.11.160" /var/log/ht704.log & ~ :fromhost-ip, isequal, "192.168.11.162" /var/log/ht502.log & ~ 使用格式化程序示例:

$template RFC3164fmt,"<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%" :fromhost-ip, isequal, "192.168.11.160" /var/log/ht704.log;RFC3164fmt :fromhost-ip, isequal, "192.168.11.162" /var/log/ht502.log;RFC3164fmt & ~

长版:

我最近发现自己很难理解这些文件的优先级和语法,并在谷歌搜索时发现了这个问题。我想链接到文档,但我发现它非常难以解析,似乎已经有动力在这里改进它: https://github.com/rsyslog/rsyslog-doc 因此,大多数建议来自 经验证据 (我试过的东西)。

图像 - rsyslog文档的帮助

TIL:

FILENAME s in /etc/rsyslog.d 以字母顺序排序[依赖于校对](即为什么默认名称被命名) 50-default.conf )。作为一个例子,我试图根据相同的规则/条件使多个输出文件具有不同的格式( :fromhost-ip, 等;);答案是要有 第一 文件读取(按字母顺序/逐字逐句)做任何事情 排除 STOP& ~ )同时呈现不同的输出 第二 文件(按字母顺序/ collat​​ionally) **包括 STOP& ~ )。 此示例中的第一个文件已命名 10-ddwrt.conf 第二个被命名 15-ddwrt.conf

希望这有所帮助,请随时改进它。我特别没有进入“新”语法,因为它与旧版本不兼容 rsyslog


修改为单个配置文件工作正常。需要 \n 在......的最后 $template 将新行打印到日志中的行。
Gert Gottschalk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.