Chciałbym móc otrzymywać powiadomienia e-mail za każdym razem, gdy syslogd rejestruje coś, powiedzmy err
priorytet lub wyższy. Załóżmy, że jest to demon syslog zgodny z BSD.
- Czy można to osiągnąć?
- Czy powinienem użyć nazwanego potoku do skryptu powłoki?
- Jakie są inne możliwe rozwiązania?
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:
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:
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 :
Następnie zaplanuj newsyslog w crontab:
Opcja -m dla newsyslog (8) stwierdza:
źródło
Możesz spojrzeć na logcheck lub logwatch. Logcheck wysyła Ci co godzinę e-mail z wierszami dziennika, które nie pasują do zestawu wzorców. Podejrzewam, że prawdopodobnie możesz to zrobić częściej. Nie znam żadnych narzędzi, które to robią, obserwując pliki dziennika, ale jestem pewien, że jest coś, co to robi.
źródło
Chciałbym użyć OSSEC. Monitoruje dzienniki w czasie rzeczywistym i umożliwia łatwe powiadamianie e-mailem (lub w inny sposób) o dopasowaniu określonych zdarzeń. Prosty w użyciu, skalowalny i open source.
link: http://www.ossec.net
źródło