Не прямое решение, но я бы позволил некоторую отладку, чтобы увидеть, что происходит за кулисами.
Идея № 1 - отладчик журнала
Для начала, когда вы запускаете свои logger
команды, вы можете делать их так, выводя сообщения в STDERR.
$ logger -s "hi"
saml: hi
Идея № 2 - проверить ваш файл конфигурации
Вы также можете попробовать проверить ваш конфигурационный файл rsyslog:
$ sudo rsyslogd -N6 | head -10
rsyslogd: version 7.2.6, config validation run (level 6), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.
6921.173842409:7f8b11df2780: rsyslogd 7.2.6 startup, module path '', cwd:/root
6921.175241008:7f8b11df2780: caller requested object 'net', not found (iRet -3003)
6921.175261977:7f8b11df2780: Requested to load module 'lmnet'
6921.175272711:7f8b11df2780: loading module '/lib64/rsyslog/lmnet.so'
6921.175505384:7f8b11df2780: module lmnet of type 2 being loaded (keepType=0).
6921.175520208:7f8b11df2780: entry point 'isCompatibleWithFeature' not present in module
6921.175528413:7f8b11df2780: entry point 'setModCnf' not present in module
6921.175535294:7f8b11df2780: entry point 'getModCnfName' not present in module
6921.175541502:7f8b11df2780: entry point 'beginCnfLoad' not present in module
Идея № 3 - Включите отладку rsyslogd
Также я бы попробовал включить отладку rsyslogd
демона для дальнейшего понимания.
$ sudo -i
$ export RSYSLOG_DEBUGLOG="/tmp/debuglog"
$ export RSYSLOG_DEBUG="Debug"
$ service rsyslog stop
$ rsyslogd -d | head -10
7160.005597645:7fae096a3780: rsyslogd 7.2.6 startup, module path '', cwd:/root
7160.005872662:7fae096a3780: caller requested object 'net', not found (iRet -3003)
7160.005895004:7fae096a3780: Requested to load module 'lmnet'
7160.005906331:7fae096a3780: loading module '/lib64/rsyslog/lmnet.so'
7160.006023505:7fae096a3780: module lmnet of type 2 being loaded (keepType=0).
7160.006030872:7fae096a3780: entry point 'isCompatibleWithFeature' not present in module
7160.006033780:7fae096a3780: entry point 'setModCnf' not present in module
7160.006036209:7fae096a3780: entry point 'getModCnfName' not present in module
7160.006038359:7fae096a3780: entry point 'beginCnfLoad' not present in module
...
...
7160.006063913:7fae096a3780: rsyslog runtime initialized, version 7.2.6, current users 1
7160.006102179:7fae096a3780: source file syslogd.c requested reference for module 'lmnet', reference count now 2
7160.006113657:7fae096a3780: GenerateLocalHostName uses 'greeneggs'
Подтверждение информации о версии
$ rsyslogd -version
rsyslogd 7.2.6, compiled with:
FEATURE_REGEXP: Yes
FEATURE_LARGEFILE: No
GSSAPI Kerberos 5 support: Yes
FEATURE_DEBUG (debug build, slow code): No
32bit Atomic operations supported: Yes
64bit Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
uuid support: Yes
See http://www.rsyslog.com for more information.
Подтвержденная ошибка и обходной путь
ОП представил это как ошибку в Red Hat.
Ошибка была охарактеризована следующим образом:
Конечно, когда я установил собственное время хоста, виртуальная машина имела то же время, что и хост. Тогда я заметил, что / var / log / messages больше не обновляется.
В этот момент ничего не выходит, кроме перезапуска самой службы rsyslog, которая регистрирует файлы. Если я это сделаю, это будет зарегистрировано:
---
Apr 15 16:39:39 rhel7time-dev rsyslogd-3000: sd_journal_get_cursor() failed: 'Cannot assign requested address'
Apr 15 16:39:39 rhel7time-dev rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="574" x-info="http://www.rsyslog.com"] exiting on signal 15.
Apr 15 16:39:39 rhel7time-dev rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="2117" x-info="http://www.rsyslog.com"] start
---
В противном случае ничего не записывается в файл, в том числе регистратор.
Если я закомментирую $ OmitLocalLogging в rsyslog.conf, то регистрация файла возобновится (обратите внимание, что до этого момента я не менял rsyslog.conf).
Вход в журнал не зависит от всего этого. journalctl -b показывает ведение журнала, включая все, что отправлено регистратором.
На что один из разработчиков ответил:
Когда эта проблема возникает, вы можете удалить /var/lib/rsyslog/imjournal.state
и перезапустить демон в качестве обходного пути.
rsyslog не обрабатывает дату напрямую, а только через системный API. Я проверил код в imjournal некоторое время назад, и это похоже на проблему в systemd.
Для справки см .: https://github.com/rsyslog/rsyslog/issues/43.
/etc/rsyslog.conf
и/etc/rsyslog.d
каталоги. Похоже, у вас ничего не настроено для маршрутизации в конкретный файл журнала. Вы также можете попытаться указать сообщение системного журнала сEMERG
приоритетом, чтобы проверить, получится ли это. Пример:logger -p EMERG not really an emergency