Filebeat не может отправлять логи в logzio через haproxy
Ниже приведен фрагмент кода из моего файла filebeat.yml.
output:
logstash:
hosts: ['192.168.200.38:5015']
где 192.168.200.38:5015 - сервер haproxy, прослушивающий в режиме tcp.
Ниже приведена моя конфигурация haproxy:
global
daemon
maxconn 256
defaults
mode tcp
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
timeout tunnel 1h
listen stats
bind 0.0.0.0:9999
stats enable
stats hide-version
stats uri /stats
frontend proxy_in
bind 0.0.0.0:5015
backend proxies_out
balance roundrobin
mode tcp
server ip-1 listener.logz.io:5015
Используя приведенную выше конфигурацию, я получаю следующую ошибку:
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.560Z DEBUG [logstash] logstash/async.go:111 connect
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.562Z INFO pipeline/output.go:105 Connection to backoff(async(tcp://192.168.200.38:5015)) established
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.563Z DEBUG [logstash] logstash/async.go:159 1 events out of 1 events sent to logstash host 192.168.200.38:5015. Continue sending
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.564Z DEBUG [transport] transport/client.go:218 handle error: EOF
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.564Z DEBUG [transport] transport/client.go:131 closing
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.564Z ERROR logstash/async.go:256 Failed to publish events caused by: EOF
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.565Z DEBUG [logstash] logstash/async.go:159 1 events out of 1 events sent to logstash host 192.168.200.38:5015. Continue sending
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.565Z DEBUG [logstash] logstash/async.go:116 close connection
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.565Z ERROR logstash/async.go:256 Failed to publish events caused by: client is not connected
Jul 02 14:32:46 cust1-bast-linux-0 filebeat[83565]: 2019-07-02T14:32:46.565Z DEBUG [logstash] logstash/async.go:116 close connection
Я использую haproxy сервер в качестве прокси-сервера здесь. Ранее у меня был Squid Proxy (http), который не будет работать с filebeat. Поэтому я изменил его на haproxy, и у меня есть listener.logz.io:5015 в качестве бэкэнда.
Что я здесь не так делаю?
1 ответ
Решено!
Проблема в том, что "listener.logz.io:5015" ожидает сертификат. Добавлена опция ssl для передачи сертификата, но для того, чтобы haproxy идентифицировал сертификат, мне пришлось изменить имя хоста на нечто.logz.io. Поэтому я изменил имя хоста, на котором был установлен haproxy, на proxy.logz.io (я знаю, что это обходной путь).
Работали следующие конфигурации:
filebeat.yml
output:
logstash:
hosts: ['proxy.logz.io:5015']
ssl:
certificate_authorities: ['/etc/pki/tls/certs/COMODORSADomainValidationSecureServerCA.crt']
haproxy.cfg
#Forward HAProxy Config
global
debug
daemon
maxconn 10000
defaults
mode tcp
timeout client 200000ms
timeout server 200000ms
#create new frontend to process 5015
frontend https_frontend
bind *:5015
mode tcp
option tcplog
default_backend logz
#Define backend for above frontend
backend logz
mode tcp
balance roundrobin
server logzio listener.logz.io:5015