【问题标题】:How to use startmsg.regex in Rsyslog如何在 Rsyslog 中使用 startmsg.regex
【发布时间】:2017-10-27 19:02:56
【问题描述】:

以下是我的 conf 文件。我想为startmsg.regex添加配置。

我在配置文件中添加了以下行

  startmsg.regex="^[[:digit:]]{4}\/[[:digit:]]{2}\/[[:digit:]]{2} [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}"


ModLoad imfile
$InputFilePollInterval 10
$PrivDropToGroup proxy
$WorkDirectory /var/spool/rsyslog


$InputFileName /var/log/app/cache.log
$InputFileTag app-error:
$InputFileStateFile stat-app-error
$InputFileSeverity error
$InputFilePersistStateInterval 20000
$InputRunFileMonitor

  startmsg.regex="^[[:digit:]]{4}\/[[:digit:]]{2}\/[[:digit:]]{2} [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}"





$template AppError,"error %msg%\n"

if $programname == 'app-error' then @@0.0.0.0:12345;AppError
if $programname == 'app-error' then ~

当我使用rsyslogd -N1 检查我的配置文件时,我收到了错误消息。 使用此功能的正确方法是什么?

【问题讨论】:

    标签: rsyslog


    【解决方案1】:

    以下是我用来通过 rsyslog 发送日志的 conf 文件。 我也在添加示例日志。

    此配置将匹配每个事件以 YYYY/MM/DD HH:MM:SS 开头 然后发送到我的 TCP 端点。 此配置可用于多行日志

    module(load="imfile" PollingInterval="10") #needs to be done just once
    # File 1
    input(type="imfile"
      File="/var/log/app/my.log"
      Tag="app-error"
      Severity="error"
      startmsg.regex="^[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2} [[:digit:]]{1,2}:[[:digit:]]{1,2}:[[:digit:]]{1,2}"
    )
    
    
    $PrivDropToGroup proxy
    $WorkDirectory /var/spool/rsyslog
    
    
    $template AppError,"error %msg%\n"
    
    if $programname == 'app-error' then @@0.0.0.0:12345;AppError
    if $programname == 'app-error' then ~
    

    样本日志:

    2017/10/24 09:14:06 id1|   Took 0.00 seconds (  0.00 entries/sec).
    CPU Usage: 0.052 seconds = 0.032 user + 0.020 sys
    Maximum Resident Size: 104944 KB
    Page faults with physical i/o: 0
    2017/10/24 09:14:06 id1| found error
    

    现在 rsyslog 会将我的多行日志作为单个事件发送到我的 tcp 端点,如下所示:

    2017/10/24 09:14:06 id1|   Took 0.00 seconds (  0.00 entries/sec). \nCPU Usage: 0.052 seconds = 0.032 user + 0.020 sys \nMaximum Resident Size: 104944 KB \nPage faults with physical i/o: 0
    2017/10/24 09:14:06 id1| found error
    

    【讨论】:

    • 我可以证明,这个解决方案是有效的。几个想法:模板对我不起作用(rsyslogd -v == 8.16.0),刚刚删除了AppError,可以在服务器端看到日志。
    猜你喜欢
    • 2015-05-12
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2021-01-23
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多