Sziasztok!
Egy naplófájlt kellene figyelnem, és minden alkalommal, amikor megjelenik benne egy előre definiált szöveget tartalmazó sor, kellene küldenem magamnak egy e-mailt.
Tudtok erre valami gyors és egyszerű megoldást?
- 6051 megtekintés
Hozzászólások
inode vátozik?!
ha nem akkor kb:
tail -f XXX |grep YYY | while read i
do echo "$i" | mail emailcim
done
ha igen akkor syslog-ng-t javaslom.
- A hozzászóláshoz be kell jelentkezni
A tail -f nem ter vissza, ez igy sztem nem fog mukodni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Működik, ha elegendő adat összejön a csövekben - bash esetén ez 512 bájtos lépésekben állítható (hint: ulimit -p, default érték talán 8, azaz 4k). Ha a figyelni kívánt sor hossza 512 bájtnál nagyobb, akkor az ulimit -p 1 picit javíthat a helyzeten. A nagyobbik probléma az, hogy ha a logfájlt kirotálja valami a tail -f alól, akkor -nyitott fájlként- ott marad, foglalva a helyet.
- A hozzászóláshoz be kell jelentkezni
"bash esetén ez 512 bájtos lépésekben állítható"
De jellemzően sztenderd kernelekkel sehogy.
man bash:
"-p The pipe size in 512-byte blocks (this may not be set)"
# ulimit -p 1
-su: ulimit: pipe size: cannot modify limit: Invalid argument
- A hozzászóláshoz be kell jelentkezni
Köszi, csak cygwin illetve xwrt volt kéznél - ez utóbbinál (BusyBox v1.11.2) az "ulimit -p" 128-at ad vissza, de az egészen mást jelent (process).
- A hozzászóláshoz be kell jelentkezni
pl. fail2ban beidomithato erre is
- A hozzászóláshoz be kell jelentkezni
Esetleg így (ha az "elnok" szót keresem a syslogban):
STR=elnok
tail -f /var/log/syslog |
while read -r sor
do
[[ "$sor" != *$STR* ]] && continue
echo "Volt bejegyzés" | mail cim
done
exit
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
A swatch pont ezt tudja, esetleg kicsit bonyolultabb esetben érdemes syslog-ng-vel megvalósítani.
- A hozzászóláshoz be kell jelentkezni
+1, esetleg sec.
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ha eddig nem volt említve: logcheck
- A hozzászóláshoz be kell jelentkezni
Ez pont a fordítottja annak, amit kerestem, de nagyon jó! Köszönöm!
--
Kum G.
Linux pólók HUP pólók Linux tanga
- A hozzászóláshoz be kell jelentkezni
Megkesve bar, de syslog-ng 3.4, filterek, smtp destination:
filter f_alert { match("elore definialt szoveg"); };
destination d_smtp { smtp(from("noreply@localhost")
to("root@localhost")
subject("ALERT: ELORE DEFINIALT SZOVEG")
body("Hi. ;)")); };
log {
source(s_source1);
source(s_source2);
filter(f_alert);
destination(d_smtp);
};
Es semmi kulso programra nincs szukseg, a file(ok) koveteset syslog-ng megoldja, sot, akarmilyen sourcera ra tudod aggatni a filtert, legyen az akar file, akar valami halozati source amit csak relayezel.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Uuuuhhh... ez nagyon jo... koszi!
Kerdes: a body-ba be lehet vezetni az aktualis uzenetet is (marmint, ami aktivalta a kuldest)?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Igen, a body-ban (is) működik a template feloldás, szóval csak bele kell tenni a tetszőleges makrót, pl. $MSG
- A hozzászóláshoz be kell jelentkezni
Termeszetesen!
Ahogy kollega irta, mindenfele template stuff mukodik body()-ban (subject()-ben is, sot, sajat headert is tudsz berakni header("Field" "Value") segitsegevel), \n es hasonlok detto, szoval egesz jopofa bodykat is ossze lehet rakni: (sortoresek nelkul, az csak az olvashatosag kedveert kerult be)
smtp([...]
subject("[ALERT]: Bad stuff found on $HOST")
header("X-Syslog-Tags" "$TAGS")
header("Priority" "FUCKINGIMPORTANTDAMMIT")
body("Slender. Very slender. But in the head, angry, as angry as saying mean things like $MSG!\n
\n
I mean, $PROGRAM is generally cool, but during this time of the month ($WEEK), it gets upset, and sends $PRIORITY messages.\n
\n
How rude.\n
\n
Your friendly syslog-ng daemon.\n
\n
P.S.: Please make it stop! I BEG YOU!\n
P.P.S: Sorry for the spam, you did not set throttle(). Not that I would care..."));
Csak arra kell figyelni, hogy minden alert kulon smtp kapcsolat lesz, es se SSL-t, se authentikaciot nem tud (meg) az smtp destination, es throttle() sem hat meg ra.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Ezt akartam írni :)
PLUSZ 1
- A hozzászóláshoz be kell jelentkezni
Csak a hajónapló kedvéért: a zabbix is tudja :)
- A hozzászóláshoz be kell jelentkezni
Köszönöm a segítséget mindenkinek!
A fenti scriptek egyikét fogom használni, illetve logcheck-et.
--
Kum G.
Linux pólók HUP pólók Linux tanga
- A hozzászóláshoz be kell jelentkezni