|
From: | Marie Mcallister |
Subject: | Re: Monit: 'Matching' functionality isn't working |
Date: | Mon, 22 Jun 2015 12:51:28 -0700 |
Send monit-general mailing list submissions to
address@hidden
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.nongnu.org/mailman/listinfo/monit-general
or, via email, send a message with subject or body 'help' to
address@hidden
You can reach the person managing the list at
address@hidden
When replying, please edit your Subject line so it is more specific
than "Re: Contents of monit-general digest..."
Today's Topics:
1. Re: Conditionally check file content (Paul Theodoropoulos)
2. Fwd: Monit: 'Matching' functionality isn't working
(Marie Mcallister)
3. Re: Monit: 'Matching' functionality isn't working (Martin Pala)
----------------------------------------------------------------------
Message: 1
Date: Wed, 17 Jun 2015 15:13:26 -0700
From: Paul Theodoropoulos <address@hidden>
To: This is the general mailing list for monit
<address@hidden>
Subject: Re: Conditionally check file content
Message-ID: <address@hidden>
Content-Type: text/plain; charset="utf-8"; Format="flowed"
I'd recommend putting your tests/conditionals into a shell script, then
check for the exit code from the script, for example:
cat /usr/local/bin/my_test_script
#!/bin/sh
MYERRLOG=/var/www/myapp/log/myapp-err.log
if [ ! -e $MYERRLOG ];then # If the error log doesn't exist,
all is good, so exit 'happy'
exit 1
fi
grep "^.*FATAL.*$" $MYERRLOG >/dev/null 2>&1 # the file exists, this
will be reached. grep the file for the error line, and check the return
status
STAT=$?
if [ "$STAT" -eq "0" ];then
exit 0 # if the return status shows that the error was found,
exit with 'unhappy' status
else
exit 1 #otherwise, all is good
fi
and your monit script:
check program my_test_script with path /usr/local/bin/my_test_script
if status != 1 then alert
if status != 1 for 3 cycles then alert
There's obviously other, probably 'cleaner' ways to do this, but that's
the sort of construct I use.
On 6/17/15 12:57 AM, Ben Soot wrote:
> Hi there,
>
> I want to be alerted if file content (in an error log file) matches a
> pattern. The difficulty is that the file itself might not exist at
> all, which is ok.
>
> How would you do that?
>
> My current clause gives me a read flag in mmonit when the file does
> not exist:
>
> check file myapp-err.log with path /var/www/myapp/log/myapp-err.log
> if match
> "^.*FATAL.*$" then alert
>
>
>
> Thanks Ben
>
>
>
>
> --
> To unsubscribe:
> https://lists.nongnu.org/mailman/listinfo/monit-general
--
Paul Theodoropoulos
www.anastrophe.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nongnu.org/archive/html/monit-general/attachments/20150617/ac0a4117/attachment.html>
------------------------------
Message: 2
Date: Wed, 17 Jun 2015 19:38:00 -0700
From: Marie Mcallister <address@hidden>
To: address@hidden
Subject: Fwd: Monit: 'Matching' functionality isn't working
Message-ID:
<CAA3TBssrckESs7mv3Df8yrpM4bBLv2=address@hidden>
Content-Type: text/plain; charset="utf-8"
Hello,
I have a process that's kicked off from a custom script. The process does
not end with '.pid' so I am trying to use 'matching'. However it seems to
be breaking on the whitespace (just stops after 'bin/bash'), no matter how
I format the command. The commands themselves do work fine, outside of
monit.
Here is what I am trying to use:
check process example_process matching "example_process"
start program = "/bin/bash -c 'nohup /mnt1/path/to/custom/bin/run.sh &'"
stop program = "/usr/bin/killall example_process"
if cpu > 80% for 2 cycles then alert
if cpu > 95% for 5 cycles then restart
if totalmem > 500.0 MB for 5 cycles then restart
if children > 3 then restart
Errors logged:
[UTC Jun 18 02:01:46] info : 'system_ip-10-0-11-189' Monit started
[UTC Jun 18 02:01:46] error : 'example_process' process is not running
[UTC Jun 18 02:01:46] info : 'example_process' trying to restart
[UTC Jun 18 02:01:46] info : 'example_process' start: /bin/bash
[UTC Jun 18 02:02:16] error : 'example_process' failed to start
rinse, repeat...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nongnu.org/archive/html/monit-general/attachments/20150617/45d2e622/attachment.html>
------------------------------
Message: 3
Date: Thu, 18 Jun 2015 11:56:53 +0200
From: Martin Pala <address@hidden>
To: This is the general mailing list for monit
<address@hidden>
Subject: Re: Monit: 'Matching' functionality isn't working
Message-ID: <address@hidden>
Content-Type: text/plain; charset=utf-8
Hello Marie,
you can test the pattern using CLI:
monit procmatch ?<pattern>?
If you won?t find the pattern, please post output of the real process: ?ps -ef | grep <example_process>?, so we can test the match.
Regards,
Martin
monit procmatch classification
List of processes matching pattern "classification":
------------------------------------------
/mnt1/build/seeing/build/bin/classification_node -c /mnt1/config/classificationconfig.json
------------------------------------------
Total matches: 1
> On 18 Jun 2015, at 04:38, Marie Mcallister <address@hidden> wrote:
>
> Hello,
>
> I have a process that's kicked off from a custom script. The process does not end with '.pid' so I am trying to use 'matching'. However it seems to be breaking on the whitespace (just stops after 'bin/bash'), no matter how I format the command. The commands themselves do work fine, outside of monit.
>
> Here is what I am trying to use:
>
> check process example_process matching "example_process"
> start program = "/bin/bash -c 'nohup /mnt1/path/to/custom/bin/run.sh &'"
> stop program = "/usr/bin/killall example_process"
> if cpu > 80% for 2 cycles then alert
> if cpu > 95% for 5 cycles then restart
> if totalmem > 500.0 MB for 5 cycles then restart
> if children > 3 then restart
>
> Errors logged:
>
> [UTC Jun 18 02:01:46] info : 'system_ip-10-0-11-189' Monit started
> [UTC Jun 18 02:01:46] error : 'example_process' process is not running
> [UTC Jun 18 02:01:46] info : 'example_process' trying to restart
> [UTC Jun 18 02:01:46] info : 'example_process' start: /bin/bash
> [UTC Jun 18 02:02:16] error : 'example_process' failed to start
> rinse, repeat...
>
> --
> To unsubscribe:
> https://lists.nongnu.org/mailman/listinfo/monit-general
------------------------------
_______________________________________________
monit-general mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/monit-general
End of monit-general Digest, Vol 149, Issue 13
**********************************************
[Prev in Thread] | Current Thread | [Next in Thread] |