Назад | Перейти на главную страницу

Локальный Logstash не может перенаправить / var / log / syslog в центральный Logstash

Я хочу, чтобы мой локальный экземпляр Logstash пересылал системный журнал и все /var/log/* файлы в удаленный центральный экземпляр Logstash.

Трубопровод в /etc/logstash/conf/logstash-local.conf выглядит следующим образом:

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

Когда я пытаюсь выполнить logger "foo", событие записывается в локальный системный журнал, но его нет в моем удаленном журнале Logstash. Также нет других событий из системного журнала.

Что я пробовал:

Все выглядит идеально ... но не работает! :)

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

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