NXLog: ввод Json в вывод GELF UDP

У нас есть установка, в которой программа регистрируется в файле .Json в формате, соответствующем спецификации GELF.

В настоящее время это отправляется на сервер Graylog2 с использованием HTTP. Это работает, но из-за природы HTTP возникает значительная задержка, что является проблемой при наличии большого количества сообщений журнала.

Я хочу изменить метод доставки HTTP на UDP, чтобы просто "запустить и забыть".

Журналы записываются в файлы следующим образом:

{ "short_message": "<message>", "host": "<host>", "full_message": "<message>", "_extraField1": "<value>", "_extraField2": "<value>", "_extraField3": "<value>" }

Текущая конфигурация такова:

<Extension json>
    Module xm_json
</Extension>

<Input jsonLogs>
    Module        im_file
    File          '<File Location>'
    PollInterval  5
    SavePos       True
    ReadFromLast  True
    Recursive     False
    RenameCheck   False
    CloseWhenIdle True
</Input>

<Output udp>
    Module        om_udp
    Host          <IP>
    Port          <Port>
    OutputType    GELF_UDP
</Output>

При такой настройке часть сообщения журнала json добавляется в поле «сообщение» сообщения GELF и отправляется на сервер.

Я попытался добавить строку `Exec parse_json(), но это просто приведет к исключению всех полей, кроме short_message и full_message.

Я не уверен, как правильно настроить это. Предпочтительно даже просто добавить полное сообщение журнала в поле, поскольку я могу добавить экстрактор на стороне сервера.


person NT93    schedule 09.01.2018    source источник


Ответы (1)


Вам понадобится Exec parse_json(), чтобы GELF_UDP генерировал правильный вывод, но было неясно, в чем именно проблема с message и full/short_message.

Другой вариант, который вы можете попробовать, — просто отправить журнал через om_tcp. В этом случае вам не нужно будет использовать OutputType GELF_TCP, так как он уже отформатирован таким образом.

person b0ti    schedule 10.01.2018
comment
Когда я использовал parse_json(); сервер Graylog принял бы сообщение, но все настраиваемые поля были удалены. - person NT93; 10.01.2018