我们有大约 9-10 个设备,我们希望将日志记录定向到我们的 rsyslog 服务器。但是,只有 8 个本地设施(0-7)。我们怎样才能绕过这个限制?
RHEL 6 服务器上的 Rsyslog 在端口 514 UDP 上本地接收消息。这些消息有时比正常的系统日志消息大小大得多。我看到 rsyslog 可以很好地处理所有消息,它可以毫无问题地写入本地文件。但是,当我将远程主机添加到 rsyslog 配置时,这些相同的大消息被截断为大约 2048 个字符。
我正在运行 rsyslogd 版本:5.8.10
rsyslogd 5.8.10, compiled with:
FEATURE_REGEXP: Yes
FEATURE_LARGEFILE: No
GSSAPI Kerberos 5 support: Yes
FEATURE_DEBUG (debug build, slow code): No
32bit Atomic operations supported: Yes
64bit Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
Run Code Online (Sandbox Code Playgroud)
我对 rsyslog conf 所做的唯一更改是以下两件事:
这是在我的 rsyslog conf 文件的最顶部:
$MaxMessageSize 64k
Run Code Online (Sandbox Code Playgroud)
这是在我的 rsyslog conf 文件的最底部:
$template RemoteHost,"<%%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%
*.* @my-rsyslog-central-logger:514; RemoteHost
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么 rsyslog 会通过 UDP 将日志截断到远程主机,但是在将日志写入本地文件时能够处理日志?
**注意我确实通过使用 netcat 侦听 …
我注意到日志消息在我的 CentOS 7 系统上的 journald 和 /var/log/messages 中重复。起初我认为是日志选项 ForwardToSyslog(在安装的版本中默认为“yes”)导致了这种行为,但将其设置为“no”并没有什么区别。
显然,如果我停止 rsyslog 服务,日志记录到 /var/log/messages(可能还有其他一些日志会停止,但是如果 rsyslog 正在记录 journald 没有记录的内容,我会担心这样做时)。
rsyslog 是只记录从 journald 读取的任何内容还是记录其他内容?
从 /etc/rsyslog.conf 中提取:
# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
...
# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging …Run Code Online (Sandbox Code Playgroud) 如何使用 rsyslog 使日志文件远程和本地存储?
我正在使用 ubuntu 10.10。用iptables!我想在文件 /var/log/firewall 中而不是在任何其他日志文件中记录我的防火墙丢弃。
所以我在我的文件中添加了以下行:/etc/rsyslog.d/50-default.conf:
#iptables Log
kern.warning /var/log/firewall.log
Run Code Online (Sandbox Code Playgroud)
这样我的来自 iptables 的 drop 和日志就会登录到正确的文件中!
现在我不知道要添加什么来不记录其他文件中的滴..此时它会在 /var/log/messages /var/log/kern.log 和 /var/log/syslog 中写入每个滴
嘻嘻 :)
我发现了这个:将本地应用程序添加到从 /var/log/messages 中排除的 syslog但它不起作用..也许是因为它在 Ubuntu 10.10 中的 Rsyslogd?
谢谢!
我找到了一些示例,说明如何使用 rsyslog 根据日志条目的内容进行过滤。但是有没有办法做到这一点,所以它只过滤某个设施的内容?例如类似的东西:
if local0.* msg contains "foo"
Run Code Online (Sandbox Code Playgroud)
但是使用真正的语法而不是我刚刚编造的。
我想将foobar日志级别的程序中的日志消息保存err到/var/log/foobar.logrsyslogd 中的文件中。我怎样才能做到这一点?
这是我可以按程序名称过滤消息的方法:
:programname,contains,"foobar" /var/log/foobar.log
Run Code Online (Sandbox Code Playgroud)
这是我如何按日志级别过滤消息:
*.err /var/log/foobar.log
Run Code Online (Sandbox Code Playgroud)
但我不明白如何同时通过这两个过滤器进行过滤。
我正在尝试设置我的 ec2 实例(运行 amazon linux,据我所知它是建立在 RHEL 5 上的)以将日志消息转发到 loggentries.com,但没有转发任何内容。作为完整性检查,我按照本文中的说明将另一个 ec2 实例设置为中央服务器,发现未收到消息。所以我尝试logger -p cron.info TEST在客户端机器上执行,发现/var/log/cron 没有添加任何内容!有些东西显然不起作用!但是 rsyslogd 正在运行:
ps辅助| grep rsys
产出
根 25362 0.0 0.0 183768 1328 ? SL 14:27 0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
作为参考,这里是 rsyslog.conf (暂时删除了转发内容,直到我在本地工作为止)
#### MODULES ####
$ModLoad imuxsock.so # provides support for local system logging (e.g. via logger command)
$ModLoad imklog.so # provides kernel logging support (previously done by rklogd)
#$ModLoad immark.so # provides --MARK-- message capability
# …Run Code Online (Sandbox Code Playgroud) 我已经运行 Ubuntu VPS 几个星期了,所以昨天发生了几次每月的日志轮换。对于像/var/log/wtmp预期那样的事情:logfile有最近的条目,而logfile.1旧的条目。但是,/var/log/syslog即使在重新启动 rsyslog 之后,现在也是空的。有任何想法吗?
我应该提到,这不是类似问题Syslog not logging anything的重复。由于我没有任何修改的默认设置,/var/log/syslog 则默认包含在/etc/rsyslog.d/50-default.conf:
*.*;auth,authpriv.none -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我在系统日志中收到这样的消息。
rsyslogd-2177: imuxsock lost 21869 messages from pid 3418 due to rate-limiting
rsyslogd-2177: imuxsock begins to drop messages from pid 3427 due to rate-limiting
Run Code Online (Sandbox Code Playgroud)
我的服务器在最近几天变得没有响应,我必须重新启动机器 2-3 次。
请让我知道这些消息可能是什么,以及这些消息是否可能是服务器停机的原因。