Dataverkeerstatistieken over 50 servers

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • chronoz
  • Registratie: Maart 2010
  • Laatst online: 09-10-2022
Wij hebben ongeveer 50 virtuele machines draaien. Ik heb collectd, graphite en grafana geinstalleerd en we hebben ongeveer dataverkeer-statistieken als deze:

Dat produceert een grafiek als deze:
Afbeeldingslocatie: https://i.imgur.com/IYccyFkl.png

De lijnen zijn inkomend en uitgaand bandbreedte in kB/sec, maar ik zou graag statistieken hebben die mij kunnen zeggen hoeveel dataverkeer in GB's er is gebruikt tussen 09:00 en 17:00 over de gehele farm.

Wat zou een goede manier zijn om over een groep servers te achterhalen hoeveel dataverkeer deze hebben gebruikt?

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 19:28

Hero of Time

Moderator LNX

There is only one Legend

Switches uitlezen waar ze aan hangen en monitoren hoeveel er door de poortjes zijn gegaan?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • chronoz
  • Registratie: Maart 2010
  • Laatst online: 09-10-2022
Ja, het is een cloud-achtige omgeving, dus ik heb niet echt toegang tot de switches.

Ik ben nu bezig met een bash-scriptje dat ongeveer het volgende doet:
#!/bin/bash

HOSTNAME=`hostname -s`
INTERVAL="10"

while sleep "$INTERVAL"; do
    RX=`cat /sys/class/net/$1/statistics/rx_bytes`
    TX=`cat /sys/class/net/$1/statistics/tx_bytes`
    DATE=`date +'%s'`
    echo "$HOSTNAME.network.rx $RX $DATE" | nc graphite.hostname 2003
    echo "$HOSTNAME.network.tx $TX $DATE" | nc graphite.hostname 2003
done

Maar ik heb het gevoel dat ik het me een beetje moeilijk maak op deze manier en dit script heeft enkele problemen:
1) Bij een reboot van de server worden de dataverkeerstatistieken van de netwerk interface hersteld naar 0.
2) Om dat op te lossen moet ik elke 10 seconden bijhouden wat het aantal verzonden bytes is. Dat zou een oplossing kunnen zijn, maar ik weet niet of mijn aanpak wel de makkelijkste is.
3) Ik zou er een service omheen moeten bouwen, omdat het een zelfstandig script is dat automatisch zou moeten draaien bij het opstarten van een server.

Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-09 22:07

MAX3400

XBL: OctagonQontrol

Ik weet dat we in NOS zitten en dat er mogelijk wat meer diepgang benodigd is maar ik lees:

- bij reboots is het weg
- het liefst data van tijd A tot tijd B
- automagisch draaien & bijhouden

Zit je niet gewoon met de verkeerde tools te spelen? In mijn allersimpelste onschuld; vnstat blijft in principe intact na een reboot, de inhoud van de database kan je dumpen/parsen maar het grote nadeel is dat je maar 1 eth per instance kan monitoren.

Anders kan je misschien nog iets met (gedeelten van) Netflow of Webmin-plugins realiseren; niet allemaal erg hoogstaand qua user-friendliness maar wel redelijk "proven"?

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • 0 Henk 'm!

  • chronoz
  • Registratie: Maart 2010
  • Laatst online: 09-10-2022
Je hebt gelijk. Ik denk dat ik misschien met de verkeerde tools aan het spelen ben.

Kan vnstat wel dataverkeerstatistieken van meerdere servers bijhouden of moet je dan apart op elke server inloggen om te zien hoeveel die heeft verwerkt in dat uur.

Acties:
  • +2 Henk 'm!

  • Basz0r
  • Registratie: April 2009
  • Niet online
Je zou een server kunnen inrichten met Cacti. En interface statistieken op de 50 servers vergaren met SNMP. Je kan dan in Cacti een grafieken pagina inrichten met de 50 interfaces. De grafieken kun je dan weergeven op basis van tijd, en dat geld dan voor alle grafieken in die pagina.

Acties:
  • +1 Henk 'm!

  • ik222
  • Registratie: Maart 2007
  • Niet online
Mogelijk kun je ook eens kijken naar Observium. Dat is een opensource tool die hetgeen jij wilt hebben voor switch / router poorten via SNMP standaard kan. Unix achtige besturingssystemen worden ook ondersteund maar daar gebruik ik het zelf niet voor, ik weet dus niet zeker of je dan ook de verkeersgrafieken hebt.

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 30-09 08:10
chronoz schreef op maandag 27 juni 2016 @ 12:18:
De lijnen zijn inkomend en uitgaand bandbreedte in kB/sec, maar ik zou graag statistieken hebben die mij kunnen zeggen hoeveel dataverkeer in GB's er is gebruikt tussen 09:00 en 17:00 over de gehele farm.
Grafana kan met InfluxDB als backend sowieso een integraal over een inputwaarde berekenen. Waarschijnlijk met Graphite ook wel?

Ik snap niet helemaal waarom je nu met bashscripts in de weer bent voor iets dat collectd voor je zou moeten doen. Levert de traffic plugin niet voldoende om bovenstaande af te leiden?

Zou in ieder geval niet te snel teruggrijpen op Cacti & co, is in theorie stukken minder flexibel dan Grafana..

Acties:
  • 0 Henk 'm!

  • chronoz
  • Registratie: Maart 2010
  • Laatst online: 09-10-2022
Je hebt gelijk. Ik vind Cacti en Observium erg mooie tools en die produceren inderdaad per server mooie dataverkeer-statistieken die ik nodig heb, maar die statistieken zijn weer niet op te tellen over meerdere servers en een hele server-farm.

Graphite kan dan weer mooie wiskunde doen, maar van die wiskunde geraak ik in de war.

Mijn doel: het hebben van het aantal verstookte GB's in een timeframe voor meerdere servers
De data die ik heb: current bandwidth usage per server van collectd-if (zie de grafiek)
De data die ik probeer te verzamelen: het verschil in verstookte data over de laatste 10 seconden, zodat ik die datapunten later kan optellen en het aantal verstookte bytes heb, maar dit is nog best lastig en complex.
Waar ik naar kijk: heel veel functies als sumSeries, maar dat is volgens mij iets anders.

De traffic plug-in standaard in collectd verzamelt alleen traffic (octets(=bytes) per second), packets per second and errors of interfaces.

Acties:
  • 0 Henk 'm!

  • chronoz
  • Registratie: Maart 2010
  • Laatst online: 09-10-2022
Thralas schreef op maandag 27 juni 2016 @ 23:07:
[...]
Grafana kan met InfluxDB als backend sowieso een integraal over een inputwaarde berekenen. Waarschijnlijk met Graphite ook wel?
Jij zegt dat de integraal-grafiek de totale hoeveelheid dataverkeer zou moeten zijn?

Afbeeldingslocatie: https://i.imgur.com/8KaLedth.png

Ik heb een integraal grafiek gemaakt, maar volgens mij klopt de data dan alleen niet?
Afbeeldingslocatie: https://i.imgur.com/7WrAPJDh.png

Hier is een integraal-grafiek vermenigvuldigd met 60 en nu lijkt het beter te kloppen, maar ik weet niet of ik gewoon zit te spelen met getalletjes. Er is steeds 1 datapunt van MBps per 60 seconden.
Afbeeldingslocatie: https://i.imgur.com/XoAUKVYh.png

[ Voor 33% gewijzigd door chronoz op 28-06-2016 12:50 ]


Acties:
  • 0 Henk 'm!

  • Demo
  • Registratie: Juni 2000
  • Laatst online: 30-09 11:31

Demo

Probleemschietende Tovenaar

Wat klopt er volgens jou niet dan? Er zit toch een heel duidelijk verband tussen de pieken in de bovenste grafiek en het oplopen van de onderste?

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done


Acties:
  • 0 Henk 'm!

  • chronoz
  • Registratie: Maart 2010
  • Laatst online: 09-10-2022
De server doet 10MBps voor 3 minuten. Dat zou 10*60*3=1800MB moeten zijn. De grafiek komt niet hoger dan 50 miljoen, dat is 50 MB.

Er is 1 datapunt van bytes/sec per 1 minuut, vandaar mijn logica.

[ Voor 20% gewijzigd door chronoz op 28-06-2016 13:13 ]


Acties:
  • 0 Henk 'm!

  • chronoz
  • Registratie: Maart 2010
  • Laatst online: 09-10-2022
Het lijkt erop dat de grafiek van de integraal met scale 60 (vermenigvuldigd met 60) de correcte statistieken produceert. Ik snap nog niet helemaal waarom het *60 moest zijn, maar het komt overeen met de testen.

Ik heb vanmiddag ifconfig eth0 gedraaid om 15:10 en om 15:30 en de statistieken komen overeen met de grafiek van de integraal + scale 60 van bytes/sec.

Ik denk dat het ermee te maken heeft met het feit dat er 1 datapunt is per 60 seconden, maar ik weet het niet zeker. Het is al lang geleden dat ik met wiskunde bezig geweest ben.

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Klopt. Collectd stuurt een gemiddelde van de afgelopen periode per seconde. Als je dat als integraal wilt hebben moet je t dus eerst vermenigvuldigen met de tijd tussen samples.

All my posts are provided as-is. They come with NO WARRANTY at all.

Pagina: 1