Forgive me if this is already asked, I couldn't locate it with a search.
I'm trying to get remote Amazon EC2 hosts running syslog-ng to write to Fluentd log collection. So far I can only log local host.
My syslog-ng config lines of interest are: (host ip changed to protect the innocent)
destination loghost2 {
udp("123.345.678.9" port(24224));
tcp("123.456.789.9" port(24224));
};
source s_apache {
file("/var/log/apache2/access.log");
};
log {
source(s_apache);
destination(loghost2);
};
My td-agent config (thought I've tried a dozen combinations from the default from your docs to the fluent-elastic recommended and none worked)
<source>
type syslog
port 24224
tag remote_syslog
</source>
<match remote_syslog.**>
type elasticsearch
logstash_format true
flush_interval 10s # for testing
</match>
I've also tried:
#<source>
# type syslog
# port 42185
# tag syslog
#</source>
#<source>
# type forward
#</source>
#<match remote_syslog.**>
# type stdout
#</match>
(among many others)
I can see that the hosts are connected with
$ lsof -nPi | grep syslog
syslog-ng 19510 root 6u IPv4 113836970 0t0 UDP 123.345.567.89:23575->123.456.678.9:24224
Syslog, strace, and using -v on the fluent and td-agent init.d offer more information, but nothing useful or related besides listen on port 24224
The Fluentd WWW interface is empty, and the daemon listener seems to silently ignore me.
I can telnet between hosts, ports, and get a connection that I must terminate with ^] so I can see it is connecting.
Can you tell me where my error is, or more clearly how I should configure the listener on Fluentd?
Or, is my error in my syslog-ng config? Which seems to work otherwise if used with rsyslogd, etc.
Thank you for any help, I'm frustrated at this point.
Regards!
KB