在?将Syslog-ng的日志输出到Kafka消息队列?文章中,我们已经详细介绍了源码编译Syslog-ng的kafka模块的方法。
这里,我提供一种更简单一些的方法。
主要步骤:
1、安装syslog-ng的yum源

wget -O /etc/yum.repos.d/syslog-ng36epel6-epel-6.repo http://copr.fedoraproject.org/coprs/czanik/syslog-ng36epel6/repo/epel-6/czanik-syslog-ng36epel6-epel-6.repo
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

2、安装相关组件(syslog-ng、syslog-ng-devel、syslog-ng-incubator、syslog-ng-json)

yum install syslog-ng syslog-ng-devel syslog-ng-json syslog-ng-incubator -y

3、下载事先编译好的kafka相关文件到指定路径

wget -O /usr/lib64/syslog-ng/libkafka.so http://update.biglog.cn/cep/syslog-ng/libkafka.so
wget -O /usr/local/lib/librdkafka.so.1 http://update.biglog.cn/cep/syslog-ng/librdkafka.so.1

4、添加环境变量

vi /etc/profile
#在末尾添加一行:
export LD_LIBRARY_PATH=/usr/local/lib

5、编辑syslog-ng配置文件

vi /etc/syslog-ng/syslog-ng.conf
#在文件末尾添加下面代码
source s_system {
     system();
};

destination d_kafka {
    kafka(properties(metadata.broker.list("localhost:9092"))
        topic("syslogng")
        payload("$(format-json --scope all-nv-pairs --scope core)")
        partition("$PROGRAM")
    );
};

log {
    source(s_system);
    destination(d_kafka);
};

6、启动syslog-ng进行验证

/etc/init.d/syslog-ng restart