Não é uma solução direta, mas eu permitiria alguma depuração para ver o que está acontecendo nos bastidores.
Idéia # 1 - Depurador de log
Para iniciantes, quando você executa seus logger
comandos, é possível fazê-los dessa maneira, ecoando mensagens para STDERR.
$ logger -s "hi"
saml: hi
Idéia # 2 - valide seu arquivo de configuração
Você também pode tentar validar seu arquivo de configuração do 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
Idéia # 3 - Aumente a depuração do rsyslogd
Também tentaria ativar a depuração do rsyslogd
daemon para obter mais informações.
$ 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'
Confirmando informações da versão
$ 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.
Erro confirmado e uma solução alternativa
O OP enviou isso como um bug para a Red Hat.
O bug foi caracterizado da seguinte maneira:
Com certeza, quando defini o horário do host, a VM teve o mesmo horário errado que o host. Foi quando notei que / var / log / messages não estava mais sendo atualizado.
Acontece que nada além de reiniciar o próprio serviço rsyslog faz logon nos arquivos naquele momento. Se eu fizer isso, isso será registrado:
---
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
---
Caso contrário, nada será registrado no arquivo, incluindo o logger.
Se eu comentar sobre $ OmitLocalLogging no rsyslog.conf, o log de arquivos será retomado (observe que até aquele momento eu não havia alterado o rsyslog.conf).
O registro no diário não é afetado por tudo isso. journalctl -b mostra o log, incluindo qualquer coisa enviada pelo logger.
À qual o desenvolvedor respondeu:
Quando esse problema ocorre, você pode excluir /var/lib/rsyslog/imjournal.state
e reiniciar o daemon como uma solução alternativa.
O rsyslog não lida com a data diretamente, mas apenas através da API systemd. Eu verifiquei o código no imjournal há um tempo atrás e isso parece um problema no systemd.
Para referência, consulte: https://github.com/rsyslog/rsyslog/issues/43
/etc/rsyslog.conf
e os/etc/rsyslog.d
diretórios. Parece que você não tem nada configurado para ser roteado para um arquivo de log específico. Você também pode tentar especificar uma mensagem de syslog comEMERG
prioridade para ver se isso é transmitido . Exemplo:logger -p EMERG not really an emergency