On regroupe les plugins munin dans un rpertoire commun toutes les machines

darcs-hash:20060420130121-72cb0-50f87f8f01382a2ddc9afec1b1b6e02890d8d32c.gz
This commit is contained in:
salles 2006-04-20 15:01:21 +02:00
parent 674ee00ed0
commit f672fa493b
23 changed files with 1451 additions and 0 deletions

132
munin/stats-batiment_ Executable file
View file

@ -0,0 +1,132 @@
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
# Gestion des prises dans les batiments
# Pour le moment on ne compte pas les prises CRANS
import sys,os,string
sys.path.append('/usr/scripts/gestion')
from annuaires import reverse, chbre_prises, bat_switchs, all_switchs, uplink_prises
from hptools import hpswitch
from ldap_crans import crans_ldap
# Le fichier de nombre d'adhérent par batiments
stats_batiments = "/var/lib/munin/tmp/batiments"
BAT = sys.argv[0].split('_')[1]
# Pour les batiments non manageables on indique le nb de prises
BAT_CHBRES = {'g' : 312}
def switch_prise(bat, prise) :
''' Renvoie le switch et la prise associé au numéro de la prise '''
switch = "bat%s-%i" % (bat, prise/100)
prise = prise % 100
return (switch, prise)
multiprise = map(lambda x : len(x[1])>1 and x[0], reverse(BAT).items())
while False in multiprise :
multiprise.remove(False)
try :
arg = sys.argv[1]
except :
arg = ''
if arg == "config" :
print 'host_name adherents'
print 'graph_title Batiment %s' % string.upper(BAT)
print 'graph_args --base 1000 --lower-limit 0'
# print 'graph_order activ enabled fixes reste prises chbres'
print "graph_vlabel nb de chambres"
print 'enabled.label Prises activées'
print 'enabled.draw AREA'
print 'fixes.label Prises fixes'
print 'fixes.draw STACK'
print 'reste.label Prises inutilisées'
print 'reste.draw STACK'
print 'crans.label Prises crans'
print 'crans.draw STACK'
print 'activ.label Prises actives'
print 'adherent.label Nb adhérents'
print 'prises.label Nb de prises'
print 'chbres.label Nb de chambres'
if BAT in BAT_CHBRES :
print 'connues.label Nb de chbres enreg.'
# print 'reste.warning 5:'
# print 'reste.critical 0:'
else :
PRISES_ENABLE = 0
for switch in all_switchs(BAT) :
try:
PRISES_ENABLE += hpswitch(switch).is_enable('all')
except:
PRISES_ENABLE += 0
# On élimine les prises "CRANS" stockés dans uplink_prises
for prise in uplink_prises[BAT].keys() :
switch, prise = switch_prise(BAT, prise)
try:
if hpswitch(switch).is_enable(prise) :
PRISES_ENABLE -= 1
except:
PRISES_ENABLE -= 0
print "enabled.value %d" % PRISES_ENABLE
PRISES_ACTIVES = 0
for switch in all_switchs(BAT) :
try:
PRISES_ACTIVES += hpswitch(switch).is_up('all')
except:
PRISES_ACTIVES += 0
# On élimine les prises "CRANS" stockés dans uplink_prises
for prise in uplink_prises[BAT].keys() :
switch, prise = switch_prise(BAT, prise)
try:
if hpswitch(switch).is_up(prise) :
PRISES_ACTIVES -= 1
except:
PRISES_ACTIVES -= 0
if multiprise != [] :
PRISES_ACTIVES -= len(multiprise)
for prise in multiprise :
PRISES_ACTIVES += len(reverse(BAT)[prise])
print "activ.value %d" % PRISES_ACTIVES
PRISES_FIXES = 0
if multiprise != [] :
PRISES_FIXES = - len(multiprise)
for prise in multiprise :
PRISES_FIXES += len(reverse(BAT)[prise])
print "fixes.value %d" % PRISES_FIXES
PRISES_CRANS = len(uplink_prises[BAT].keys())
print "crans.value %d" % PRISES_CRANS
NB_PRISES = 0
for switch in all_switchs(BAT) :
try:
NB_PRISES += hpswitch(switch).nb_prises()
except:
NB_PRISES += 0
NB_PRISES += PRISES_FIXES
print "prises.value %d" % NB_PRISES
print "reste.value %d" % int(NB_PRISES - PRISES_ENABLE - PRISES_FIXES - PRISES_CRANS)
fichier = open(stats_batiments, 'r')
#NB_ADHERENT = 0 # Plus génant qu'autre chose
for line in fichier.readlines():
if line[3:4] == BAT and line[:3] == "bat" :
NB_ADHERENT = line[11:].strip()
print "adherent.value %s" % NB_ADHERENT
if BAT in BAT_CHBRES.keys() :
print "chbres.value %d" % BAT_CHBRES[BAT]
print "connues.value %d" % len(chbre_prises[BAT].keys())
else :
print "chbres.value %d" % len(chbre_prises[BAT].keys())