Size: a a a

Сбор и аналитика системных сообщений

2020 December 07

SP

Sergey Pechenkó in Сбор и аналитика системных сообщений
Sergey Molokhov
Доброго времени суток. Подскажите пожалуйста, упёрся в проблему преобразования дат, не могу понять, как правильно это сделать.
Отправляю логи IIS через rsyslog в Elasticsearch.
Логи IIS преобразую с помощью mmnormalize .
Начало лога IIS:
20-12-06 20:56:30 W3SVC7 ....   (время тут UTC)
Как из этого сделать @timestamp для шаблона, который отправляется в эластик?
Сейчас пока делаю немного неправильно
   constant(value="{\"@timestamp\":\"")  property(name="timereported" dateFormat="rfc3339")
Что идёт не так?
источник

SM

Sergey Molokhov in Сбор и аналитика системных сообщений
Все идет так, но timereported это немного не та дата. Я уже перечитал кучу доков, но корректного варианта не нашел. Ранее это парсилось гроком логстэша.
источник

SM

Sergey Molokhov in Сбор и аналитика системных сообщений
Нужно именно дату и время из лога взять.
источник

SP

Sergey Pechenkó in Сбор и аналитика системных сообщений
https://www.rsyslog.com/doc/master/configuration/properties.html#time-related-system-properties
timereported
timestamp from the message. Resolution depends on what was provided in the message (in most cases, only seconds)
источник

SP

Sergey Pechenkó in Сбор и аналитика системных сообщений
Не надо вот этого вот. В этом месте дока не врёт, ну либо ты что-то другое хочешь.
источник

SM

Sergey Molokhov in Сбор и аналитика системных сообщений
Я не хочу время из timereported. Оно сейчас близко к реальному, но всё таки не совсем.  Я хочу распарсить-получить  время из лога виндового IIS сервера, не из header-а syslog сообщения.  Rsyslog не на виндовой машине, данные отправляет nxlog, без обработки.
Я пока не продвинулся дальше наивных попыток сделать что-то подобное:
version=2
rule=:%date:date-iso% %time:time-24hr% %iisname:word%...etc
источник

SM

Sergey Molokhov in Сбор и аналитика системных сообщений
В общем сделал так:
set $!@timestamp = $!date & "T" & $!time;
unset $!date;
unset $!time;

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

YB

Yury Bushmelev in Сбор и аналитика системных сообщений
Sergey Molokhov
В общем сделал так:
set $!@timestamp = $!date & "T" & $!time;
unset $!date;
unset $!time;

И оно получилось так как нужно. Наверное есть какой то более красивый способ, но в другой раз видимо уже.
Спасибо
Там есть один способ, но он доступен в очень новых по меркам дистрибутивов версиях. Можно прям дату как дату распарсить.
источник

SM

Sergey Molokhov in Сбор и аналитика системных сообщений
ткните плиз носом
источник

YB

Yury Bushmelev in Сбор и аналитика системных сообщений
В общем, твой вариант даже не очень стремный получился, у меня хуже было
источник

YB

Yury Bushmelev in Сбор и аналитика системных сообщений
Сходу не ткну, я с мобилы сейчас. Там в функциях что-то про дату было. Но оно работало в каких-то очень определенных условиях..
источник

YB

Yury Bushmelev in Сбор и аналитика системных сообщений
Sergey Molokhov
ткните плиз носом
источник

YB

Yury Bushmelev in Сбор и аналитика системных сообщений
Тут вот есть parse_time и format_time
источник

YB

Yury Bushmelev in Сбор и аналитика системных сообщений
Но не факт что будет лучше
источник

YB

Yury Bushmelev in Сбор и аналитика системных сообщений
Не уверен, что там с точностью, кстати.. сдается мне, до секунд только.. надо будет попинать
источник

SM

Sergey Molokhov in Сбор и аналитика системных сообщений
Спасибо. Посмотрю ещё раз. Я их видел и на них пытался сделать, возможно криво.
источник

YB

Yury Bushmelev in Сбор и аналитика системных сообщений
Sergey Molokhov
Спасибо. Посмотрю ещё раз. Я их видел и на них пытался сделать, возможно криво.
Навскидку могу предположить, что у вас время в другом формате или с дробной частью (микросекундами например)
источник

YB

Yury Bushmelev in Сбор и аналитика системных сообщений
Ну и парсить время и форматировать его обратно не быстрее, чем две строки склеить
источник
2020 December 08

TF

Terry Filch in Сбор и аналитика системных сообщений
@tnt4brain
офтоп, но все же https://blog.centos.org/2020/12/future-is-centos-stream/
центос перестал быть стебл ;)
источник

SP

Sergey Pechenkó in Сбор и аналитика системных сообщений
Вот и ответ, зачем:
"...If you are using CentOS Linux 8 in a production environment, and are concerned that CentOS Stream will not meet your needs, we encourage you to contact Red Hat about options...."
источник