使用syslog ng`as is`传输日志,没有时间戳和主机名等

50pmv0ei  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(403)

背景
在计算机上运行并将日志生成到 /var/log/httpd/error_log 使用 syslog-ng 将日志发送到端口 5140 最终它将被 kafka producer 发送到主题
设置

options {                                                                                                                             
    flush_lines (0);                                                                                                                
    time_reopen (10);                                                                                                               
    log_fifo_size (1000);                                                                                                          
    long_hostnames (off);                                                                                                           
    use_dns (no);                                                                                                                   
    use_fqdn (no);                                                                                                                  
    create_dirs (no);                                                                                                               
    keep_hostname (no);                                                                                                             
};

source s_apache2 {
    file("/var/log/httpd/error_log" flags(no-parse));
}

destination loghost {
    tcp("*.*.*.*" port(5140)); 
}

问题 syslog-ng 在日志数据中预先添加时间戳和主机名,这是不需要的

<13>Jan 10 11:01:03 hostname [Tue Jan 10 11:01:02 2017] [notice] Digest: generating secret for digest authentication ...
<13>Jan 10 11:01:03 hostname [Tue Jan 10 11:01:02 2017] [notice] Digest: done
<13>Jan 10 11:01:03 hostname [Tue Jan 10 11:01:02 2017] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.4.30 mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations

所需输出(每条日志行 as iserror_log 文件)

[Tue Jan 10 11:01:02 2017] [notice] Digest: generating secret for digest authentication ...
[Tue Jan 10 11:01:02 2017] [notice] Digest: done
[Tue Jan 10 11:01:02 2017] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.4.30 mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations

平台
centos 6.4版(最终版)
系统日志ng@version:3.2
pssyslog ng to kafka integration:请告诉我是否有人尝试过这样做,这将使我的javakafka生产者冗余

tzdcorbm

tzdcorbm1#

当您在syslog ng中使用flags(no parse)选项时,syslog ng不会尝试解析消息的不同字段,而是将所有内容放入传入日志消息的消息字段中,并在syslog头前面加上前缀。要删除此标头,请在syslog ng目标中使用模板:

template t_msg_only { template("${MSG}\n"); };
destination loghost {
tcp("*.*.*.*" port(5140) template(t_msg_only) ); 
}

要使用syslog ng的kafka目标,您需要更新版本的syslog ng(我建议使用3.8或3.9)。peterczanik写了一篇关于为centos安装新的syslog ng rpm的详细文章。

相关问题