增加一个将nginx access日志通过rsyslog传输到kafka的实例,将nginx_kafka.conf放入到/etc/rsyslog.d目录中,重启rsyslog即可。
# 加载omkafka和imfile模块 module(load="omkafka") module(load="imfile") # nginx template template(name="nginxAccessTemplate" type="string" string="%hostname%<-+>%syslogtag%<-+>%msg%\n") # ruleset ruleset(name="nginx-kafka") { #日志转发kafka action ( type="omkafka" template="nginxAccessTemplate" confParam=["compression.codec=snappy", "queue.buffering.max.messages=400000"] partitions.number="4" topic="test_nginx" broker="10.120.169.149:9092" queue.spoolDirectory="/tmp" queue.filename="test_nginx_kafka" queue.size="360000" queue.maxdiskspace="2G" queue.highwatermark="216000" queue.discardmark="350000" queue.type="LinkedList" queue.dequeuebatchsize="4096" queue.timeoutenqueue="0" queue.maxfilesize="10M" queue.saveonshutdown="on" queue.workerThreads="4" ) } # 定义消息来源及设置相关的action input(type="imfile" Tag="nginx,aws" File="/var/log/access.log" Ruleset="nginx-kafka")检查conf文件是否正确可以运行rsyslogd debug模式rsyslogd -dn运行,看日志输出结果,或者直接运行rsyslogd -N 1检查conf文件是否正确。
CentOS7.3下部署Rsyslog+LogAnalyzer+MySQL中央日志服务器