Уведомления через syslogd (8)
На моем сервере OpenBSD я регистрирую и отправляю по электронной почте важные сообщения от моих веб-приложений, которые используют средство local1 . Вот мой /etc/syslog.conf, чтобы это произошло:
local1.err /var/log/example.com
local1.err |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done
Обратите внимание, что цикл while бесконечно читает каждую строку из syslogd, а затем передает ее по почте через echo. Это важно. Когда echo выводит свою строку, он завершает канал, отправляя почту EOF, чтобы он мог отправить сообщение журнала по электронной почте.
Другими словами, вы не можете передавать напрямую по почте через syslogd следующим образом:
local1.err |/usr/bin/mail -s SYSLOG me@example.com
потому что syslogd будет продолжать запись в канал до тех пор, пока он сам не прекратит работу или не отправит сигнал HUP, после чего почта отправит весь набор сообщений журнала в одно большое электронное письмо.
Уведомления через новостной журнал (8)
Планирование новостного журнала в cron - это еще один способ получать сообщения медленнее или навалом.
Например, если вы хотите, чтобы ежедневный дайджест электронной почты сообщений журнала, установите флаг M и укажите адрес электронной почты монитора в /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
Затем запланируйте новостной журнал в crontab:
# minute hour mday month wday command
0 * * * * /usr/bin/newsyslog
1-59 * * * * /usr/bin/newsyslog -m
Опция -m для newsyslog (8) гласит:
Режим мониторинга; обрабатываются только записи, отмеченные `M 'в флагах. Для каждого отслеживаемого файла журнала любой вывод журнала с момента последнего запуска newsyslog с флагом -m отправляется пользователю, указанному в разделе уведомлений монитора.