[MRTG] Apache load monitoren

Pagina: 1
Acties:

  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
Nou laat ik maar direct met de deur in huis vallen :)

Ik heb sinds kort het geweldige MRTG ontdekt ;)
Nou loopt alles in pricipe goed maar wil ik de load van mijn Apache service ook monitoren.
Alleen heb geen flauw idee hoe..
Oftewel de aantal hits op mn poort 80 zeg maar in een leuk MRTG grafiekje poten.
Jah ik weet dat het kan met Webalizer/Webstats etc etc etc.

Maar ik moet weer moeilijk doen het in MRTG hebben ;)
Nou kan ik hier niet errug veel over vinden.. zeg maar niks.
Wel over stats van IIS uitlezen onder Windows.. maar Apache niet...

Iemand die een iedeetje heeft hoe dit te realiseren valt?
Of of dit te realiseren valt. Das wel het belangrijkste...

Specs:
OS: Windows 2003 Standard Server SP1
Perl: ActivePerl 5.8
MRTG: 2.12.2
Apache: 1.3.29

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Wat dacht je van een wc -l op je access_log? Je moet iets hebben om te monitoren; dus heb je al bedacht waar deze info vandaan gaat komen?

offtopic:
RRDtool is nog veel geweldiger ;)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
WTF is een wc -l :P Jah het moet uit "een" of meerdere logs komen.
Want ook het error log bevat info van een connectie op de webserver.

En idd RDDTool is er ook.. maar vind die nogal fraai moeilijk.
En kan het daar mee?

[ Voor 9% gewijzigd door RammY op 04-06-2006 21:31 ]

Deze advertentieplaats is te huur!


  • Speedener
  • Registratie: September 2000
  • Laatst online: 15:34
Ik zou proberen het op basis te doen van de /server-status/ optie die in Apache zit.
Current Time: Sunday, 04-Jun-2006 21:41:34 CEST
Restart Time: Sunday, 04-Jun-2006 04:03:27 CEST
Parent Server Generation: 9
Server uptime: 17 hours 38 minutes 6 seconds
Total accesses: 575854 - Total Traffic: 5.9 GB
CPU Usage: u12.72 s4.53 cu.03 cs.01 - .0272% CPU load
9.07 requests/sec - 98.2 kB/second - 10.8 kB/request
2 requests currently being processed, 18 idle workers
Daar zou je genoeg mee moeten kunnen?

[ Voor 73% gewijzigd door Speedener op 04-06-2006 21:42 ]


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
How.... ben geen script held iig...

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Mjah; dan mis je een beetje het punt ben ik bang. Heel RRDtool en MRTG zijn pure datastorage & grafiekapplicaties; ze slaan data op en presenteren deze. Zoeken naar kant en klare plugins om de functionaliteit zoals je die in dit topic vraagt gaat gewoon op niets uitlopen; je zal dit zelf dmv batch danwel shellscripts in elkaar moeten zetten :) Als je dat niet wil / kan dan kunnen wij je ook niet echt veel verder helpen.

wc -l is een unix commando om het aantal regels in een file weer te geven

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

na als je op google ff zoekt op "mrtg apache" kom je genoeg tegen.
ik heb hetzelf ook eens ooit gehad hier trouwens.

  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
Kwa scripting word het dus zowiezo moeilijk omdat ik ook al aangaf dat de zooi op Windows draait...

Met Google vind ik circa 947.000 voor mrtg apache (0,31 seconden) op "mrtg apache" ....

Wat is dus NIET wil is traffic... wat ik dus WEL wil is load...

Ik ben het idd met Spider.007 eens dat hier geen plugins voor zullen zijn... maar hoe en wat moet er dan geschreven worden voor op Windows om die gegevens wel te krijgen...

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

RammY schreef op zondag 04 juni 2006 @ 20:06:
[...]

Nou loopt alles in pricipe goed maar wil ik de load van mijn Apache service ook monitoren.
Alleen heb geen flauw idee hoe..
Oftewel de aantal hits op mn poort 80 zeg maar in een leuk MRTG grafiekje poten.
Jah ik weet dat het kan met Webalizer/Webstats etc etc etc.

[...]
Laten we bij het begin beginnen; wat wil je nou precies bereiken. Je begint over de load; vervolgens noem je het aantal hits. Zolang niet duidelijk is wat jij in je grafiek wil hebben kunnen we je niet helpen. Wil je hits/seconde? Tijd die de gemiddelde hit kost? Tijd die Apache tot nu tot nodig heeft gehad voor zijn requests? Processorload afgelopen minuut? Processorload over het totaal? Processorload / hit? Dat zijn allemaal dingen die je in een grafiek kunt stoppen.

In ieder geval zal je eerst moeten bedenken wat je wilt; vervolgens waar je die data vandaan gaat halen en daarna hoe je die data in MRTG gaat krijgen. Dat kan dan heel goed met een batchscript want ook Windows ondersteunt gewoon scripting :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
Ok ok :P

Ik wil dus idd de hits per sec..

Ik ben nu ff bezig met een scriptje in perl.. even kijken of dit wil..

I'll keep you up to date.

Edit...
Hmm had dus een scriptje die info vanaf de status pagina zou halen... in perl.. maar dat werkt dus niet...
Hmmm Iemand anders iets? ;)

[ Voor 37% gewijzigd door RammY op 04-06-2006 23:40 ]

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

RammY schreef op zondag 04 juni 2006 @ 23:33:
[...]

Hmm had dus een scriptje die info vanaf de status pagina zou halen... in perl.. maar dat werkt dus niet...
Hmmm Iemand anders iets? ;)
Wat werkt er niet aan? Het ene moment ga je akkoord dat er geen kant-en-klare setup voor bestaat; het volgende moment verwacht je van ons je te kunnen zonder enige informatie te voorzien? ;) Perl is nou ook niet zo ingewikkeld dus dat moet je best werkend kunnen krijgen gok ik; zolang je iig Perl draait? :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
Je hebt gelijk :)

Dus.. nou komtie:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/perl

# what server are we polling?
$server=@ARGV[0];

# gather data
@data = `/usr/bin/lynx -dump -connect_timeout=30 http://$server/server-status?auto 2> /dev/null`;

if (@data[0] eq "") {
  # Uh oh!  Webserver might be down!
  printf "0\n0\n0\nthe core webserver\n";
} else {
  # Webserver is up
  # lets calculate hits
  @hits = split(/ /, @data[0]);
  printf "@hits[2]";

  # calculate bytes
#  @bytes = split(/ /, @data[1]);
#  printf ("%5.0f\n", ((@bytes[2]+0.5) * 1024));

  #calculate concurrent users
#  @users = split(/ /, @data[7]);
#  printf "@users[1]";
}


En dat zou ik dan weer met een cfg bestand voor mrtg kunnen draaien (dat stuk is dan wel bekend bij mij).

code:
1
2
3
4
5
6
7
8
Title[apache-hits]: apache server hits per second
MaxBytes[apache-hits]: 100000
PageTop[apache-hits]: Apache server hits per second
YLegend[apache-hits]: Hits per second
ShortLegend[apache-hits]: hits/s
Target[apache-hits]: `/usr/bin/env - TEMPDIR="/tmp/" /usr/bin/mrtg-collect-www-hits localhost`
LegendI[apache-hits]: Hits :
Options[apache-hits]: nopercent, integer


Nou.. natuurlijk klopt het pad niet.. maar als ik dat wijzig naar bijvoorbeeld D:/tmp/ oid... dan moet ik achteraan in de eerste regel ook wat neerzetten waar ie het naar toe mag kwakken om te verwijderen... daar hebben wij in Windows geen mooie mapping voor.. Ja prullenbak :P maar dat zal ie vast niet pakken :)

Als ik dat weg haal en hm draai (ja de servernaam ook ingesteld).
krijg ik:
code:
1
2
3
4
0
0
0
the core webserver

DUs dat klopt ook nie echt...hij zou dus moeten weergeven of hij beschikbaar is e.d.

[ Voor 22% gewijzigd door RammY op 05-06-2006 00:07 ]

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Laat me raden '/usr/bin/lynx' bestaat niet op je systeem? Tip; download wget.exe vanaf http://unxutils.sf.org en zet het juiste pad in je perl file. Kom je dan verder?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
Euh misschien dat ik dom ben 8)7 maar snap het verband niet tussen wget en dat script.. toevallig heb ik het pakketje al wel.. maar waar word dan de koppeling gemaakt ...
Bedoel... snap hm nie helemaal zeg maar :)

wil je wget in de dir hebben waar Perl in staat?
Of moet ik het pad naar iets in die utils aangeven voor die -dump regel...
:?

EDIT:

Mijn 2e vermoeden geeft:
code:
1
2
3
4
5
Toegang geweigerd.
0
0
0
the core webserver


Edit2:
Ook zonder dat er voor... waarschijnlijk bij het connecten geeft ie dus een fout.. dus servernaam.. ding heet server. Met localhost of ip doet ie helemaal raar en zegtie dat er een fout in dat [0] zou zitten :?


Nou ik ben dus zover dat hij met wget wat zou moeten ophalen... -dump etc.. maar dat -dump scheint niet te werken.
Het gekke is dat er achter aan >2 en dan een verwijzing naar een map/drive is.
Nou.. dat krijg ik niet voor elkaar...
alleen met die -dump ...
vet vaaaaaaaag :)

[ Voor 52% gewijzigd door RammY op 05-06-2006 01:23 ]

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

RammY schreef op maandag 05 juni 2006 @ 00:15:
Euh misschien dat ik dom ben 8)7 maar snap het verband niet tussen wget en dat script.. toevallig heb ik het pakketje al wel.. maar waar word dan de koppeling gemaakt ...
Bedoel... snap hm nie helemaal zeg maar :)
In je Perl script staat een aanroep naar lynx; heb je die op je systeem staan? Zo nee, dan is wget een mooie vervanger
[...]

Nou ik ben dus zover dat hij met wget wat zou moeten ophalen... -dump etc.. maar dat -dump scheint niet te werken.
Het gekke is dat er achter aan >2 en dan een verwijzing naar een map/drive is.
Nou.. dat krijg ik niet voor elkaar...
alleen met die -dump ...
vet vaaaaaaaag :)
Die '2> dev/null' kun je eruit halen; want Windows kent volgens mij helemaal geen stdout en stderr; maar zeker geen /dev/null. Daarnaast weet ik niet hoe je aan '-dump' komt; maar weet ik wel dat je met een 'wget -qO -' redelijk ver zou moeten komen :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
Hmm ok.. zal er vanavond eens even mee aan de gang gaan..
Ik ben iig al wel zover dat ik het kan weg laten schrijven in een file... maar die -dump vind ik iid ook erg vreemd.

Zal het even proberen met de -qO enzoow...

I'll keep you up to date... ;)

Deze advertentieplaats is te huur!


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
ok... ik krijg nu een waarde terug.. .dat Perl script is dus goed.. (Met hulp van Siper.007 :) )

Maar nu...
Want het andere script moet de "dump" uitlezen vanaf een dir.. maar ik schrijf het niet naar een dir.. :(

Wat ik dus nu in het Perl script heb is:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!C:/perl/bin/perl.exe

# what server are we polling?
#$server=@server[0];

# gather data
#@data = `wget.exe -dump http://server/server-status?auto 2> D:\tmp`;
@data = `D:/tmp/wget.exe -qO - http://server/server-status?auto`;

if (@data[0] eq "") {
  # Uh oh!  Webserver might be down!
  printf "0\n0\n0\nHij doet het niet\n";
} else {
  # Webserver is up
  # lets calculate hits
  @hits = split(/ /, @data[0]);
  printf "@hits[2]";
}


Het andere scritp voor MRTG wil dus wat halen uit:
code:
1
Target[apache-hits]: `/usr/bin/env - TEMPDIR="/tmp/" /usr/bin/mrtg-collect-www-hits localhost`


Maar hoeeee :) want zoals gezegd ik schrijf het niet naar een dir maar print het on screen...

[ Voor 65% gewijzigd door RammY op 05-06-2006 19:48 ]

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Maak van
-O -
dit
-O /dir/bestandsnaam
:?

[ Voor 12% gewijzigd door Spider.007 op 05-06-2006 19:53 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
hmm... tjah.. ok.. dat wil... ik dump dus nu de uitkomst van de pagina (oftewel de hele pagina) in een file..
Vind het wel gek dat dat de bedoeling is...

Want hoe kan het MRTG script er nu wijs uit worden welke waarde hij moet pakken :/

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Ik zie het al; je moet dus gewoon de eerste variant hebben; die wordt door de daaropvolgende `split` uitgelezen; vervolgens door printf ge-echo-ed; en vervolgens door MRTG opgepakt. Misschien wordt het nu tijd dat je eens gaat Googlen voordat je hier een vraag neerplempt die je met minimale inzet zelf had kunnne regelen? :)

[ Voor 12% gewijzigd door Spider.007 op 06-06-2006 19:08 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
euh nie om vervelend te doen O-)

Het zijn gewoon 2 scripts dus de communicatie tussen deze 2 scripts kan naar mijn idee alleen maar als die ene wat uitpoept en de ander het weer uit leest...

Dan heb jij het over die split.. zal dus die 2> zijn... nou... daar kan ik op googlen tot ik n ons weeg :P maar veel snap ik er niet van, laat staan dat ik er veel over vind over dat 2> :/
Das al helemaal vaaaaaag....

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Perl:
16
17
  @hits = split(/ /, @data[0]);
  printf "@hits[2]";

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
OK...

Ik heb geen flauw idee waarom ik zo moeilijk deed :P
Maar heb de output in een file staan.. :)
code:
1
2
3
4
5
6
7
8
9
#!C:/perl/bin/perl.exe
# gather data
@download = `D:/tmp/wget.exe -qO - server/server-status?auto`;
 {
  @hits = split(/ /, @download[0]);
  open (MYFILE, '+<hitjes.txt'); 
  printf MYFILE "@hits[2]";
  close (MYFILE); 
}


Nu moet ik dus met MRTG die file inlezen...
Is een file in de Target optie van MRTG gewoon niet mogelijk of zie ik dat verkeerd ....

Deze advertentieplaats is te huur!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Nee, je moet helemaal geen file inlezen; dat script en de juiste wget parameters werkt perfect; MRTG verwacht namelijk invoer via de stdin (ge-echo-ed dus) dus er is geen enkele reden om dat getal in een file te stoppen

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Oezie Woezie
  • Registratie: December 1999
  • Niet online

Oezie Woezie

Pim. is de beste

een mooi Tshirt met Pim. is de beste enzo


  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 04-02 17:24
Apache 1.3 & 2.0
A module to monitor the number of bytes passed to and from a virtual host or local user. Intended for use with MRTG.
Dat is dus niet wat ik wil he... traffic meet ik al.. das geen probleem.
Even een update trouwens.. .drukjes weekend enzow ;) dus nog even niet aan het prutsen geweest.
Morgen weer :)

Deze advertentieplaats is te huur!

Pagina: 1