Forum Discussion
Logan_Ramirez_5
Nimbostratus
Apr 01, 2010iControl web app to generate data for Cacti graphing
Ok, so I found this link the other day talking about how to use 'wget' instead of SNMP for Cacti graphing.
http://penguinman-techtalk.blogspot.com/2009/03/cacti-graphing-remote-service-...
Hamish
Cirrocumulus
Apr 02, 2010Hi.
SNMP used to get some data that iControl couldn't get. Some of the multi-cpu stuff for example you certainly couldn't in the past, that's changed but you may need the v10 iControl docs not the v9 ones).
(I'm talking about statistics here BTW and , not necessarily things like iRules although I've never tried to get iRules via SNMP a quick look at the MIB and there's nothing in the LOCAL mib for them - Sorry, thought I'd better qualify that now).
I'm not sure that I've explained myself very well about the complex data structures in Cacti. It will get data structures no problem (In SNMP they're really just tables). It's just not automatic. But then neither is iControl. The difference is that you're writing the software for iControl so you have complete control, whereas cacti is a framework that will pull stats for you. Of course you could write an app to pull the stats via SNMP instead of iControl too (And in theory it SHOULD be a lot more resource friendly. iControl isn't exactly light weight).
If you want to get poolmembership, etc... That is in SNMP too... But it's found on a table basis, rather than query and get a response. For example, to get poolmembers for a pool you simply query a table... The OID is built from poolName, addrType, poolMemberAddr and poolMemberPort (It's using the 4 entries as an index in the table).
That's the price of using SNMP of course... The S stands for Simple... And it is, but looks complex because you have to change the way you think to use it and understand it.
The data avilable for poolmembers for example is
LtmPoolMemberEntry ::=
SEQUENCE {
ltmPoolMemberPoolName LongDisplayString,
ltmPoolMemberAddrType InetAddressType,
ltmPoolMemberAddr InetAddress,
ltmPoolMemberPort INTEGER,
ltmPoolMemberConnLimit Integer32,
ltmPoolMemberRatio Integer32,
ltmPoolMemberWeight INTEGER,
ltmPoolMemberPriority INTEGER,
ltmPoolMemberDynamicRatio INTEGER,
ltmPoolMemberMonitorState INTEGER,
ltmPoolMemberMonitorStatus INTEGER,
ltmPoolMemberNewSessionEnable INTEGER,
ltmPoolMemberSessionStatus INTEGER,
ltmPoolMemberMonitorRule LongDisplayString,
ltmPoolMemberAvailabilityState INTEGER,
ltmPoolMemberEnabledState INTEGER,
ltmPoolMemberDisabledParentType Integer32,
ltmPoolMemberStatusReason LongDisplayString
}
Plus the stats in a different table...
Having said all that... when I built my stats system I used mainly iControl. Because it 'feels' better for getting the configs. However some stats (e.g. multi-cpu) weren't available in iControl. So they were gathered via SNMP... Maybe I should brush some of that code off and publish it... Now I have vLTM that might be a bit easier
It should also be possible to write an app that pulls information from an F5 and populates the cacti DB for gathering stats automatically too... It's something I've thought about in the past but never had the time
Also, if we're considering scalability, SNMP would be the best method of gathering data in Cacti... Being simple, it's also lightweight. Which is an important consideration when you're thinking about thousands of statistics. Not so much when yo've only got 1 F5 and 2 VS's... But IMO important nevertheless. When things grow it can mean the difference between working or not, especially since cacti degrades rather badly when the load gets too high.
H
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects