linux – rsyslogd:有什么方法可以绕过当地设施的数量?

前端之家收集整理的这篇文章主要介绍了linux – rsyslogd:有什么方法可以绕过当地设施的数量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有大约9-10个设备,我们希望将日志记录定向到我们的rsyslog服务器.但是,只有8个当地设施(0-7).我们怎样才能解决这个限制?

解决方法

邮件中记录应用程序名称.过滤应用程序名称而不是设施.如果您的应用程序没有直接生成系统日志消息,您可以应用输出过滤器(例如,sed)按摩事物以查找您想要的方式.

查看filter conditions上的Rsyslog文档,了解如何配置此行为.根据该页面中的信息,这里是一个如何将以“application1”字符串开头的消息放入/ var / log / application1的示例:

if $msg startswith 'application1' then /var/log/application1

如果您的应用程序正确设置,您还可以显式过滤程序名称

if $programname == 'application1' then /var/log/application1

您可以在rsyslog.conf中执行各种复杂的过滤;阅读文档以获取更多信息和示例.

编辑:rsyslog可以使用模板为每个服务器创建单独的文件.类似下面的内容应该将所有日志消息放入每个主机名的单独文件中. (这是从联机帮助页中解除的.)

$template DynFile,"/var/log/system-%HOSTNAME%.log
*.*                             ?DynFile

以下内容类似,但不记录调试消息.它还使用连接主机名而不是消息主机名. (这是基于我开发的用于记录Obi100输出内容.)

$template HostFormat,"%timegenerated% %fromhost% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
$template HostFile,"/var/log/system-%fromhost%.log
if $syslogseverity < 7 then -HostFile;HostFormat

如果您有更复杂的需求,或者想了解上述内容,请阅读联机帮助页和文档.

猜你在找的Linux相关文章