背景
在计算机上运行并将日志生成到 /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 is
从 error_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生产者冗余
1条答案
按热度按时间tzdcorbm1#
当您在syslog ng中使用flags(no parse)选项时,syslog ng不会尝试解析消息的不同字段,而是将所有内容放入传入日志消息的消息字段中,并在syslog头前面加上前缀。要删除此标头,请在syslog ng目标中使用模板:
要使用syslog ng的kafka目标,您需要更新版本的syslog ng(我建议使用3.8或3.9)。peterczanik写了一篇关于为centos安装新的syslog ng rpm的详细文章。