【问题标题】:Extract data from syslog with rsyslog使用 rsyslog 从 syslog 中提取数据
【发布时间】:2022-02-02 21:51:33
【问题描述】:

我实际上是在 CentOS 7 中的 Syslog Server 上工作。 我想从消息部分的user 变量创建一个动态文件。

所以,在我的例子中,如果消息部分是:

30-Jan-2022 11:50:10 HOSTNAME ... pri=5 confid=01 slotlevel=2 user="A.Smith" domain="lab.test" ...

我想动态创建一个文件(名为A.Smith)并将来自用户A.Smith 的所有日志放在此处。并为所有其他人执行此操作:400 个用户。

我的rsyslog.conf 目前是这样配置的:

 $template ChangeFormatLog,"%$day%-%timegenerated:1:3:date-rfc3164%-%$year% %timegenerated:12:19:date-rfc3339% %HOSTNAME% %syslogtag% %msg%\n"
 
 $templateDynamicFile,"/var/log/syslogclients/$YEAR-$MONTH-$DAY/%HOSTNAME%.log"
 
 *.* ?DynamicFile;ChangeFormatLog

我不知道在rsyslog.conf 中写什么来检索这些数据.. 或者是否有可能(?)

有人可以帮帮我吗?

【问题讨论】:

  • 为了澄清:您有 X 台主机和 X 用户,并且您想为每台主机上的用户创建 X 个 someUser.log 文件。然后您想将每个日志文件发送到您的系统日志服务器。对吗?

标签: syslog rsyslog


【解决方案1】:

仅使用 rsyslog 无法实现您想要实现的目标。此答案基于您在多台主机上拥有多个用户的假设。

  1. 创建一个脚本,为每个用户创建一个username.log 文件。

  2. 创建一个脚本,将所有需要的数据写入username.log 文件

  3. 将所有username.log 文件转发到您的系统日志服务器

【讨论】:

    【解决方案2】:

    问题是我有大约 20 台计算机供大约 400 个用户使用。

    这是客户的互联网站。他们可以将他们的 ID 放在 Firefox 的强制门户上。它们共享相同的帐户窗口。

    我只想在我的服务器系统日志中创建 user.log(用户 = 放入强制门户的 ID)。

    实际上我是这样检索我的日志的:

    30-Jan-2022 11:50:10 HOSTNAME ... pri=5 confid=01 slotlevel=2 user="A.Smith" domain="lab.test" ..

    我想这可以通过一个分析框架的脚本来实现.. 不知道该怎么做

    【讨论】:

    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多