Eu uso o monit há algum tempo. Uma das verificações que fiz foi ter certeza de que meu servidor de e-mail não estava sendo abusado. Eu uso milter-limit para limitar a taxa de envio - e ele registra no syslog. Antes do bookworm, consegui fazer com que ele verificasse o arquivo syslog em busca de conteúdo específico. Não vi nada que me permita fazer isso com o diário do systemd - existe uma maneira?
Investigando, parece que logcheck ou journalcheck poderia ser usado para criar um script para o monit executar e verificar a saída, mas talvez esteja faltando uma opção mais fácil?
O diário do Systemd não é um arquivo de texto, mas consiste em vários arquivos binários. Portanto, o Monit não pode procurar mensagens nos arquivos.
Um script para exportar/analisar o Systemd Journal é atualmente a única maneira de fazer isso. Lutz
Se você precisar de logs de texto, instale um daemon syslog tradicional – tanto o syslog-ng quanto o rsyslog podem ser configurados para extrair mensagens do diário do systemd (até de duas maneiras diferentes) e a partir daí você pode operar como antes.
Com o syslog-ng isso faz parte da configuração padrão; O rsyslog padrão do Debian também configurou o módulo de entrada 'imjournal' por padrão, e é como as versões mais antigas do Debian costumavam fornecer os dois formatos de log ao mesmo tempo.
(Ambos os programas mencionados leem mensagens de arquivos .journal, para que possam filtrar por metadados do diário, como nome da unidade; você não precisa ativar o ForwardToSyslog para que funcionem.)
Você também pode lançar um .service personalizado que apenas faz um
journalctl --follow > system.log
(talvez com-u
ou outras opções de filtro), mas não terá rotação de log, etc., portanto, está lá apenas como uma opção "faça você mesmo com zero dependências".Uma verificação periódica "journalctl | grep" baseada em comando não é realmente uma opção ruim - pode não ter o mesmo desempenho de arquivos de texto simples, mas o journalctl suporta explicitamente a reinicialização do último ponto de verificação usando
--cursor-file=
; Eu uso isso para que o cron me envie por e-mail todas-p err
as mensagens de erro () de hora em hora/diariamente.