rsyslog无法将日志写入kafka

路飞 发布于 2016/10/12 18:41
阅读 775
收藏 0

最近在试着用elk处理日志,然后日志传输的过程,打算用rsyslog和omkafka,整个流程即

    nginx log -> rsyslog imudp -> rsyslog omkafka -> kafka -> elk

首先是nginx里面直接记录的json格式的日志    


log_format  jsonlog '{'
        '"host": "$host",'
        '"server_addr": "$server_addr",'
        '"http_x_forwarded_for":"$http_x_forwarded_for",'
        '"remote_addr":"$remote_addr",'
        '"time_local":"$time_local",'
        '"request_method":"$request_method",'
        '"request_uri":"$request_uri",'
        '"status":$status,'
        '"body_bytes_sent":$body_bytes_sent,'
        '"http_referer":"$http_referer",'
        '"http_user_agent":"$http_user_agent",'
        '"upstream_addr":"$upstream_addr",'
        '"upstream_status":"$upstream_status",'
        '"upstream_response_time":"$upstream_response_time",'
        '"request_time":$request_time'
    '}';

	access_log syslog:server=server_ip,facility=local7,tag=nginx_access_log jsonlog;

然后rsyslog配置imudp和omkafka    


module(load="imudp")
	input(type="imudp" port="514")

	module(load="omkafka")

	template(name="nginxLog" type="string" string="%msg%")

	action(type="omkafka"
	template="nginxLog"
	broker=["localhost:9092"]
	topic="rsyslog_logstash"
	partitions.auto="on"
	confParam=[
		"socket.keepalive.enable=true"
		]
	)




很遗憾nginx的日志并没有写入到kafka中,consumer的终端读不到任何信息。。。    

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic rsyslog_logstash --from-beginning



对rsyslog和omkafka刚刚接触,大概是某些很基础的配置没有写对吧,关于omkafka官网和搜索结果并没有太多有价值的东西,不知道各位有没有什么建议


















福利奉上








加载中
0
路飞
路飞

现在发现一个很奇怪的现象

用系统的的启动脚本(/etc/init.d/rsyslog start)启动rsyslog,日志流写不到omkafka中,用rsyslogd来启动的话,就可以正常写入到omkafka,实在是莫名其妙。。。

0
华兹格
华兹格
elk不是提供了一个logstash,可以直接同步log吗,不需要做一个中间层Kafka吧?
路飞
路飞
考虑到可能的并发压力,最好还是加一个kafka做队列
0
b
bluetom
用supervisor来管理吧,我也遇到这个问题
返回顶部
顶部