Назад | Перейти на главную страницу

rsyslog: Как разделить события в файле журнала на отдельные файлы, если он содержит ключевое слово?

Я получаю данные системного журнала в файле .log. Этот файл содержит два типа событий. Событие, которое содержит только отметку даты и времени системного журнала, и событие, которое содержит отметку даты и времени системного журнала и поле «timestamp =» в сообщении. Как с помощью правил разделить любое событие, содержащее «timestamp =», в отдельный файл?

В документация rsyslog по фильтрам Говорит, что $msg здесь может помочь:

Probably, “msg” is the most prominent use case of property based
filters. It is the actual message text. If you would like to filter
based on some message content (e.g. the presence of a specific code),
this can be done easily by:

    :msg, contains, "ID-4711"

This filter will match when the message contains the string “ID-4711”. 

и

*.* /var/log/file1 # the traditional way
if $msg contains 'error' then /var/log/errlog # the expression-based way

Если я правильно понял ваш вопрос, вы можете сделать то, что хотите, отредактировав файл конфигурации, чтобы проверить $msg для отметка времени = Если вы найдете это значение, запишите в отдельный файл.

Это документация для rsyslog версии 8. Я бы рекомендовал проверить версию rsyslog, которую вы используете, по любым примерам, которые вы найдете (в документации или в Интернете).