getting all MIB instead the fields from XML

Templates, scripts for templates, scripts and requests for templates.

Moderators: Developers, Moderators

Post Reply
thermoman
Posts: 11
Joined: Sun Jul 23, 2006 6:48 am

getting all MIB instead the fields from XML

Post by thermoman »

Hi,

i'm currently trying to monitor a Nortel Alteon 184 Content-Switch with Loadbalancing features.

I got the mib files including the .index file and put the mibs in /usr/share/snmp/mibs and added the content of .index to /usr/share/snmp/mibs/.index

All fine so far:

Code: Select all

# snmpwalk Device-IP ALTEON-PRIVATE-MIBS::slbStatRServerIndex
ALTEON-PRIVATE-MIBS::slbStatRServerIndex
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.1 = INTEGER: 1
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.2 = INTEGER: 2
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.3 = INTEGER: 3
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.4 = INTEGER: 4
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.5 = INTEGER: 5
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.11 = INTEGER: 11
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.12 = INTEGER: 12
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.13 = INTEGER: 13
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.14 = INTEGER: 14
ALTEON-PRIVATE-MIBS::slbStatRServerIndex.15 = INTEGER: 15

# snmpwalk Device-IP ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.1 = STRING: "www1.mydomain.tld"
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.2 = STRING: "www2.mydomain.tld"
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.3 = STRING: "www3.mydomain.tld"
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.4 = STRING: "www4.mydomain.tld"
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.5 = STRING: "www5.mydomain.tld"
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.11 = STRING: "www1.otherdomain.tld"
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.12 = STRING: "www2.otherdomain.tld"
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.13 = STRING: "www3.otherdomain.tld"
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.14 = STRING: "www4.otherdomain.tld"
ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName.15 = STRING: "www5.otherdomain.tld"

# snmpwalk Device-IP ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.1 = Gauge32: 45
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.2 = Gauge32: 60
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.3 = Gauge32: 31
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.4 = Gauge32: 47
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.5 = Gauge32: 60
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.11 = Gauge32: 53
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.12 = Gauge32: 69
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.13 = Gauge32: 69
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.14 = Gauge32: 63
ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions.15 = Gauge32: 55
As you can see ALTEON-PRIVATE-MIBS::slbStatRServerIndex gives me 1-5 and 11-15, ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName the name of each real server and finally ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions exposes the current sessions the loadbalancer is distributing to the realservers.

So i hacked together my own XML file:

Code: Select all

# cat resource/snmp_queries/alteon.xml
<interface>
        <name>Alteon Real Server Information</name>
        <description>Queries a Nortel Alteon for Real Server Sessions</description>
        <oid_index>ALTEON-PRIVATE-MIBS::slbStatRServerIndex</oid_index>
        <index_order_type>numeric</index_order_type>

        <fields>
                <slbStatRServerIndex>
                        <name>Index</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>input</direction>
                        <oid>ALTEON-PRIVATE-MIBS::slbStatRServerIndex</oid>
                </slbStatRServerIndex>
                <slbCurCfgRealServerName>
                        <name>Name</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>input</direction>
                        <oid>ALTEON-PRIVATE-MIBS::slbCurCfgRealServerName</oid>
                </slbCurCfgRealServerName>

                <slbStatRServerCurrSessions>
                        <name>Current Sessions</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>ALTEON-PRIVATE-MIBS::slbStatRServerCurrSessions</oid>
                </slbStatRServerCurrSessions>
                <slbStatRServerHighestSessions>
                        <name>Highest Sessions</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>ALTEON-PRIVATE-MIBS::slbStatRServerHighestSessions</oid>
                </slbStatRServerHighestSessions>
        </fields>
</interface>
Problem is: When adding this data query to an Alteon 184 i get way to much results (Success [156 Items, 78 Rows]) and doing a verbose query reveals that cacti gets the complete tree instead only the values i asked for:
+ Running data query [10].
+ Found type = '3' [snmp query].
+ Found data query XML file at '/usr/share/webapps/cacti/active/htdocs/resource/snmp_queries/alteon.xml'
+ XML file parsed ok.
+ Executing SNMP walk for list of indexes @ 'ALTEON-PRIVATE-MIBS::slbStatRServerIndex'
+ Located input field 'slbStatRServerIndex' [walk]
+ Executing SNMP walk for data @ 'ALTEON-PRIVATE-MIBS::slbStatRServerIndex'
+ Found item [slbStatRServerIndex='Alteon 184'] index: 0 [from value]
+ Found item [slbStatRServerIndex='OID: .1.3.6.1.4.1.1872.1.9'] index: 0 [from value]
+ Found item [slbStatRServerIndex='5746518'] index: 0 [from value]
+ Found item [slbStatRServerIndex=''] index: 0 [from value]
+ Found item [slbStatRServerIndex=''] index: 0 [from value]
+ Found item [slbStatRServerIndex=''] index: 0 [from value]
+ Found item [slbStatRServerIndex='78'] index: 0 [from value]
+ Found item [slbStatRServerIndex='265'] index: 0 [from value]
+ Found item [slbStatRServerIndex='1'] index: 1 [from value]
+ Found item [slbStatRServerIndex='257'] index: 257 [from value]
+ Found item [slbStatRServerIndex='258'] index: 258 [from value]
+ Found item [slbStatRServerIndex='259'] index: 259 [from value]
+ Found item [slbStatRServerIndex='260'] index: 260 [from value]
+ Found item [slbStatRServerIndex='261'] index: 261 [from value]
+ Found item [slbStatRServerIndex='262'] index: 262 [from value]
+ Found item [slbStatRServerIndex='263'] index: 263 [from value]
+ Found item [slbStatRServerIndex='264'] index: 264 [from value]
+ Found item [slbStatRServerIndex='265'] index: 265 [from value]
+ Found item [slbStatRServerIndex='net0'] index: 1 [from value]
+ Found item [slbStatRServerIndex='utp ethernet (10/100)'] index: 257 [from value]
+ Found item [slbStatRServerIndex='utp ethernet (10/100)'] index: 258 [from value]
+ Found item [slbStatRServerIndex='utp ethernet (10/100)'] index: 259 [from value]
...
...
Could someone point me to the right direction what's wrong here?

Thanks.
Last edited by thermoman on Tue Jul 25, 2006 5:21 am, edited 1 time in total.
thermoman
Posts: 11
Joined: Sun Jul 23, 2006 6:48 am

Got it

Post by thermoman »

Hi,

i got it running.

After translating the OIDs to numeric OIDs (with snmpwalk -On) inside the XML file it's working now.

But i think this is a bug - it should work with non-numerical MIBs.

Greetings,
Marcel.
Post Reply

Who is online

Users browsing this forum: No registered users and 18 guests