Рейтинг:2

Получение Syslog для регистрации как в системном журнале, так и в пользовательском файле журнала

флаг cn

В системном журнале (Raspbian rsyslog swVersion="8.1901.0")

Я пытаюсь сопоставить / отфильтровать системное сообщение, содержащее определенную строку ОБА, чтобы /var/журнал/системный журнал (по умолчанию) И в пользовательский отдельный файл журнала, т.е.: /var/журнал/nut.log.

Мне удалось добиться этого, поместив следующие строки фильтра в /etc/rsyslog.conf:

# Регистрация NUT: включить сообщения USB, так как мониторинг ИБП осуществляется только через USB
:msg,содержит,"USB" /var/log/nut.log
& останавливаться
:msg,содержит,"nut-" /var/log/nut.log
& останавливаться

& останавливаться необходим для остановки фильтров после совпадения. Я считаю, что предпочтительным методом является размещение этого в специальном файле, то есть: /etc/rsyslog.d/0-nut.conf

Но когда я это делаю, фильтры перестают регистрироваться в /var/журнал/системный журнал, и входить исключительно в /var/журнал/nut.log... ?

Есть ли другой способ сделать это?

Спасибо!

meuh avatar
флаг in
Вам нужен `& стоп`? У вас есть сообщения с «USB» и «nut-», которые будут регистрироваться дважды?
DJacobson avatar
флаг cn
@meuh Это действительно была моя проблема, и ваш ответ ниже был идеальным.
Рейтинг:0
флаг in

$IncludeConfig или же включать() директива в rsyslog.conf появляется перед большинством стандартных правил, включая то, которое пишет сообщения /var/журнал/системный журнал. Если вы добавите свои правила после других правил в этом файле, то сообщения nut уже будут записаны в системный журнал до того, как он также будет сопоставлен и записан в nut.log.

Если вместо этого вы поместите свои правила в отдельный файл, сообщение будет записано в nut.log, то останавливаться пропустит более поздние правила. Ответ не использовать останавливаться.

Если проблема в том, что сообщение может содержать как «USB», так и «nut-», и поэтому может быть записано дважды в nut.log, то вам нужно использовать более сложный синтаксис.

Устаревший синтаксис был заменен на РайнерСкрипт давным давно. Это означает, что вы можете написать такие фильтры, как:

если ($msg содержит "USB" или $msg содержит "nut-"), то {
   действие (тип = "omfile" файл = "/var/log/nut.log")
}

Это не должно препятствовать дальнейшей обработке сообщения.

DJacobson avatar
флаг cn
Спасибо. Я многое узнал о порядке обработки Rsyslog в вашем кратком ответе. Я действительно пытался избежать дублирования сообщений журнала.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.