Portál AbcLinuxu, 15. května 2024 23:50

Munin pluginy

3.2.2009 20:51 | Přečteno: 1137× | Svět techniky

Pro získání statistik na serveru používám monitorovací nástroj Munin. Po nainstalování defaultních pluginů jsem některé nepotřebné odebral. Chyběly mi statistiky Bind serveru a také mě štvaly nefunkční statistiky Apache serveru.

Problémem Apache statistik bylo, že nastavení virtualhostů kolidovalo s defaultním nastavení mod_status. Řešení jsem našel zde a prostě jsem všechny virtualhosty nastavil na IP adresu serveru. Doufám, že to bude dlouhodobě funkční a nebude se to tlouct s nějakým budoucím plánem.

Pro Bind jsem našel několik pluginů, ale většina mi nefungovala správně nebo bylo přímo řečeno, že byly dlouho neaktualizované. V perlu bohužel neumím nic a tak sem je nechtěl upravovat. Inspiroval jsem se principem pluginu bind_rndc a naspal vlastní v bashi. Po nastavení Bindu tak, aby logoval pouze dotazy do speciálního souboru je tento plugin možno použít. Princip pluginu je takový, že v pomocném souboru je uložen počet řádek logovacího souboru. Při spuštění pluginu je zjištěn aktuální počet řádek logovacího souboru a odečteno číslo z pomocného souboru. Toto číslo je pak předáno jako výstup do RRD grafu. To znamená, že se loguje pouze počet řádek, což jistě nemusí být počet skutečných dotazů.

Plugin má mnoho nedostatků, kterých jsem si vědom. Určitě by šel napsat mnohem efektivněji. Jednoznačně by chtělo log soubor nějak parsovat například podle typu dotazu. Až si zas budu chtít hrát, tak zkusim tyto nedostatky vymazat. Pokud máte nějaké nápady jak kód zkvalitnit, prosím napište je v diskuzi

#!/bin/bash

#Munin plugin to store number of queries per time

# location of log file
QUERYLOG=/var/log/bind9/query.log
# location of help file
HELPFILE=/var/lib/munin/plugin-state/bind_queries.state

# Write config setting
if [ "$1" = "config" ]; then
    echo graph_title Bind queries
    echo 'graph_args --base 1000 -l 0'
    echo 'graph_category bind'
    echo "graph_vlabel queries per time"
    echo "queries.label queries"
    exit 0
fi

# Write autoconf setting
if [ "$1" = "autoconf" ] ; then
    if [ ! -r $QUERYLOG ] ; then
	echo no
	echo "Cannot read from querylog"
	exit -1
    elif [ ! -r $HELPFILE ] ; then
	echo no
	echo "Cannot read from helpfile"
	exit -1
    elif [ ! -w $HELPFILE ] ; then
	echo no
	echo "Cannot write to helpfile"
	exit -1
    else
	echo yes
	exit 0
    fi
fi			

# Old count of lines from helpfile
    exec < $HELPFILE
    read old
    
# Save new count of lines from querylog to helpfile
wc -l $QUERYLOG | cut -d " " -f 1 > $HELPFILE

# New count of lines from helpfile
    exec < $HELPFILE
    read new

# Write a result string
echo -n "queries.value "
if [ $new -ge $old ]; then
    minus=$(($new-$old));
    echo $minus
else
    echo $new
fi

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

3.2.2009 21:45 pinkolin | skóre: 10 | blog: pinkolinov
Rozbalit Rozbalit vše Re: Munin pluginy
Odpovědět | Sbalit | Link | Blokovat | Admin

Já mám tohle, můžu případně poskytnout source a nastavení bindu.

Quidquid latine dictum sit, altum viditur :-)

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.