I know Nagios can monitor and alert on the content within a log file, but does anyone know of a plug-in, or other tool, that will monitor a log file for a particular string and then send the entire line in an email message where that match occured?

link|improve this question

17% accept rate
It seems like this is doable with NRPE. What have you tried so far? – uSlackr Feb 2 at 19:20
feedback

4 Answers

up vote 0 down vote accepted

The stock check_log plugins is sort of... miserable; it uses 'diff' and processes the entire log, every time you run it, so it doesn't scale well. At all.

ConSol Labs maintains an excellent log checking plugin that does exactly what you want: http://exchange.nagios.org/directory/Plugins/Log-Files/check_logfiles/details

It is listed on Nagios Exchange, but here is the direct link to the English version: http://labs.consol.de/lang/en/nagios/check_logfiles/

You have to run this through NRPE, or check_via_ssh (+ ssh keys), obviously.

link|improve this answer
thanks - that looks helpful! – af-at-work Feb 14 at 16:20
feedback

@af-at-work: There is a tool for this:

"Tenshi is a log monitoring program, designed to watch one or more log files for lines matching user defined regular expressions and report on the matches. The regular expressions are assigned to queues which have an alert interval and a list of mail recipients."

Ubuntu package (Link), Debian package (Link).

link|improve this answer
feedback

If you can read the log file with a bash (or perl or python or etc.) script and search for the string (grep), sure. The script needs to set a non-zero return code and return the string. The script can reside on the server in question, and nagios can use the check_by_ssh command to run the script on the server.

link|improve this answer
feedback

Why even involve Nagios in such a situation? This seems like over complication.

Why not just go to the server, write a small shell script to do what you want, execute it via a cron job. The scripting MUST contain in either case the logic to send email out.

link|improve this answer
Probably because he wants to centralize his monitoring? Perhaps because he wants this on 50 (or 500) servers? – mfinni Feb 2 at 20:55
If you use NRPE you are still going to have to touch all 50 or 500 servers for installation. You could put the scripting in a common place, and share it out to all systems. Using nagios does not centralize this type of operation, just complicates it. – mdpc Feb 2 at 20:58
"If you use NRPE you are still going to have to touch all 50 or 500 servers for installation." Answer: Chef. Or Puppet. – cjc Feb 2 at 21:02
Sure you can use that type of configuration as well for my suggestion as well. – mdpc Feb 2 at 21:04
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.