Notificações via syslogd (8)
No meu servidor OpenBSD, eu registro e envio por e-mail mensagens importantes de meus aplicativos da web, que usam o recurso local1 . Aqui está o meu /etc/syslog.conf para fazer isso acontecer:
local1.err /var/log/example.com
local1.err |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done
Observe que o loop while lê infinitamente cada linha do syslogd e a envia para o correio via eco. Isso é importante. Depois que o eco sai de sua linha, ele termina o canal, enviando um EOF para que ele possa enviar a mensagem de log por email.
Em outras palavras, você não pode canalizar diretamente para o correio via syslogd da seguinte maneira:
local1.err |/usr/bin/mail -s SYSLOG me@example.com
porque o syslogd continuará gravando no canal até que ele próprio seja finalizado ou envie um sinal HUP; nesse momento, o correio enviaria todo o conjunto de mensagens de log em um grande email.
Notificações via newsyslog (8)
Agendar newsyslog no cron é outra maneira de obter mensagens em uma taxa mais lenta ou em massa.
Por exemplo, se você deseja um resumo diário das mensagens de log, defina o sinalizador M e especifique um endereço de email de monitor em /etc/newsyslog.conf :
# logfile_name owner:group mode count size when flags monitor
/var/log/example.com root:wheel 640 7 * 24 M me@example.com
Em seguida, agende newsyslog no crontab:
# minute hour mday month wday command
0 * * * * /usr/bin/newsyslog
1-59 * * * * /usr/bin/newsyslog -m
A opção -m para newsyslog (8) afirma:
Modo de monitoramento; apenas as entradas marcadas com um `M 'nos sinalizadores são processadas. Para cada arquivo de log que está sendo monitorado, qualquer saída de log desde a última vez que o newsyslog foi executado com o sinalizador -m é enviada ao usuário listado na seção de notificação do monitor.