Шаблон строки фильтра Grok

Я новичок в Grok, и мне нужно отфильтровать строку, как показано ниже:

Dec 20 18:46:00 server-04 script_program.sh[14086]: 2017-12-20 18:46:00 068611 +0100 - server-04.location-2 - 14086/0x00007f093b7fe700 - processname/SIMServer - 00000000173d9b6b - info - work: You have 2 connections running

Пока мне удалось получить следующее:

SYSLOGBASE %{SYSLOGTIMESTAMP:timestamp} (?:%{SYSLOGFACILITY} )?%{SYSLOGHOST:logsource} %{SYSLOGPROG}:

Итак, я получаю все данные о дате/времени + программа + процесс, что нормально.

Но это оставляет мне следующую оставшуюся строку:

2017-12-20 18:46:00 068611 +0100 - server-04.location-2 - 14086/0x00007f093b7fe700 - processname/SIMServer - 00000000173d9b6b - info - work: You have 2 connections running

И вот я изо всех сил пытаюсь разбить все на куски.

Я пробовал много комбинаций, пытаясь разделить это на основе дефиса (-), но пока мне это не удается.

До сих пор я в значительной степени использовал в качестве руководства следующее:

https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns

Любая помощь/предложения/советы по этому поводу, пожалуйста? Я использую Graylog2 и, как показано выше, пытаюсь использовать GROK для фильтрации моих сообщений.

Большое спасибо


person user2835733    schedule 03.01.2018    source источник


Ответы (1)


Мне удалось полностью настроить фильтр и он заработал. поэтому решение ниже:

SERVER_TIMESTAMP_ISO8601 %{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%
{MINUTE}(?::?%{SECOND})?[T ]%{INT}[T ]%{ISO8601_TIMEZONE}?
SERVER_HOSTNAME \b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:\.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(\.?|\b)
SERVER_Unknown  %{SERVER_HOSTNAME}[/]%{SERVER_HOSTNAME}
SERVER_Loglevel ([Aa]lert|ALERT|[Tt]race|TRACE|[Dd]ebug|DEBUG|[Nn]otice|NOTICE|[Ii]nfo|INFO|[Ww]arn?(?:ing)?|WARN?(?:ING)?|[Ee]rr?(?:or)?|ERR?(?:OR)?|[Cc]rit?(?:ical)?|CRIT?(?:ICAL)?|[Ff]atal|FATAL|[Ss]evere|SEVERE|EMERG(?:ENCY)?|[Ee]merg(?:ency)?)

SYSLOGBASE_SERVER %{SYSLOGTIMESTAMP:timestamp} (?:%{SYSLOGFACILITY} )?%{SYSLOGHOST:logsource} %{SYSLOGPROG}:[T ]%{SERVER_TIMESTAMP_ISO8601: timestamp_match}[T ]-[T ]%{SERVER_HOSTNAME:SERVER_host_node}[T ]-[T ]%{SERVER_Unknown:SERVER_Unknown}[T ]-[T ]%{SERVER_Unknown:service_component}[T ]-[T ]%{SERVER_HOSTNAME:process_code_id}[T ]-[T ]%{SERVER_Loglevel}[T ]-[T ]%{GREEDYDATA:syslog_message}

Все остальное или регулярные выражения от GROK.

Большое спасибо

person user2835733    schedule 03.01.2018