Local Logstash failing to forward /var/log/syslog to central Logstash

I want my local instance of Logstash to forward syslog and all /var/log/* files to a remote, central instance of Logstash.

The pipeline in /etc/logstash/conf/logstash-local.conf looks as follows:

input {
 file {
 type => "syslog"
 path => [ "/var/log/*.log", "/var/log/syslog" ]
 }
}
output {
 stdout { codec => rubydebug }
 tcp {
 host => "logging.example.com"
 port => 5000
 }
}

When I try and execute logger "foo", the event is logged to the local syslog, but it is not found in my remote Logstash. Neither are other events from syslog.

Things I tried:

  • The local Logstash reports in its log file that the pipeline is running correctly
  • I connected with telnet to the remote server, and verified direct input is correctly processed
  • Permissions were locally changed to grant user Logstash membership in the adm group

Everything looks perfect... but it does not work! :)

1
задан 24 April 2018 в 19:16
1 ответ

Если у вас нет Убедившись в этом, вывод tcp {} использует для передачи кодек json . Если ваша принимающая сторона этого не ожидает, вы не получите ничего особенного. В остальном конфигурация у вас выглядит солидной. Никаких фильтров на выходах, поэтому все должно идти к обоим.

С точки зрения отладки, при запуске проверьте свою сетевую статистику, чтобы увидеть, пытается ли TCP-соединение открыться для вашего пульта дистанционного управления. Что-то застряло в SYN_SENT - это признак проблемы, отличной от Logstash. Если вы все еще не открываете это соединение,вероятно, стоит запустить logstash с трассировщиком системных вызовов, например strace (системы Linux) или procmon (системы Windows), чтобы посмотреть, что происходит с вызовом создания соединения.

2
ответ дан 3 December 2019 в 20:15

Теги

Похожие вопросы