Sziasztok!
Sajnos nem vagyok jártas a munin plugin írásában és mivel nem leltem ehhez kapcsolódó használható anyagot, gondoltam hozzátok fordulok segítségül. Remélem tudtok segíteni.
A feladat: Egy rendszer mûködése során eltérõ eseményet naplózunk több naplófájlba. Ezekbõl a log-fájlból kellene kibogarászni azt, hogy egy adott esemény hányszor következett be és ezeket meg kellene jeleníteni egy erre alkalmas grafikonon. Mivel a naplózások során az események ugye hozzáfûzõdnek a naplófájlhoz, ezért a naplófájlból minden 5 percben vett érték csak egy egyre magasodó grafikont adna, ami nem volna jó. Sokkal inkább ezek változását kellene megjeleníteni, tehát hogy a mintavételek között mennyi volt a különbség, vagyis a jelenlegi érték és az elõzõleg vett érték különbségére vagyunk kíváncsiak. Kis nehézség hogy ugye bizonyos napszakban log rotate kövtkezik be, amellyel sajnos számolni kell.
Íme a jelenlegi megoldásom sajnos nem mûködik rendesen.
#!/bin/sh
if [ "$1" = "autoconf" ]; then
echo yes
exit 0
fi
if [ "$1" = "config" ]; then
echo 'graph_title NumOfEvents'
echo 'graph_category Log'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel log'
echo 'graph_scale no'
echo 'graph_info Esemenyek szama'
echo 'resol.label resol'
echo 'resol.draw line2'
echo 'resol.type COUNTER'
echo 'nsess.label received';
echo 'nsess.type COUNTER';
echo 'nsess.graph no';
echo 'nsess.cdef down,10,*';
# echo 'nsess.label nsess'
# echo 'nsess.type COUNTER'
# echo 'nsess.draw line2'
exit 0
fi
Location1=/var/log/filenev1.log;
Location2=/var/log/filenev2.log;
Result1="0";
Result2="0";
if test -f $Location1 ; then #ha letezik filenev1.log
Result1=`cat $Location1 | grep 'Keresett_szoveg_1' | wc -l` ;
fi
if test -f $Location2 ; then #ha letezik filenev2.log
Result2=`cat $Location2 | grep 'Keresett_szoveg_2' | wc -l`;
fi
echo -n "resol.value ";
echo $Result1;
echo -n "nsess.value ";
echo $Result2;
- 1414 megtekintés
Hozzászólások
Ezzel szerintem egy kis elvi problema is van... Egyaltalan mit szeretnel latni a grafikonon? Ha azt mutatja, hogy 14 akkor az mit fog jelenteni? Hogy az elmult oraban 14 ilyen esemeny volt? Vagy hogy a logfile-okban osszesen 14 ilyen esemeny van? Vagy mit? Szerintem ha erre tudsz valaszolni, akkor mar azt is fogod tudni mit/hogyan kellene keresned a logfileok-ban.
Amugy:
http://munin.projects.linpro.no/wiki/HowToWritePlugins
- A hozzászóláshoz be kell jelentkezni
A masik hasznos szinte ugyanott:
http://munin.projects.linpro.no/wiki/protocol-config
Valoszinuleg derive vagy counter tipusu grafikont szeretnel...
- A hozzászóláshoz be kell jelentkezni
Ha nem ragaszkodsz a muninhoz, akkor pl a logcheck is jó megoldás lehet.
- A hozzászóláshoz be kell jelentkezni
Ha COUNTER vagy DERIVE a mezo tipusa (akarmi.type) akkor lehet folyamatosan novo az ertek, munin majd kiszamolja a ket lekerdezes kozotti kulonbseget (doksiban olvass utana miben mas a ket tipus)
A munin a tulcsordulast is kezeli (de szinten doksi, hogyan!)
a 'nsess.graph no'-t nemertem, azt a 'akarmi.negative nsess'-el szoktak hasznalni, ilyenkor lefel az egyik erteket mutatja, felfele a masikat (pl ethX in/out)
Erdemes meg berakni a
#%# family=auto
#%# capabilities=autoconf
sorokat (nezd meg a tobbi plugint hova kell), ilyenkor munin-node-configure automatikusan bekapcsolja a plugint.
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Üdv!
Akkor megpróbálok egyszerre válaszolni mindenkinek :-)
traktor:
Amit látni szeretnék, az az hogy az elõzõ mintavételtõl számítva (vagy lehet akár az elõzõ x percre, vagy órára számítva is ) mennyi esemény történt az adott típusból. Tehát a logfájlok olvasása során nem az aktuális értékre vagyok kíváncsi, mert ugye az monoton növekszik ( de legalábbis nem csökken csak logrotate idején ). Ezért a 14 az t1 és t2 idõpontok között a logfájlba beleírt események száma.
Amiért ez nem megoldható a fent leírottakkal, hogy a logfájl olvasásakor nem ismered az elõzõ értéket, hanem mindig csak az aktuálisat, nem látod azóta mennyi esemény íródott bele. Ezért a GAUGE típus kilõve. A COUNTER és a DERIVE látszólag megfelelnek (pl. logrotate-hez, túlcsorduláshoz kínál megoldást), de ezek inkább az értékek változásainak egymáshoz képesti arányát szemlélteti, és nem a változás értékét. (ezek kb. olyan ok mintha a diszkrét pontokból felépített függvényt deriválnád)
Amit belinkeltél hasznos kis olvasmány, de sajna ehhez nem elég.
Elméletilet megtehetném még azt, hogy az aktuális értéket eltárolom egy fájlban, vagy egy környezeti változóban az következõ végrehajtás számára, de igazából ez egy nagyon hákolt megoldás lenne és nem hiszem el, hogy nincs ettõl elegánsabba, amit a munin biztosítana...
sztanyoo:
Sajnos ennél a melónál most muninnal kell dolgoznom :-( de azért köszönöm az ötletet, utána nézek hogy mik benne a lehetõségek
blajo:
Igen, elsõre én is erre gondoltam, de azt hiszem hogy ezek sajnos nem lesznek jók. ( Több probléma is akadt, pl. hogy kezdetben nem rendeli értékhez az elsõ pár beszírást, minden pontoz csak 0.0-t ír ki oldalt akárhogy skálázom, vagy ha esetleg csökkenés lenne (pl. nem betervezett logrotat-e, véletlenül törölt naplófájl), akkor milliós értékekbe emeli a függvény értéketit - szóval megbolondul)
Mellesleg köszi a linket, ez mindenképpen jól jön.
Elbandi:
Igen, azt ott valóban elírtam, eredetileg a kikommentezett részt használtam, csak az ide beküldött példához elfelejtettem kivenni a próbálkozást :) A javaslatodat utólag beleírtam, valóban hasznos.
Sajnos még mindíg nem sikerült megoldani a problémát, ezért ha vannak további ötletek, azoknak nagyon örülnék :)
- A hozzászóláshoz be kell jelentkezni
hat en akkor nemertem mit is akarsz latni: a munin periodikusan kerdez le: t1 es t2 kozott 14 esemeny szuletett (ezt vagy directben kapja, vagy counter/derive segitsegevel szamolja), aztan 14-et elosztja a ket idopont kulonbsegevel, igy jon ki hogy percenkent 1.23 esemeny lett.
Elbandi
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
halika!
írni még nem írtam plugint, de nézegettem őket :D
és én ebből indulnék ki:
http://muninexchange.projects.linpro.no/?search=&cid=14&os[4]=on&os[7]=…
az auth.log-ot olvasgatja és szedi ki belőle a számára érdekes eseményeket...
és itt szépen meg van oldva hogy mindíg csak az utolsó futás óta keletkezett logot olvassa :P
- A hozzászóláshoz be kell jelentkezni