Powiadomienia za pośrednictwem syslogd (8)
Na moim serwerze OpenBSD loguję i wysyłam pocztą e-mail ważne wiadomości z moich aplikacji internetowych, które używają funkcji local1 . Oto mój /etc/syslog.conf, aby tak się stało:
local1.err /var/log/example.com
local1.err |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done
Zauważ, że pętla while nieskończenie odczytuje każdą linię z syslogd, a następnie przesyła ją do poczty za pomocą echa. To jest ważne. Gdy echo wysyła swoją linię, kończy potok, wysyłając pocztą EOF, aby mógł wysłać wiadomość e-mail z logiem.
Innymi słowy, nie można przesyłać strumieniowo bezpośrednio do poczty za pośrednictwem syslogd w następujący sposób:
local1.err |/usr/bin/mail -s SYSLOG me@example.com
ponieważ syslogd będzie kontynuował zapisywanie do potoku, dopóki sam się nie zakończy lub nie wyśle sygnału HUP, w którym to czasie poczta wyśle cały zestaw wiadomości dziennika w jednym dużym e-mailu.
Powiadomienia przez newsyslog (8)
Zaplanowanie newsyslogu w cron to kolejny sposób na otrzymywanie wiadomości w wolniejszym tempie lub luzem.
Na przykład, jeśli chcesz codziennego podsumowania wiadomości e-mail w dzienniku, ustaw flagę M i określ adres e-mail monitora w /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
Następnie zaplanuj newsyslog w crontab:
# minute hour mday month wday command
0 * * * * /usr/bin/newsyslog
1-59 * * * * /usr/bin/newsyslog -m
Opcja -m dla newsyslog (8) stwierdza:
Tryb monitorowania; przetwarzane są tylko wpisy oznaczone flagą „M”. Dla każdego monitorowanego pliku dziennika dane wyjściowe dziennika od ostatniego uruchomienia newsyslog z flagą -m są wysyłane do użytkownika wymienionego w sekcji powiadomień o monitorze.