File: //bin/locaweb-plugins-agent
#!/usr/bin/python -W ignore::DeprecationWarning
import argparse
import os
import sys
import lap
import pwd
import time
import grp
from glob import glob as ls
def run(runcheckmk=True, runlocal=True):
print "<<<check_mk>>>"
print "Version: 1.2-2.lw"
print "AgentOS: linux"
print
# 1 -> Run check-mk based plugins
if runcheckmk:
plugin_dir = "/usr/share/locaweb-plugins/check-mk/"
for plugin in ls(os.path.join(plugin_dir, "*")):
print "<<<%s>>>" % plugin.split("/")[-1].rsplit(".", 1)[0]
for line in lap.execute_plugin_local(plugin):
print line
print "<<<local>>>"
# 2 -> Run local forced plugins
if runlocal:
plugin_dir = "/usr/share/locaweb-plugins/local/"
for plugin in ls(os.path.join(plugin_dir, "*")):
for line in lap.execute_plugin_local(plugin):
print line
# 3 -> Run local based on yaml plugins
for check in lap.load_plugins():
status, description, perfdata, output = lap.execute_plugin(check)
print status, description, perfdata, output
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--no-check-mk', action='store_false', dest='runcheckmk', default=True)
parser.add_argument('--no-local', action='store_false', dest='runlocal', default=True)
args = parser.parse_args()
# Run as check-mk user
try:
os.setgid(grp.getgrnam("_readproc").gr_gid)
except:
pass
try:
os.setuid(pwd.getpwnam("check-mk").pw_uid)
except:
print "Cannot find user check-mk, i dont like r00t"
sys.exit(1)
else:
run(args.runcheckmk, args.runlocal)