mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
Add Munin ILIAS plugin
This commit is contained in:
parent
66403c32f9
commit
051ee8eae7
119
plugins/ilias/ilias_
Normal file
119
plugins/ilias/ilias_
Normal file
@ -0,0 +1,119 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# The Plugin needs the following configuration settings
|
||||
#[ilias_*]
|
||||
#env.ildbuser ilias
|
||||
#env.ildbpassword youriliaspasword
|
||||
#env.ildb ilias
|
||||
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf suggest
|
||||
|
||||
import os
|
||||
import sys
|
||||
import MySQLdb
|
||||
import _mysql
|
||||
class ILIAS():
|
||||
title = "ILIAS session"
|
||||
args = "--base 1000 -l 0"
|
||||
vlabel = "ilias"
|
||||
category = "ilias"
|
||||
|
||||
def __init__(self):
|
||||
self.con = None
|
||||
self.user = os.environ.get('ildbuser', 'root')
|
||||
self.pw = os.environ.get('ildbpassword', '')
|
||||
self.ildb = os.environ.get('ildb','ilias')
|
||||
|
||||
def connectdb(self):
|
||||
self.con = MySQLdb.connect("localhost", self.user, self.pw,self.ildb)
|
||||
self.pluginname = sys.argv[0].split('_')[1]
|
||||
|
||||
|
||||
def config_sessions(self):
|
||||
print("graph_title ILIAS Session")
|
||||
print("graph_vlabel ilsessions")
|
||||
print("graph_category ILIAS")
|
||||
print("ilsessions.label ilSessions")
|
||||
|
||||
def execute_sessions(self):
|
||||
cursor = self.con.cursor()
|
||||
cursor.execute("select count(user_id) from usr_session where `expires` > UNIX_TIMESTAMP( NOW( ) ) AND user_id != 0")
|
||||
usrs = cursor.fetchone()[0]
|
||||
print("ilsessions %s"%(usrs))
|
||||
|
||||
|
||||
def config_10minavg(self):
|
||||
print("graph_title ILIAS 10 avg")
|
||||
print("graph_vlabel il10minavg")
|
||||
print("graph_category ILIAS")
|
||||
print("il10minavg.label 10 min Count")
|
||||
|
||||
def execute_10minavg(self):
|
||||
cursor = self.con.cursor()
|
||||
cursor.execute("select count(user_id) from usr_session where 10 * 60 > UNIX_TIMESTAMP( NOW( ) ) - ctime AND user_id != 0")
|
||||
usrs = cursor.fetchone()[0]
|
||||
print("il10minavg %s"%(usrs))
|
||||
|
||||
def config_60minavg(self):
|
||||
print("graph_title ILIAS 60 avg")
|
||||
print("graph_vlabel il60minavg")
|
||||
print("graph_category ILIAS")
|
||||
print("il60minavg.label 60 min Count")
|
||||
|
||||
def execute_60minavg(self):
|
||||
cursor = self.con.cursor()
|
||||
cursor.execute("select count(user_id) from usr_session where 60 * 60 > UNIX_TIMESTAMP( NOW( ) ) - ctime AND user_id != 0")
|
||||
usrs = cursor.fetchone()[0]
|
||||
print("il60minavg %s"%(usrs))
|
||||
|
||||
def config_total1day(self):
|
||||
print("graph_title Users in 24h")
|
||||
print("graph_vlabel iltotal1day")
|
||||
print("graph_category ILIAS")
|
||||
print("iltotal1day.label User/24h")
|
||||
|
||||
def execute_total1day(self):
|
||||
cursor = self.con.cursor()
|
||||
cursor.execute("select count(usr_id) FROM `usr_data` WHERE last_login >= DATE_SUB( NOW( ) , INTERVAL 1 DAY )")
|
||||
usrs = cursor.fetchone()[0]
|
||||
print("iltotal1day %s"%(usrs))
|
||||
|
||||
|
||||
def run(self):
|
||||
cmd = ((len(sys.argv) > 1) and sys.argv[1] or None) or "execute"
|
||||
function = None
|
||||
if cmd == "execute":
|
||||
function = "execute"
|
||||
elif cmd == "config":
|
||||
function = "config"
|
||||
if function != None:
|
||||
self.connectdb()
|
||||
try:
|
||||
func = getattr(self, "%s_%s"%(function,self.pluginname))
|
||||
except AttributeError:
|
||||
print 'function not found "%s" (%s)' % ("config_%s"%self.pluginname, "self")
|
||||
else:
|
||||
func()
|
||||
if self.con:
|
||||
self.con.close()
|
||||
if cmd == "suggest":
|
||||
print ("sessions")
|
||||
print ("10minavg")
|
||||
print ("60minavg")
|
||||
print ("total1day")
|
||||
if cmd == "autoconf":
|
||||
try:
|
||||
con = MySQLdb.connect("localhost", self.user, self.pw,self.ildb)
|
||||
cursor = con.cursor()
|
||||
cursor.execute("SELECT count(component) FROM il_pluginslot")
|
||||
except _mysql.Error, e:
|
||||
print "no (Error %d: %s)" % (e.args[0], e.args[1])
|
||||
else:
|
||||
print "yes"
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
ILIAS().run()
|
||||
|
Loading…
Reference in New Issue
Block a user