Sistem günlüğü e-postasını belirli günlük mesajlarını bana nasıl gönderebilirim?


13

Syslogd, erröncelik veya daha yüksek bir şey kaydettiğinde bir e-posta bildirimi almak istiyorum . Bunun BSD uyumlu bir sistem günlüğü olduğunu varsayalım.

  • Bu yapılabilir mi?
  • Kabuk betiği için adlandırılmış bir kanal kullanmalı mıyım?
  • Başka hangi olası çözümler var?

Yanıtlar:


6

İşte adlandırılmış yöneltmeler kullanan bir çözüm . Debian için ayarlanmıştır, ancak BSD için değiştirebilmeniz gerekir.


Sonunda çözümümü buna dayandırdım, böylece e-postayı e-postayla gönderebildim. Bağlantı için teşekkürler.
Jason

Bu çok fazla bir hack gibi görünüyor. Bunu sizin için yapacak açık kaynak kodlu uygulamalar olduğunda neden komut dosyası yazmak için zaman harcıyorsunuz? (gerçek zamanlı olarak). * cevabımı gör.
sucuri

2
Kesinlikle bir hack değil. Bu tür şeylerin genellikle yapılış şekli budur.
sonraki duyuruya kadar duraklatıldı.

6

Sistem günlüğü ile bildirimler (8)

OpenBSD sunucumda, local1 özelliğini kullanan web uygulamalarımdaki önemli iletileri günlüğe kaydeder ve e-postayla gönderirim . İşte benim olduğu /etc/syslog.conf gerçekleşmesi için:

local1.err    /var/log/example.com
local1.err    |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done

While döngüsünün syslogd dosyasındaki her satırı sonsuza kadar okuduğuna ve sonra yankı yoluyla postaya yönlendirdiğine dikkat edin. Bu önemli. Echo hattını çıkardığında, boruyu sonlandırır ve postayla günlük mesajını e-posta ile gönderebilmesi için bir EOF gönderir.

Başka bir deyişle, syslogd aracılığıyla postaları doğrudan bu şekilde iletemezsiniz:

local1.err    |/usr/bin/mail -s SYSLOG me@example.com

çünkü syslogd, kendisi bir HUP sinyali sonlanıncaya veya gönderilinceye kadar boruya yazmaya devam edecektir; bu sırada posta, tüm günlük iletileri kümesini büyük bir e-postada gönderir.

Newsyslog aracılığıyla bildirimler (8)

Newsyslog'u cron'da planlamak, iletileri daha düşük bir oranda veya toplu olarak almanın başka bir yoludur.

Örneğin, günlük mesajlarının günlük e-posta özetini istiyorsanız, M bayrağını ayarlayın ve /etc/newsyslog.conf içinde bir monitör e-posta adresi belirtin :

# logfile_name        owner:group  mode  count  size  when  flags  monitor
/var/log/example.com  root:wheel   640   7      *     24    M      me@example.com

Sonra newsyslog'u crontab'da programlayın:

# minute hour  mday  month  wday  command
0        *     *     *      *     /usr/bin/newsyslog
1-59     *     *     *      *     /usr/bin/newsyslog -m

-M seçeneği newsyslog (8) devletler:

İzleme modu; yalnızca bayraklarda M işareti bulunan girişler işlenir. İzlenen her günlük dosyası için, newsyslog'un -m bayrağıyla son çalıştırılmasından bu yana kaydedilen günlük çıktıları, monitör bildirim bölümünde listelenen kullanıcıya postalanır.


3

Logcheck veya logwatch'a bakmak isteyebilirsiniz. Logcheck size, saatte bir dizi desenle eşleşmeyen günlük satırlarıyla e-posta gönderir. Muhtemelen daha sık yapmasını sağlayabileceğinizden şüpheleniyorum. Günlük dosyalarını izleyerek bunu yapan herhangi bir araç bilmiyorum, ama eminim orada yapan bir şey var.


Evet, günlük dosyalarını yazıldıktan sonra izlememeyi ve ayrıştırmamayı tercih ediyorum, ancak anlık bildirimleri alabilmem için günlük oluşturma sürecine bağlanıyorum.
jason

1

OSSEC kullanırdım. Günlüklerinizi gerçek zamanlı olarak izler ve belirli etkinlikler eşleştiğinde e-postayla (veya başka yollarla) kolayca uyarmanıza olanak tanır. Kullanımı kolay, ölçeklenebilir ve açık kaynak.

bağlantı: http://www.ossec.net


Bu uygulama için aşırıya kaçabilir. Bununla birlikte, paket çok şey yapar ve bir ihtiyaç varsa uygun olabilir.
sonraki duyuruya kadar duraklatıldı.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.