2016-10-12 7 views
0

Ich bin neu mit Rsyslog und Kafka, und einige Probleme beim Versuch, den folgenden Log-Stream funktioniert zu bekommen. HierRsyslog schreibt kein Protokoll in Kafka

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

ist 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; 

Und 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" 
      ] 
     ) 
} 

Unluckily Ich habe keine Ausgabe im Consumer-Terminal

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

Vielleicht ist es die Vorlage, aber ich kann nicht finden m Uch dokumentiert darüber.

Antwort

0

Verwenden Sie das Modul rsyslog-impstats, um zu überprüfen, wie viele Nachrichten Ihr imudp empfangen hat und wie viele an omkafka gesendet wurden.

+0

Dank Ihrer Kommentare finde ich etwas Nützliches im Statistikprotokoll! Der Befehl '/etc/init.d/rsyslog start' sendet keinen Stream an omkafka, während der Befehl' rsyslogd' wie erwartet funktioniert. Um es klar zu machen, die erste hat nicht dieses Protokoll 'Thu Oct 13 09:45:09 2016: omkafka: submitted = 6 maxoutqsize = 3 fehlgeschlagen = 0 topicdynacache. skipped = 0 topicdynacache.miss = 0 topicdynacache.evicted = 0' – Luffy

+0

Sie können die Aktion queue.name zu Ihrer Aktion hinzufügen und die speziellen Warteschlangenstatistiken überprüfen, um festzustellen, ob rsyslog Nachrichten in die Warteschlange sendet. – chenryn

Verwandte Themen