Add nagios plugin
This commit is contained in:
parent
e24fc552ed
commit
b8ecafcf5b
4 changed files with 52 additions and 12 deletions
|
@ -14,14 +14,14 @@ import sys
|
|||
def usage():
|
||||
print(
|
||||
"Usage: " + __file__ +
|
||||
"[--config path_to_file.ini] [--station smhi_station_number ] --db database] [--host dbhost] [--user dbuser] [--password dbpassword]\n"
|
||||
"[--config path_to_file.ini] [--station smhi_station_number ] --database database] [--host dbhost] [--user dbuser] [--password dbpassword]\n"
|
||||
"Default configfile is weather.ini, any parameter can be overwritten on the command line"
|
||||
)
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--config')
|
||||
parser.add_argument('--db')
|
||||
parser.add_argument('--database')
|
||||
parser.add_argument('--host')
|
||||
parser.add_argument('--user')
|
||||
parser.add_argument('--password')
|
||||
|
@ -32,7 +32,7 @@ if args.config:
|
|||
config_file = args.config
|
||||
config = configparser.ConfigParser()
|
||||
config.read(config_file)
|
||||
db = config['MySQL']['db']
|
||||
db = config['MySQL']['database']
|
||||
host = config['MySQL']['host']
|
||||
user = config['MySQL']['user']
|
||||
password = config['MySQL']['password']
|
||||
|
@ -50,8 +50,8 @@ if args.station:
|
|||
station = args.station
|
||||
if not station:
|
||||
station = "97100"
|
||||
if args.db:
|
||||
db = args.db
|
||||
if args.database:
|
||||
db = args.database
|
||||
if args.host:
|
||||
host = args.host
|
||||
if not host:
|
||||
|
@ -94,7 +94,7 @@ csv = "date,T_max,T_min,T_mean,RH_max,RH_min,RH_mean,Rainfall\n"
|
|||
for i in dates:
|
||||
working_date = i[0].strftime('%Y-%m-%d')
|
||||
day_select = ('SELECT * FROM weather '
|
||||
'WHERE date = "{}"'.format(working_date))
|
||||
'WHERE date = "{}" AND station = {}'.format(working_date,station))
|
||||
cursor.execute(day_select)
|
||||
day = cursor.fetchall()
|
||||
sum_rain = 0
|
||||
|
|
40
check_rainfall.sh
Normal file
40
check_rainfall.sh
Normal file
|
@ -0,0 +1,40 @@
|
|||
#!/bin/bash
|
||||
|
||||
while getopts “:w:c:” opt; do
|
||||
case $opt in
|
||||
w) warn=$OPTARG ;;
|
||||
c) crit=$OPTARG ;;
|
||||
esac
|
||||
done
|
||||
|
||||
aweekago=$(date -d "7 days ago" +%Y-%m-%d)
|
||||
now=$(date +%Y-%m-%d)
|
||||
diff=$(mysql --defaults-extra-file=weather.ini -NBs -e "SELECT avg(Rainfall - ETo) FROM aggregated_weather WHERE Date BETWEEN \"${aweekago}\" AND \"${now}\"" ${db})
|
||||
|
||||
OK=0
|
||||
WARNING=1
|
||||
CRITICAL=2
|
||||
UNKNOWN=3
|
||||
|
||||
state=${OK}
|
||||
msg="OK:"
|
||||
if [[ "x${warn}" == "x" ]]; then
|
||||
warn=-0.5
|
||||
fi
|
||||
if [[ "x${crit}" == "x" ]]; then
|
||||
crit=-2
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if (( $(echo "${diff} < ${warn}" |bc -l) )); then
|
||||
state=${WARNING}
|
||||
msg="WARNING:"
|
||||
fi
|
||||
if (( $(echo "${diff} < ${crit}" |bc -l) )); then
|
||||
state=${CRITICAL}
|
||||
msg="CRITICAL:"
|
||||
fi
|
||||
|
||||
echo "${msg} Rainfall - evapotransipration is ${diff}|diff=${diff};${warn};${crit}"
|
||||
exit ${state}
|
|
@ -11,7 +11,7 @@ import sys
|
|||
def usage():
|
||||
print(
|
||||
"Usage: " + __file__ +
|
||||
"[--config path_to_file.ini] [--station smhi_station_number] [--period latest-hour|latest-day|latest-months] [--db database] [--host dbhost] [--user dbuser] [--password dbpassword]\n"
|
||||
"[--config path_to_file.ini] [--station smhi_station_number] [--period latest-hour|latest-day|latest-months] [--database database] [--host dbhost] [--user dbuser] [--password dbpassword]\n"
|
||||
"Default configfile is weather.ini, any parameter can be overwritten on the command line"
|
||||
)
|
||||
|
||||
|
@ -20,7 +20,7 @@ parser = argparse.ArgumentParser()
|
|||
parser.add_argument('--config')
|
||||
parser.add_argument('--station')
|
||||
parser.add_argument('--period')
|
||||
parser.add_argument('--db')
|
||||
parser.add_argument('--database')
|
||||
parser.add_argument('--host')
|
||||
parser.add_argument('--user')
|
||||
parser.add_argument('--password')
|
||||
|
@ -30,7 +30,7 @@ if args.config:
|
|||
config_file = args.config
|
||||
config = configparser.ConfigParser()
|
||||
config.read(config_file)
|
||||
db = config['MySQL']['db']
|
||||
db = config['MySQL']['database']
|
||||
host = config['MySQL']['host']
|
||||
user = config['MySQL']['user']
|
||||
password = config['MySQL']['password']
|
||||
|
@ -49,8 +49,8 @@ if not period:
|
|||
if period not in ["latest-hour", "latest-day", "latest-months"]:
|
||||
period = "latest-day"
|
||||
|
||||
if args.db:
|
||||
db = args.db
|
||||
if args.database:
|
||||
db = args.database
|
||||
if args.host:
|
||||
host = args.host
|
||||
if not host:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[MySQL]
|
||||
db = weather
|
||||
database = weather
|
||||
host = localhost
|
||||
user = your_user_name
|
||||
password = secret_password
|
||||
|
|
Loading…
Add table
Reference in a new issue