30 lines
788 B
Python
30 lines
788 B
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
from flask import Flask, Response
|
||
|
from subprocess import check_output
|
||
|
|
||
|
app = Flask(__name__)
|
||
|
|
||
|
@app.route('/status')
|
||
|
def statuspage():
|
||
|
try:
|
||
|
check_output(['/usr/lib/nagios/plugins/check_procs', '-C', 'icinga2', '-c', '1:'])
|
||
|
|
||
|
# check_output will raise an exception if there is a non-zero status
|
||
|
icinga_is_fine = True
|
||
|
except:
|
||
|
icinga_is_fine = False
|
||
|
|
||
|
try:
|
||
|
check_output(['/usr/lib/nagios/plugins/check_procs', '-C', 'postgres', '-c', '1:'])
|
||
|
|
||
|
# check_output will raise an exception if there is a non-zero status
|
||
|
postgres_is_fine = True
|
||
|
except:
|
||
|
postgres_is_fine = False
|
||
|
|
||
|
if icinga_is_fine and postgres_is_fine:
|
||
|
return 'OK', 200
|
||
|
else:
|
||
|
return 'Something is wrong!', 500
|