将某些进程的系统日志输出重定向到特定文件

将某些进程的系统日志输出重定向到特定文件

我必须承认自己完全是 syslog 新手。我到现在还没有接触过它,但我每天都会使用它的输出,就像我们大多数人一样 :)

我目前遇到一个问题,gmetad 守护程序会向我的 /var/log/messages 文件发送如下消息:

9 月 1 日 10:09:49 监视 /usr/sbin/gmetad[31752]: RRD_update (/var/lib/ganglia/rrds/Machines/摘要信息/example.rrd): 当上次更新时间为 1314868188 时,非法尝试使用时间 1314868188 进行更新(最少一秒步骤)。

我不太担心错误,我想要做的是将这些特定消息重定向到另一个日志文件(例如 /var/log/gmetad.log)。问题是似乎没有任何方法可以将 gmetad 的日志定向到其配置中的某个位置(并且此特定软件的文档似乎相当稀疏​​)。所以我想知道是否可以使用 syslog 中的“本地”功能来获取这些消息并将它们粘贴到其他地方,以使 /var/log/messages 更干净一些。

有人能帮忙吗?有人有“本地”设施的例子吗?

答案1

您有哪个 syslog 守护进程?Syslogd?syslog-ng?rsyslog?每个守护进程的语法都不同。

例如在 rsyslog 中,你可以执行以下操作

local5.*   /var/log/gmetad.log

{您必须找到应用程序的功能}

否则你可以做类似的事情

if $msg contains gmetad then /var/log/gmetad.log

相关内容