Start a Conversation

This post is more than 5 years old

Solved!

Go to Solution

3523

June 11th, 2010 10:00

How do you monitor network stats ?

Hello guys,

looking for ideas on how to monitor network performance on my datamovers. I need to gather historical data for charting with perl, i was thinking of forking a process in perl that will run server_stat -table net ..and probably set it to some interval number. I will pipe that data to a flat file, pick it up from CS and graph it with GD::Graph.  I am not going to mess with mySQL nor Celerra ECC agents, simple flat files will do just fine.  How do you do it ?

4 Operator

 • 

8.6K Posts

June 11th, 2010 11:00

honestly I dont know

from what I heard these Celerra Manager stats arent kept in the NASDB and it uses a file format that wouldnt be easy to read from a 3rd party app

chances are its going to change in the next major DART code anyway

the nice thing about DPA is that you can setup jobs so it runs reports automatically and email them, or saves them to a dir or publishs them to a web server

if you you want is some graphs about interface I/O I wouldnt re-invent the wheel

for that you can use SNMP and MRTG

chances are that someone in your organization is already running MRTG (the network guys like it for routers) - for them it would be only a couple of lines in the config to accomdate you and since it compacts the data it doesnt use much space

Rainer

4 Operator

 • 

8.6K Posts

June 11th, 2010 10:00

EMC DPA (Data Protection Advisor) - the Celerra license is quite affordable

9 Legend

 • 

20.4K Posts

June 11th, 2010 10:00

i have DPA for my Avamar environment, not the most intuitive product i've ever used to be honest with you.  Common Rainer ..tell me how to  query nasdb or whatever it is that Celerra monitor is using to store the data?

9 Legend

 • 

20.4K Posts

June 11th, 2010 11:00

Do you run snmpwalk on the control station ? I just tried and it Timed out.

9 Legend

 • 

20.4K Posts

June 11th, 2010 11:00

i have no problem graphing the data, how do i capture it other than runing server_stats ?

4 Operator

 • 

8.6K Posts

June 11th, 2010 11:00

SNMP MIB-II - even server_netstat uses that to get the info from the data mover :-)

try a snmpwalk -Cc server_2 public  to see whats in there

http://www.oidview.com/mibs/0/RFC1213-MIB.html

Rainer

4 Operator

 • 

8.6K Posts

June 11th, 2010 12:00

Thats not very difficult to figure out

(even though I think the S for simple in SNMP is a misnowner )

9 Legend

 • 

20.4K Posts

June 11th, 2010 12:00

2700 entries, wow ..i can't figure out which counters represent network stats.

4 Operator

 • 

8.6K Posts

June 11th, 2010 12:00

sorry - syntax changed - see what your community string is set to and then try  snmpwalk -v 1 -c public server_2

yes, I've done it on the control station

[nasadmin@nstest ~]$ snmpwalk -v 1 -c public server_2 | wc -l
644

9 Legend

 • 

20.4K Posts

June 11th, 2010 13:00

i'll be honest i have zero, null experience with snmp ...can you help me identify those counters. Nothing jumps out at me.

Thank you

4 Operator

 • 

8.6K Posts

June 11th, 2010 14:00

come on :-)  its all in the oidview link - attached is how to dump the interface stats table

I would still recommend the MRTG route since these are only counters - no bytes per second

you would have to compute that for yourself plus deal with the counters overflowing, getting reset, and so on

MRTG already has all that logic builtin

the ifInOctets / ifOutOctets are the same as InBytes / OutBytes in netstat -i

Rainer

----

[nasadmin@nstest ~]$ snmpwalk -v 1 -c public server_2 1.3.6.1.2.1.2
IF-MIB::ifNumber.0 = INTEGER: 6
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
IF-MIB::ifIndex.4 = INTEGER: 4
IF-MIB::ifIndex.5 = INTEGER: 5
IF-MIB::ifIndex.6 = INTEGER: 6
IF-MIB::ifDescr.1 = STRING: mge0
IF-MIB::ifDescr.2 = STRING: mge1
IF-MIB::ifDescr.3 = STRING: cge0
IF-MIB::ifDescr.4 = STRING: cge1
IF-MIB::ifDescr.5 = STRING: cge2
IF-MIB::ifDescr.6 = STRING: cge3
IF-MIB::ifType.1 = INTEGER: iso88023Csmacd(7)
IF-MIB::ifType.2 = INTEGER: iso88023Csmacd(7)
IF-MIB::ifType.3 = INTEGER: iso88023Csmacd(7)
IF-MIB::ifType.4 = INTEGER: iso88023Csmacd(7)
IF-MIB::ifType.5 = INTEGER: iso88023Csmacd(7)
IF-MIB::ifType.6 = INTEGER: iso88023Csmacd(7)
IF-MIB::ifMtu.1 = INTEGER: 9000
IF-MIB::ifMtu.2 = INTEGER: 9000
IF-MIB::ifMtu.3 = INTEGER: 9000
IF-MIB::ifMtu.4 = INTEGER: 9000
IF-MIB::ifMtu.5 = INTEGER: 9000
IF-MIB::ifMtu.6 = INTEGER: 9000
IF-MIB::ifSpeed.1 = Gauge32: 100000000
IF-MIB::ifSpeed.2 = Gauge32: 100000000
IF-MIB::ifSpeed.3 = Gauge32: 1000000000
IF-MIB::ifSpeed.4 = Gauge32: 1000000000
IF-MIB::ifSpeed.5 = Gauge32: 1000000000
IF-MIB::ifSpeed.6 = Gauge32: 1000000000
IF-MIB::ifPhysAddress.1 = STRING: 0:60:16:19:54:5e
IF-MIB::ifPhysAddress.2 = STRING: 0:60:16:19:54:5f
IF-MIB::ifPhysAddress.3 = STRING: 0:60:16:15:2e:22
IF-MIB::ifPhysAddress.4 = STRING: 0:60:16:15:2e:23
IF-MIB::ifPhysAddress.5 = STRING: 0:60:16:15:2e:24
IF-MIB::ifPhysAddress.6 = STRING: 0:60:16:15:2e:25
IF-MIB::ifAdminStatus.1 = INTEGER: up(1)
IF-MIB::ifAdminStatus.2 = INTEGER: up(1)
IF-MIB::ifAdminStatus.3 = INTEGER: up(1)
IF-MIB::ifAdminStatus.4 = INTEGER: up(1)
IF-MIB::ifAdminStatus.5 = INTEGER: up(1)
IF-MIB::ifAdminStatus.6 = INTEGER: up(1)
IF-MIB::ifOperStatus.1 = INTEGER: up(1)
IF-MIB::ifOperStatus.2 = INTEGER: up(1)
IF-MIB::ifOperStatus.3 = INTEGER: up(1)
IF-MIB::ifOperStatus.4 = INTEGER: down(2)
IF-MIB::ifOperStatus.5 = INTEGER: down(2)
IF-MIB::ifOperStatus.6 = INTEGER: down(2)
IF-MIB::ifLastChange.1 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.2 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.3 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.4 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.5 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.6 = Timeticks: (0) 0:00:00.00
IF-MIB::ifInOctets.1 = Counter32: 2585485796
IF-MIB::ifInOctets.2 = Counter32: 1807755174
IF-MIB::ifInOctets.3 = Counter32: 163156233
IF-MIB::ifInOctets.4 = Counter32: 983451
IF-MIB::ifInOctets.5 = Counter32: 0
IF-MIB::ifInOctets.6 = Counter32: 0
IF-MIB::ifInUcastPkts.1 = Counter32: 20237838
IF-MIB::ifInUcastPkts.2 = Counter32: 8526892
IF-MIB::ifInUcastPkts.3 = Counter32: 829582703
IF-MIB::ifInUcastPkts.4 = Counter32: 1
IF-MIB::ifInUcastPkts.5 = Counter32: 0
IF-MIB::ifInUcastPkts.6 = Counter32: 0
IF-MIB::ifInNUcastPkts.1 = Counter32: 10454025
IF-MIB::ifInNUcastPkts.2 = Counter32: 6938962
IF-MIB::ifInNUcastPkts.3 = Counter32: 55027856
IF-MIB::ifInNUcastPkts.4 = Counter32: 10533
IF-MIB::ifInNUcastPkts.5 = Counter32: 0
IF-MIB::ifInNUcastPkts.6 = Counter32: 0
IF-MIB::ifInDiscards.1 = Counter32: 0
IF-MIB::ifInDiscards.2 = Counter32: 0
IF-MIB::ifInDiscards.3 = Counter32: 8
IF-MIB::ifInDiscards.4 = Counter32: 0
IF-MIB::ifInDiscards.5 = Counter32: 0
IF-MIB::ifInDiscards.6 = Counter32: 0
IF-MIB::ifInErrors.1 = Counter32: 0
IF-MIB::ifInErrors.2 = Counter32: 0
IF-MIB::ifInErrors.3 = Counter32: 0
IF-MIB::ifInErrors.4 = Counter32: 0
IF-MIB::ifInErrors.5 = Counter32: 0
IF-MIB::ifInErrors.6 = Counter32: 0
IF-MIB::ifInUnknownProtos.1 = Counter32: 2
IF-MIB::ifInUnknownProtos.2 = Counter32: 2
IF-MIB::ifInUnknownProtos.3 = Counter32: 36774772
IF-MIB::ifInUnknownProtos.4 = Counter32: 10365
IF-MIB::ifInUnknownProtos.5 = Counter32: 0
IF-MIB::ifInUnknownProtos.6 = Counter32: 0
IF-MIB::ifOutOctets.1 = Counter32: 1837021920
IF-MIB::ifOutOctets.2 = Counter32: 1438266974
IF-MIB::ifOutOctets.3 = Counter32: 3733019546
IF-MIB::ifOutOctets.4 = Counter32: 422
IF-MIB::ifOutOctets.5 = Counter32: 0
IF-MIB::ifOutOctets.6 = Counter32: 0
IF-MIB::ifOutUcastPkts.1 = Counter32: 26884404
IF-MIB::ifOutUcastPkts.2 = Counter32: 8186121
IF-MIB::ifOutUcastPkts.3 = Counter32: 1610715607
IF-MIB::ifOutUcastPkts.4 = Counter32: 2
IF-MIB::ifOutUcastPkts.5 = Counter32: 0
IF-MIB::ifOutUcastPkts.6 = Counter32: 0
IF-MIB::ifOutNUcastPkts.1 = Counter32: 234
IF-MIB::ifOutNUcastPkts.2 = Counter32: 12
IF-MIB::ifOutNUcastPkts.3 = Counter32: 174482
IF-MIB::ifOutNUcastPkts.4 = Counter32: 4
IF-MIB::ifOutNUcastPkts.5 = Counter32: 0
IF-MIB::ifOutNUcastPkts.6 = Counter32: 0
IF-MIB::ifOutDiscards.1 = Counter32: 0
IF-MIB::ifOutDiscards.2 = Counter32: 0
IF-MIB::ifOutDiscards.3 = Counter32: 0
IF-MIB::ifOutDiscards.4 = Counter32: 0
IF-MIB::ifOutDiscards.5 = Counter32: 0
IF-MIB::ifOutDiscards.6 = Counter32: 0
IF-MIB::ifOutErrors.1 = Counter32: 0
IF-MIB::ifOutErrors.2 = Counter32: 0
IF-MIB::ifOutErrors.3 = Counter32: 0
IF-MIB::ifOutErrors.4 = Counter32: 0
IF-MIB::ifOutErrors.5 = Counter32: 0
IF-MIB::ifOutErrors.6 = Counter32: 0
IF-MIB::ifOutQLen.1 = Gauge32: 0
IF-MIB::ifOutQLen.2 = Gauge32: 0
IF-MIB::ifOutQLen.3 = Gauge32: 0
IF-MIB::ifOutQLen.4 = Gauge32: 0
IF-MIB::ifOutQLen.5 = Gauge32: 0
IF-MIB::ifOutQLen.6 = Gauge32: 0
IF-MIB::ifSpecific.1 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.2 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.3 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.4 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.5 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.6 = OID: SNMPv2-SMI::zeroDotZero

9 Legend

 • 

20.4K Posts

June 14th, 2010 18:00

hey ..this was too easy, straight out of the box (Ubuntu 9.04) MRTG started collecting network stats for all interfaces, including management interfaces on each datamover.  I was hoping it would display other stats like datamover CPU load ..etc but this is a good start. Thank you Rainer very much !!!

6-14-2010 9-49-57 PM.jpg

190 Posts

June 15th, 2010 06:00

With gigabit interfaces and 32-bit counters, the counters can wrap in roughly 34 seconds when running at high speeds...100Mbits wrap in 5.7 minutes...  I have never been able to get the 64-bit counters (or snmp v2..) to work with our version of DART - so while you are getting something back, it is likely gibberish unless you never run over 100Mbits.  I monitor the switchports instead as my switch supports the 64bit counters.

Dan

4 Operator

 • 

8.6K Posts

June 15th, 2010 06:00

Hi dynamox,

you're very welcome!

told you its easier with MRTG :-)

the reason it works out-of-the-box is that this info is the standard MIB-II that every device implements that does SNMP.

I'm afraid there currently isnt much more than network stats that you can currently get via SNMP from the data mover.

I would appreciate if you (and any other customer that wants it) spend a couple of minutes filing a Product Enhancement Request (PER) via Powerlink to get more stats implemented in the data mover SNMP daemon.

a few more the network stats could be interesting, like some of the ip forwarding and error counters

also the number of TCP connections can give you an idea about the number of active clients (CIFS and NFS/TCP)

you could also poll the control station SNMP for some CS info - that one at least includes CS load and memory as well

It also shouldnt be too difficult to gather other stats via server_stats and feed them into MRTG

have fun

Rainer

9 Legend

 • 

20.4K Posts

June 15th, 2010 06:00

yeah, i read that you can have a custom script that will feed 4 values to MRTG and it will grapth it.  I might get creative with "server_stat -table dvol" .  Thanks again.

No Events found!

Top