The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Rsyslog 8 - не срабатывает ruleset для imuxsock"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Мониторинг, логи)
Изначальное сообщение [ Отслеживать ]

"Rsyslog 8 - не срабатывает ruleset для imuxsock"  +/
Сообщение от dukavoka (ok), 31-Дек-23, 17:51 
Здравствуйте и с праздником всех! Добра, здоровья и счастья!
Подскажите, пожалуйста - сам не могу разобраться с одной проблемой. Rsyslog 8.23, Debian 11.
Необходимо получать сообщения из systemd-journald в rsyslog, затем передавать их по RELP на пару серверов для анализа. Но пока я застрял на самом базовом уровне. Не могу понять почему, но если делать без ruleset, то есть вот так ...

module(load="imuxsock"
       SysSock.Use="on"
       SysSock.Name="/run/systemd/journal/syslog"
      )

module(load="builtin:omfile"
       Template="RSYSLOG_TraditionalFileFormat"
       FileOwner="root"
       FileGroup="adm"
       dirOwner="root"
       dirGroup="adm"
       FileCreateMode="0640"
       DirCreateMode="0755"
      )


### Global Directives ###

global(workDirectory="/var/spool/rsyslog"
       umask="0022"
       preserveFQDN="on"
       localHostname="node1"
       AbortOnUncleanConfig="on"
       Shutdown.enable.ctlc = "on"
      )

# Direct all auth* log messages to local file
if ($syslogfacility-text == "auth" or $syslogfacility-text == "authpriv") then {
    action(type="omfile" file="/var/log/auth.log")
}

# Just for debug purposes only:
action(type="omfile" file="/var/log/my-debug.log")


... то все работает как надо. Впрочем, это есть в документации.

Но вот если мне нужно делать обработку сообщений, то я подключаю ruleset (мне нужны очереди) и пишу вот такое:


module(load="imuxsock"
       SysSock.Use="on"
       SysSock.Name="/run/systemd/journal/syslog"
      )

module(load="builtin:omfile"
       Template="RSYSLOG_TraditionalFileFormat"
       FileOwner="root"
       FileGroup="adm"
       dirOwner="root"
       dirGroup="adm"
       FileCreateMode="0640"
       DirCreateMode="0755"
      )


### Global Directives ###

global(workDirectory="/var/spool/rsyslog"
       umask="0022"
       preserveFQDN="on"
       localHostname="node1"
       AbortOnUncleanConfig="on"
       Shutdown.enable.ctlc = "on"
      )

# Direct all auth* log messages to local file
if ($syslogfacility-text == "auth" or $syslogfacility-text == "authpriv") then {
    action(type="omfile" file="/var/log/auth.log")
}

### ALL CHANGES HERE ###
input(type="imuxsock" Socket="/run/systemd/journal/syslog" ruleset="MyRuleset1")

ruleset(name="MyRuleset1") {
  action(type="omfile" file="/var/log/my-debug.log")
}



То сразу возникает 2 проблемы:
1) rsyslog требует еще раз указать сокет в директиве input. А зачем - не пойму, так как я ж в модуле указал уже.
2) Ну и главная проблема - файл my-debug.log - пуст, вернее даже файла такого нет.
Подскажите, пожалуйста, что я делаю не так.

Примеры я упростил из своего большого конфига, проверил - все равно не работает.
Буду признателен за помощь.

Ответить | Правка | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру