Notificaciones a través de syslogd (8)
En mi servidor OpenBSD, registro y envío mensajes importantes por correo electrónico desde mis aplicaciones web, que utilizan la función local1 . Aquí está mi /etc/syslog.conf para que esto suceda:
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 el ciclo while lee infinitamente cada línea de syslogd y luego la canaliza al correo a través de echo. Esto es importante. Una vez que echo emite su línea, termina la tubería, enviando un correo electrónico EOF para que pueda enviar el mensaje de registro por correo electrónico.
En otras palabras, no puede canalizar directamente al correo a través de syslogd así:
local1.err |/usr/bin/mail -s SYSLOG me@example.com
porque syslogd continuará escribiendo en la tubería hasta que finalice o envíe una señal HUP, momento en el cual el correo enviaría todo el conjunto de mensajes de registro en un gran correo electrónico.
Notificaciones a través de newsyslog (8)
Programar el registro de noticias en cron es otra forma de obtener mensajes a un ritmo más lento o masivo.
Por ejemplo, si desea un resumen diario por correo electrónico de los mensajes de registro, configure el indicador M y especifique una dirección de correo electrónico del monitor en /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
Luego programe newsyslog en crontab:
# minute hour mday month wday command
0 * * * * /usr/bin/newsyslog
1-59 * * * * /usr/bin/newsyslog -m
La opción -m para newsyslog (8) establece:
Modo de monitoreo; solo se procesan las entradas marcadas con una 'M' en las banderas. Para cada archivo de registro que se supervisa, cualquier salida de registro desde la última vez que se ejecutó newsyslog con el indicador -m se envía por correo al usuario que figura en la sección de notificación del monitor.