[hogyan?] E-mail figyelmeztetés ha a logban megjelenik egy hiba

Fórumok

Sziasztok!

Adott egy logfájl (pl. syslog). Azt szeretném a lehető legegyszerűbben megoldani, hogy ha ebben megjelenik egy bizonyos szöveg (pl. "eth0: link down"), akkor küldjön nekem egy e-mailt.

Van valakinek ötlete?

Hozzászólások

Érdemes írni egy progit (pl. perlben), ami < stdin >-ről olvas, < stdout >-ra ír és ezt közérakni a logger kimenet és a végleges fájl közé (ld. "mkpipe" vagy "mknod p")


@module afsmtp

filter f_linkdown {
 match("eth0: link down");
};

destination d_alert {
 smtp(
  host("localhost") port(25)
  from("syslog-ng alert service" "syslog@localhost")
  reply_to("Admins" "root@localhost")
  to("Ennekem" "me@localhost")
  subject("[SYSLOG ALERT]: eth0 link down")
  body("Syslog received an alert:\n$MSG")
 );
};

log {
 source(s_local);
 filter(f_linkdown);
 destination(d_alert);
};

Hozzavalok: syslog-ng (3.3+) + syslog-ng-module-collection

De megoldhato a problema korabbi syslog-ng-vel is rettento egyszeruen, bar ahhoz kell irni egy rovidke scriptet:

syslog-ng.conf-ba:


filter f_linkdown { match("eth0: link down"); };
destination d_alert { program("/usr/local/bin/mail-alert.sh root@localhost"); };
log { source(s_local); filter(f_linkdown); destination(d_alert); };

mail-alert.sh:


#! /bin/sh
to=$1
while read alert; do
 echo $alert | mail -s "[SYSLOG ALERT]: link down!" ${to}
done

Persze lehet azzal is szorakozni, hogy folyamatosan figyeled scripttel a logot, vagy hasonlo, de minek, ha egy ertelmes syslog daemon magatol is tud segiteni ebben?

--
|8]

otletem rengeteg van, rsyslog alapbol tud ilyet, csak be kell konfigolni, syslog-ng szinten, regi syslog eseten egy egyszeru perl script cronttab-bol, azzal grep a log file-ban es ha van talalat mehet a mail. Ez barmilyen log file eseten jo, valahogy ugy erzem a syslog csak peldakent szerepel.

Üdv!

Hosszú ideje ezt használom, nagyon jó, jól konfigolható és van hozzá "gyári" beállítás is:
logcheck

Tilla

Én sem tudok jobbat, mint az előttem szólók, csak arra szeretném felhívni a figyelmedet, hogy ha az "eth0: link down" szöveg megjelenik a syslogban, akkor sajnos nem biztos, hogy meg is fogod kapni azt a levelet, amit ez a gép küldeni kar neked...

logwatch
--
Imperare sibi maximum imperium est.

Ha nincs hálózat, hogy is tudunk levelet küldeni ... >:)

Na mindegy van eth1, de:
Levelet küldeni egy hibáról nem biztos, hogy jó ötlet (elárasztom az MTA -t a gépen eth0: link down@localhost feladójú levelekkel és megy a levesbe a levelező server), szerintem inkébb a Nagios -al kellene barátkozni.

Addig is gondolat ébresztőnek ajánlom figyelmedbe: http://molnaristvan.eu/2011/06/23/a-nagy-syslog-ng-tutorial-i-tanuljunk… , különösen "Az alkalmazás üzenetet küld (e-mail, XMPP, stb.)" alcímű részt.

Tudom könnyedén legyintesz egy ilyen felvetésre: "Áááá annyi hiba úgysem lesz!", de ne becsüld le egy jól megkonstruált végtelen ciklus erejét. Emberek vagyunk, s mint ilyenek mesze nem mentesek a hibától.

Ha azt szeretnéd figyelni, hogy egy esemény előfordul (pl.: leáll egy szolgáltatás, elérhetetlenné válok egy server, akármi), jobb egy olyan eszközt használni (Nagios) ami kívülről tesztel, egyszerű eszközökkel.

----
올드보이
http://molnaristvan.eu/

Ott a pont... Milyen jó is volt, amikor egy PIX-ASA átállás után az ASA többet logolt picit (ez még nem lett volna olyan oltári nagy baj...), ellenben a logcheck-nek a PIX-es minták voltak összerakva... Úgyhogy rogyott a logszerver, a logcheck, meg a levelezés is - a buznyák nagy logcheck-es levelektől...

+1, én is jártam így, ráadásul VPS-en, melyen valami elkúrodott a dovecot+TLS páros környékén, és folyamatosan nyomta a hibákat, gyakorlatilag végtelen ciklusban. A lemez is betelt, a load az egekbe szökött, még a gazdagépből is lényegében egy egész fizikai processzort megevett a mutatvány. Sima reboot sem segített, mert ugye a dovecot mindig indult automatikusan, s egyből kezdte tolni a hibákat a logba.