Notifiche via syslogd (8)
Sul mio server OpenBSD, registro e invio e-mail di messaggi importanti dalle mie applicazioni Web, che utilizzano la funzione local1 . Ecco il mio /etc/syslog.conf per farlo accadere:
local1.err /var/log/example.com
local1.err |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done
Si noti che il ciclo while legge all'infinito ogni riga da syslogd e quindi la reindirizza alla posta via echo. Questo è importante. Una volta che l'eco ha emesso la sua linea, termina la pipe, inviando un EOF in modo che possa inviare il messaggio di registro tramite e-mail.
In altre parole, non puoi reindirizzare direttamente alla posta tramite syslogd in questo modo:
local1.err |/usr/bin/mail -s SYSLOG me@example.com
poiché syslogd continuerà a scrivere sulla pipe fino a quando non verrà terminato o inviato un segnale HUP, a quel punto la posta invierebbe l'intero set di messaggi di log in un'unica e-mail di grandi dimensioni.
Notifiche tramite newsyslog (8)
La pianificazione di newsyslog in cron è un altro modo per ottenere messaggi a una velocità inferiore o in blocco.
Ad esempio, se si desidera un digest giornaliero della posta elettronica dei messaggi di registro, impostare il flag M e specificare un indirizzo e-mail di monitoraggio in /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
Quindi programmare newsyslog in crontab:
# minute hour mday month wday command
0 * * * * /usr/bin/newsyslog
1-59 * * * * /usr/bin/newsyslog -m
L' opzione -m per newsyslog (8) afferma:
Modalità di monitoraggio; vengono elaborate solo le voci contrassegnate con una "M" nei flag. Per ogni file di registro monitorato, qualsiasi output di registro dall'ultima volta che è stato eseguito il newsyslog con il flag -m viene inviato all'utente elencato nella sezione di notifica del monitor.