[SOLVED] Advanced data queries:Foundry SI XL port statistics

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

Moderators: Developers, Moderators

Post Reply
sirhopcount
Posts: 5
Joined: Tue Mar 25, 2008 5:56 am

[SOLVED] Advanced data queries:Foundry SI XL port statistics

Post by sirhopcount »

Hi,

I have been trying to build a nice graph for our Foundry SI XL Loadbalancer for the past few days but i am running into some problems.

I am trying to graph the current connections on a virtual server port. I want to build an a graph that displays the current connections per virtual host, per port. To give you a small idea of the data, here are some samples:

(data has been anonymized )

MIB: .1.3.6.1.4.1.1991.1.1.4.9.1.1.1
MIB Name: VirtualServerPortStatusIndex
Description: This is the index of the virtual server ports.

Code: Select all

USER@HOST:~$snmpwalk -c PASSWORD -v 1 XXX.XXX.XXX.XXX .1.3.6.1.4.1.1991.1.1.4.9.1.1.1
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.1 = INTEGER: 1
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.2 = INTEGER: 2
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.3 = INTEGER: 3
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.4 = INTEGER: 4
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.5 = INTEGER: 5
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.6 = INTEGER: 6
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.7 = INTEGER: 7
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.8 = INTEGER: 8
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.9 = INTEGER: 9
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.10 = INTEGER: 10
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.1.11 = INTEGER: 11
...
...
...
MIB: .1.3.6.1.4.1.1991.1.1.4.9.1.1.2
MIB Name: VirtualServerPortStatusPort
Description: These are the ports that are "forwarded"

Code: Select all

USER@HOST:~$snmpwalk -c PASSWORD -v 1 XXX.XXX.XXX.XXX .1.3.6.1.4.1.1991.1.1.4.9.1.1.2
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.1 = INTEGER: 110
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.2 = INTEGER: 995
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.3 = INTEGER: 25
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.4 = INTEGER: 465
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.5 = INTEGER: 65535
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.6 = INTEGER: 110
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.7 = INTEGER: 995
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.8 = INTEGER: 25
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.9 = INTEGER: 465
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.10 = INTEGER: 65535
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.11 = INTEGER: 110
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.12 = INTEGER: 995
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.13 = INTEGER: 25
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.14 = INTEGER: 465
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.15 = INTEGER: 65535
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.2.16 = INTEGER: 110
...
...
...
MIB: .1.3.6.1.4.1.1991.1.1.4.9.1.1.3
MIB Name: VirtualServerPortStatusServerName
Description:

Code: Select all

USER@HOST:~$snmpwalk -c PASSWORD -v 1 XXX.XXX.XXX.XXX .1.3.6.1.4.1.1991.1.1.4.9.1.1.3
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.1 = STRING: "mail.example-a.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.2 = STRING: "mail.example-a.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.3 = STRING: "mail.example-a.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.4 = STRING: "mail.example-a.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.5 = STRING: "mail.example-a.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.6 = STRING: "mail.example-b.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.7 = STRING: "mail.example-b.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.8 = STRING: "mail.example-b.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.9 = STRING: "mail.example-b.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.10 = STRING: "mail.example-b.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.11 = STRING: "mail.example-c.nl"
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.3.12 = STRING: "mail.example-c.nl"
...
...
...
MIB: .1.3.6.1.4.1.1991.1.1.4.9.1.1.4
MIB Name: VirtualServerPortStatusCurrentConnections
Description:

Code: Select all

USER@HOST:~$snmpwalk -c PASSWORD -v 1 XXX.XXX.XXX.XXX .1.3.6.1.4.1.1991.1.1.4.9.1.1.4
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.1 = INTEGER:345
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.2 = INTEGER: 45
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.3 = INTEGER: 457
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.4 = INTEGER: 567
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.5 = INTEGER: 98
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.6 = INTEGER: 100
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.7 = INTEGER: 393
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.8 = INTEGER: 184
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.9 = INTEGER: 386
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.10 = INTEGER: 192
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.11 = INTEGER: 345
SNMPv2-SMI::enterprises.1991.1.1.4.9.1.1.4.12 = INTEGER: 893
...
...
...
So as you can see we forward port 110,995,25,465,65535 on host/domain mail.example-a.nl. What I want to build is one graph for domain mail.example-a.nl and in this graph I want to make a "line" for each port (which represents the current connections).

So first I created a Data query (XML)

Code: Select all

<Connections>
        <name>Get Foundry IronServer XL Connection statistics</name>
        <description>Queries a host for a connection table</description>
        <oid_index>.1.3.6.1.4.1.1991.1.1.4.9.1.1.1</oid_index>

        <fields>
                <ISXLConnIndex>
                        <name>Index</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>input</direction>
                        <oid>.1.3.6.1.4.1.1991.1.1.4.9.1.1.1</oid>
                </ISXLConnIndex>
                <ISXLConnPort>
                        <name>Port</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>input</direction>
                        <oid>.1.3.6.1.4.1.1991.1.1.4.9.1.1.2</oid>
                </ISXLConnPort>
                <ISXLConnHostName>
                        <name>Hostname</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>input</direction>
                        <oid>.1.3.6.1.4.1.1991.1.1.4.9.1.1.3</oid>
                </ISXLConnHostName>
                <ISXLCurConn>
                        <name>Current Connections</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.4.1.1991.1.1.4.9.1.1.4</oid>
                </ISXLCurConn>
        </fields>
</Connections>
and next I created a Data and Graph template. This works but it creates a graph per port per server.. so allot of graphs.. but I want 1 graph per host and in this graph the counter per port.

I have been following the manual but its not really helpful to be honest..
Source: http://docs.cacti.net/manual:088:3a_adv ... ta_queries

Can anyone tell me how I can do this ? If your need anymore information please let me know.

Regards,

Hopcount
Last edited by sirhopcount on Wed Mar 10, 2010 3:59 am, edited 1 time in total.
sirhopcount
Posts: 5
Joined: Tue Mar 25, 2008 5:56 am

Post by sirhopcount »

It has been a week now.. is there nobody with some advanced graphing experience who is willing to help me ?
User avatar
BSOD2600
Cacti Moderator
Posts: 12171
Joined: Sat May 08, 2004 12:44 pm
Location: USA

Post by BSOD2600 »

A SNMP Data Query is only intended to retrieve/graph a single unique piece of data per instance. In order to get multiple items on a graph, you're going to have to use the aggregate plugin to assist.

OR

Write a custom script which does all the gathering of the data you require, when then reports the single number(s) to Cacti for your main graphs.
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests