Estou executando o que é um servidor baunilha Ubuntu 16.04 e estou tentando entender como o log é configurado por padrão. Eu posso ver que tanto journald
e rsyslog
são instalados e funcionando, mas não é de todo claro para mim como mensagens de log estão sendo processados.
A maioria das mensagens parece aparecer tanto na /var/log/syslog
via quanto na via journalctl
, mas não consigo ver nenhuma configuração explícita para encaminhamento entre as duas /etc/systemd/journald.conf
(que é basicamente todas comentadas por padrão) /etc/rsyslog.conf
ou /etc/rsyslog.d/50-default.conf
. Tentei procurar documentação oficial ou até mesmo um post no blog explicando como esses dois são configurados no Ubuntu, mas não consegui encontrar nada.
Para aumentar ainda mais minha confusão, eu executei logger -p local1.info Test
no host e descobri que nada foi gravado /var/log/syslog
, enquanto a mensagem era exibida abaixo journalctl
.
Minhas perguntas são:
- Como exatamente journald e rsyslog trabalham juntos no Ubuntu 16.04 (por padrão)?
Como as mensagens enviadaslogger
aparentemente acabam no diário, mas não no syslog?
Atualização: Acontece que logger
não funcionar como esperado foi um erro do meu lado, por isso não é relevante para a questão principal.
logger -p .info hello
não é válido. Você não forneceu nenhum nome para a instalação.logger
culpa não foi do meu funcionamento, então isso foi corrigido agora (obrigado pelas dicas de qualquer maneira). Quanto aos logs que aparecem em dois lugares, sua notaimuxsock
parece ser a chave: parece que o rsyslog e o journald estão ouvindo as mensagens do syslog local, por isso, essas entradas entram em dois logs separados.Systemd é um sistema init usado para iniciar os serviços quando o sistema é inicializado. O Journald é responsável por criar logs para os serviços iniciados pelo systemd. Ao integrar o journald ao systemd, até as primeiras mensagens do processo de inicialização estão disponíveis para o journald.
O Rsyslog é um daemon feito especialmente para o processamento de logs, nada a ver com o journald. Ele pode acessar os logs de várias maneiras e produzi-los de várias maneiras. Por padrão, não está ativado que ele também recebe mensagens de log do journald. Para isso, você deve escrever no arquivo /etc/rsyslog.conf,
Agora, ele também aceitará logs fromm journald. Mas sugiro que você não deva alterar seu arquivo /etc/rsyslog.conf.
No final do arquivo /etc/rsyslog.conf, há uma linha escrita,
Isso significa que todos os arquivos com .conf terminam na pasta /etc/rsyslog.d/ devem ser incluídos durante o carregamento do rsyslog. Portanto, todas as suas configurações personalizadas devem estar nesses arquivos
Eu sugiro que você crie um arquivo /etc/rsyslog.d/journald.conf e cole o trecho abaixo.
Abaixo está o trecho da página oficial do rsyslog do imjournal
Linha 1 - carrega o módulo imjournal para aceitar os logs do journald
2 - O módulo mmjsonparse é carregado usado na análise dos logs
3 - Eles estão estruturados no formato descrito no modelo
4 - Analisa esses logs usando o módulo mmjsonparse.
5 - Envia esses logs para um arquivo, a saber / var / log / ceelog, de acordo com a estrutura fornecida no modelo fornecido, usando o módulo omfile (arquivo do módulo de saída - saídas para o arquivo).
Faça alterações na configuração de acordo com sua necessidade.
fonte