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

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

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

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

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

Конфигурационный файл 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:

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>

Для компьютера «к», согласно документации, если хост не указан, по умолчанию используется 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 на компьютере «к», все кажется в порядке, поскольку файл журнала nxlog выглядит следующим образом:

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

Теперь «к» компьютеру - это Windows-машина AWS ec2. Порт, который я использую в 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 закрыты. Так что это может быть проблемой.

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

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

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

Host 0.0.0.0

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