我是rsyslog和kafka的新手,在尝试使用以下日志流时会遇到麻烦。
nginx log -> rsyslog-imudp -> rsyslog-omkafka -> kafka
这是nginx conf
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 conf
module(load="imudp")
input(type="imudp" port="514")
module(load="omkafka")
template(name="nginxLog" type="string" string="%msg%")
if $inputname == "imudp"then {
action(type="omkafka"
template="nginxLog"
broker=["localhost:9092"]
topic="rsyslog_logstash"
partitions.auto="on"
confParam=[
"socket.keepalive.enable=true"
]
)
}
不幸的是,我在消费者终端中没有任何输出
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic rsyslog_logstash --from-beginning
也许它是模板,但我找不到很多关于它的文件。
答案 0 :(得分:0)
使用rsyslog-impstats模块检查收到你的imudp的消息数量,以及发送给omkafka的消息数量。
答案 1 :(得分:0)
要调试,请停止rsyslog并使用以下命令运行它: rsyslogd -nd (我建议使用rsyslogd -n运行并再次检查您的Kafka主题,然后对其进行调试)
可能您在SELinux上遇到了问题,可以通过以下方法解决:
sudo semanage port -d -t unreserved_port_t -p tcp 9092
sudo semanage port -a -t http_port_t -p tcp 9092