hello all, i have tried doing a python script named mysql.py
------------------------------------------------- #!/usr/bin/python
import sys,MySQLdb
conn = MySQLdb.connect(host="localhost",user="root", passwd="",db="mydb")cursor
= conn.cursor()cursor.execute("select hour(timediff(now(),(select timestamp
from orksegment order by timestamp desc limit 1)))")row = cursor.fetchone()
if row < 200: sys.exit(0) else:
sys.exit(1)--------------------------------------------------------and have
this /etc/monit.d/mysqlmonitor
check program foo with path "/root/mysql.py" if status !=0 then alert
and i am getting this in my /var/log/monit.log
Sep 16 19:39:42] error : 'foo' failed to execute '/root/mysql.py' -- Exec
format error
can anyone please help and tell me what i did wrong?
Date: Tue, 11 Sep 2012 20:36:41 -0400
Subject: Re: Monit and SQL query
From: [email protected]
To: [email protected]
I know this is not exactly what you asked for but a whole proof of concept as
to how to use monit for a heartbeat check can be found in
http://thinkinginsoftware.blogspot.com/2012/09/monitor-your-mysql-or-mssql-servers.html
So considering you already have a query that returns a unique number (the
elapsed time) you can parse such a number with something like the below (note I
don't know your query but the idea is basically to concat with a well known
string to be able to parse the number later on):
mysql -u user -ppassword -e "select CONCAT('delta', 1)" | grep -v CONCAT | sed
's/\(delta\)\([^ ]*\).*/\2/'
The above will return "1".
Now all you need to do is save that into a variable:myvar=`the above statement
here`
Then exit a different than 0 code (standard in shell scripts to denote there
was an error:
if [ $myvar -gt 12 ] then; exit 1fi
I recommend to start your script with:#!/bin/bash -e
The -e option will make the script fail with exit status != 0 if any command
inside the script fails.
On Tue, Sep 11, 2012 at 8:11 AM, Charles Pino <[email protected]> wrote:
sorry the db is MySQLand i am trying to read the difference between the last
written record and the current time.if its been 12 hours already. it should
send an alert via monit.
problem is i am not really sure how to grep or an sql result that has different
values (not just 1 or 0)
if status != 0 then alert -- should i still use status?
sorry im completely new to monit.
Date: Mon, 10 Sep 2012 14:51:42 -0400
Subject: Re: Monit and SQL query
From: [email protected]
To: [email protected]
Build a shell script that:1. will issue the command to your server (you did not
say what kind of sql server you have)
2. will parse the result from the server using for example grep and regex3. If
the result is unexpected use 'exit 1'
4. Set in monit as Martin said
On Mon, Sep 10, 2012 at 6:34 AM, Charles Pino <[email protected]> wrote:
sql statement is supposed to evaluate if the result is >= to 12 , if true then
alert.
how do i put that in place of " PROCESS OUTPUT AND RETURN 1 IF FAILED
OTHERWISE 0" ??
thanks
From: [email protected]
Subject: Re: Monit and SQL query
Date: Mon, 10 Sep 2012 09:06:11 +0200
To: [email protected]
Hello,
you can use the "check program" to test the exit value of custom script. In
this case the script can execute the SQL statement and return error if problem
is found.
Script skeleton:--8<--#!/bin/bash/ur/bin/mysql -e "SQL STATEMENT" ... | PROCESS
OUTPUT AND RETURN 1 IF FAILED OTHERWISE 0--8<--
Connection of the script with monit:--8<-- check program myscript with path
"/usr/local/bin/myscript.sh" if status != 0 then alert--8<--
Regards,Martin
On Sep 9, 2012, at 4:58 PM, Charles Pino <[email protected]> wrote:
Hello all, is it possible to execute and SQL query and have monit execute and
alert or something else depending on its response?
i have a sql query that queries a specific table. of something hasnt been
updated in that table for 12 hours. i need to send an alert or whatever. that
the table/field hasnt been updated.
please help.
thanks
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general