Модуль NXLog TCP не работает

Я пытаюсь использовать NXLog для пересылки журналов из файла на одном компьютере в файл на другом компьютере. Я новичок в NXLog, но чувствую, что теперь у меня есть хорошее представление об этом после ознакомления с документацией. Ниже приведен мой конфигурационный файл для первого компьютера "от", а затем "для" компьютера. Тем не менее, это не похоже на работу.

Я думаю, что проблема заключается в одном или нескольких из следующих:

Файл конфигурации NXLog AWS Windows ec2 box Настройка ip/port Настройка сети Вот что я сделал:

Конфигурационный файл NXLog компьютера "С":

define ROOT C:\Program Files (x86)\nxlog

Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogFile %ROOT%\data\nxlog.log

<Extension _syslog>
    Module xm_syslog
</Extension>

<Input file>
    Module      im_file
    File        "C:\Logs\AllLogItems.txt"
    InputType   LineBased
</Input>

<Output tcp>
    Module      om_tcp
    Host        52.91.47.52
    Port        3389
    OutputType  LineBased
</Output>

<Route 1>
    Path        file => tcp
</Route>

Конфигурационный файл NXLog компьютера "To":

define ROOT C:\Program Files (x86)\nxlog

Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogFile %ROOT%\data\nxlog.log

<Extension _syslog>
    Module       xm_syslog
</Extension>

<Input in>
    Module       im_tcp
    InputType    LineBased
</Input>

<Output out>
    Module       om_file
    File         "C:\Users\Administrator\logs\\nxlog_test.txt"
    CreateDir    FALSE
    Truncate     FALSE
    OutputType   LineBased
</Output>

<Route 1>
    Path        in => out
</Route>

Для компьютера "to", согласно документации, если не указан Host, по умолчанию используется localhost.

Когда я запускаю службу NXLog на "от" компьютера, вот как выглядит журнал:

2016-01-21 19:37:05 INFO nxlog-ce-2.9.1504 started
2016-01-21 19:37:05 INFO connecting to 52.91.47.52:3389

И затем, когда я запускаю свое приложение, которое будет писать логи (что приведет к реакции nxlog), журнал nxlog выглядит так:

2016-01-21 19:37:05 INFO nxlog-ce-2.9.1504 started
2016-01-21 19:37:05 INFO connecting to 52.91.47.52:3389
2016-01-21 19:40:25 INFO reconnecting in 1 seconds
2016-01-21 19:40:26 INFO connecting to 52.91.47.52:3389

Когда я запускаю NXLog на компьютере "to", все выглядит нормально, так как файл журнала nxlog выглядит так:

2016-01-22 01:05:04 INFO nxlog-ce-2.9.1504 started

Теперь "to" компьютер - это Windows AWS ec2 box. Порт, который я использую в nxlog (3389), является портом RDP, назначенным экземпляру:

Я думал, что хотя журнал nxlog не показывает ошибку, этот порт вызывает проблемы, которые могут быть использованы. Поэтому я попытался открыть еще несколько портов TCP (5000-5010), как показано на рисунке. Однако, когда я пытаюсь любой из этих портов (5000-5010) в файле конфигурации nxlog, я получаю эту ошибку:

2016-01-21 19:50:32 INFO nxlog-ce-2.9.1504 started
2016-01-21 19:50:32 INFO connecting to 52.91.47.52:5005
2016-01-21 19:50:53 INFO reconnecting in 1 seconds
2016-01-21 19:50:53 ERROR couldn't connect to tcp socket on 52.91.47.52:5005; A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

Я как бы ожидал этого, так как когда я захожу на сайт вроде yougetsignal.com, он все равно говорит, что порты 5000-5010 закрыты. Так что это может быть проблемой с этим.

Я пытался отладить это в течение нескольких дней, и у меня закончились варианты. Спасибо за вашу помощь.

1 ответ

Решение

Для компьютера "to", согласно документации, если не указан Host, по умолчанию используется localhost.

Да, но localhost (обычно 127.0.0.1) недоступен извне, поэтому вам нужно заставить его прослушивать доступный адрес. Ваш входной экземпляр im_tcp нуждается в этом:

Host 0.0.0.0

Вы должны также указать порт там.

Другие вопросы по тегам