Свободный бит с Java - PullRequest
       33

Свободный бит с Java

0 голосов
/ 27 сентября 2018

Я пытаюсь отправить журналы из базового проекта Java Maven в Fluent-бит, настроенный на удаленной машине.Затем Fluent-bit записывает их в файл.Это моя базовая конфигурация Java.

Java

private final static Logger logger = LoggerFactory.getLogger(App.class);

public static void main(String[] args) {
   for (int i = 0; ; i++) {
      logger.debug("Warn msg");
      try {
         Thread.sleep(5000);
       } catch (InterruptedException e) {
        // do nothing now
      }
   }
}

И logback.xml

<appender name="fluentd" class="ch.qos.logback.more.appenders.DataFluentAppender">
   <remoteHost>xx.xxx.xxx.xxx</remoteHost>
   <port>7777</port>
   <encoder>
            <pattern>%message%n</pattern>
    </encoder>
</appender>

<root level="DEBUG">
    <appender-ref ref="fluentd" />
</root>

Свободно-битовая конфигурация:

td-agent-bit.conf

[INPUT]
    Name          tcp
    Listen        xx.xxx.xxx.xxx
    Port          7777
    Parsers_File  /etc/td-agent-bit/parsers.conf
    Parser        custom_parser

[OUTPUT]
    Name          file
    Match         *
    Path          /home/td-agent-bit/output.txt

parsers.conf

[PARSER]
    Name    custom_parser
    Format  regex
    Regex   .*

Я получаю следующее исключение, когда приложение запускается

[2018/09 /27 08:29:13] [trace] [in_tcp] read () = 74 pre_len = 370 now_len = 444

[2018/09/27 08:29:13] [debug] [in_serial] неверный JSONсообщение, пропускающее

Но когда я пытаюсь проверить конфигурацию через командную строку, она работает

echo '{"key 1": 10, "key 2": "YYY"}' | nc xx.xxx.xxx.xxx 7777

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

Любые идеи будут высоко оценены.

1 Ответ

0 голосов
/ 02 октября 2018

Итак, после некоторого исследования и заявки, которую я открыл здесь , я обнаружил, что использовал неправильный плагин.

Все настройки Java были правильными.Просто нужно было внести следующие изменения в td-agent-bit.conf

[INPUT]
    Name          forward
    Listen        xx.xxx.xxx.xxx
    Port          7777

. Нам нужно использовать плагин forward вместо tcp.Этот плагин будет прослушивать любые входящие сообщения на порту 7777. и перенаправлять его в файл.

Обратите внимание, что плагин TCP Input принимает только карты JSON как записи, а не msgpack, как это делает прямой протокол.

...