Многострочный ввод Syslog-ng через модуль TCP/Network

Мы пытаемся записывать журналы в syslog-ng через TCP-соединение. Логи выглядят примерно так:

1810717353--user--notice--IPV4----2017-10-23T16:03:23.015170-04:00--<11>Oct 23 16:03:23 HOSTNAME [443-Multiplexer][0x80000001][xsltmsg][error] xmlfirewall(443-Multiplexer): trans(2607607975)[error][ip] gtid(value):
1810717354--user--notice--IPV4----2017-10-23T16:03:23.015170-04:00--                    Default rule caught error code '
1810717355--user--notice--IPV4----2017-10-23T16:03:23.015170-04:00--                    0x00230001
1810717356--user--notice--IPV4----2017-10-23T16:03:23.015170-04:00--                    '
1810717357--user--notice--IPV4----2017-10-23T16:03:23.015170-04:00--
1810717358--user--notice--IPV4----2017-10-23T16:03:23.015170-04:00--<14>Oct 23 16:03:23 HOSTNAME [443-Multiplexer][value][multistep][info] xmlfirewall(443-Multiplexer): trans(2607607975)[error][ip] gtid(2607607975):

Есть ли способ удалить заголовок системного журнала во время ввода? Если журналы остаются многострочными, это нормально, мы можем упаковать их с помощью logstash во время чтения, но нам нужен способ, чтобы журналы теперь имели заголовок, когда они записываются в файл.

Вот моя текущая конфигурация syslog-ng:

@version: 3.6
#@include "scl.conf"

options {
        flush_lines (0);
        frac-digits(8);
        use-rcptid (yes);
        time_reopen (10);
        log_fifo_size (1000);
        chain_hostnames (off);
        use_dns (no);
        use_fqdn (no);
        create_dirs (no);
        keep_hostname (yes);
        use-rcptid (yes);
        threaded(yes);
        log_msg_size(32768);
};
    source sourcename
    {
       network(ip("0.0.0.0") port(5521) flags(no-parse)); 
    };
    destination destname
    {
        file("/opt/elk/data/syslogs/datapower/${HOST}.log"
            #follow-freq(0) multi-line-mode(regexp) multi-line-prefix("^\<\[0-9]{2}\>[A-z]{3} [0-9]{2} [0-9]{2}\:[0-9]{2}\:[0-9]{2}")
            create_dirs(yes) dir_owner("elkuser") dir_group("users") dir_perm(0700)
            owner("user") group("group") perm(0600)
            template("${RCPTID}--$FACILITY--$PRIORITY--$FULLHOST--$PROGRAM--$ISODATE--${MSGHDR}${MSG}\n") 
        );
    };

Спасибо


person ScipioAfricanus    schedule 24.10.2017    source источник


Ответы (1)


Я не уверен, где вы хотите разделить сообщение, но в зависимости от этого вы можете сделать следующее:

Кроме того, кажется, что вы каким-то образом отправляете журналы в Elasticsearch (по крайней мере, я подозреваю, что это то, что означает elk в пункте назначения): последние версии syslog-ng могут делать это напрямую: https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/configuring-destinations-elasticsearch2.html

ХТХ, Роберт

person Robert Fekete    schedule 25.10.2017