The following polls from MIBs other than the Corente MIB will also provide information about the Corente Services Gateway. In general, for definitions of variables in other MIBs, see the MIB or RFC associated with that MIB.
To find out the general system information about the Corente Services Gateway, you can poll mib-2.system.
Sample Result:
system.sysDescr.0 = Linux New_York 2.4.20-13.8or13 #1 Mon Dec 8 13:09:37 EDT 2003 i686 system.sysObjectID.0 = OID: enterprises.8072.3.2.10 system.sysUpTime.0 = Timeticks: (111287) 0:18:32.87 system.sysContact.0 = Sally Thompson|sthompson@largecompany.com|555-555-5555 system.sysName.0 = New_York system.sysLocation.0 = 123 Main Street|New York City|NY|12345|US
The Unix top utility also provides good indicators to the utilization of the processors, processes, memory, and swap spaces. The top five lines of Linux top utility are covered by SNMP polls.
Uptime: The first line displays the time the system has been up and the three load averages for the system. They are the average number of process ready to run during the last 1, 5, and 15 minutes since the system has been up.
Processes: The second line displays the total number of processes running at the time of the last update.
CPU states: The third line displays the percentage of the CPU time in user mode, system mode, niced tasks, and idle.
Mem: The fourth displays statistics on memory usage.
Swap: The fifth line displays swap space.
A sample top screen is shown below.
2:26pm up 2 days, 4:09, 3 users, load average: 0.93, 0.82, 0.65 128 processes: 126 sleeping, 2 running, 0 zombie, 0 stopped CPU states: 50.1% user, 29.4% system, 0.0% nice, 20.3% idle Mem: 255684K av, 82224K used, 173460K free, 0K shrd, 3776K buff Swap: 40120K av, 19536K used, 20584K free 21712K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 28868 root 18 0 37448 36M 148 R 79.0 14.6 20:58 dummy 28888 root 11 0 1032 1032 732 R 0.3 0.4 0:00 top 6 root 9 0 0 0 0 SW 0.1 0.0 0:08 kscand 1 root 8 0 116 52 40 S 0.0 0.0 0:04 init 2 root 9 0 0 0 0 SW 0.0 0.0 0:00 keventd 3 root 9 0 0 0 0 SW 0.0 0.0 0:00 kapmd 4 root 19 19 0 0 0 SWN 0.0 0.0 0:00 ksoftirqd_CPU0 5 root 9 0 0 0 0 SW 0.0 0.0 0:00 kswapd 7 root 9 0 0 0 0 SW 0.0 0.0 0:00 bdflush 8 root 9 0 0 0 0 SW 0.0 0.0 0:00 kupdated 99 root 9 0 0 0 0 SW 0.0 0.0 0:00 kjournald 100 root 9 0 0 0 0 SW 0.0 0.0 0:03 kjournald 208 root 9 0 216 156 112 S 0.0 0.0 0:03 syslogd 212 root 9 0 188 116 116 S 0.0 0.0 0:00 klogd 221 rpc 9 0 88 0 0 SW 0.0 0.0 0:00 portmap 467 root 9 0 232 0 0 SW 0.0 0.0 0:04 sshd 483 root 9 0 1320 64 48 S 0.0 0.0 0:01 httpd
To poll for information that is on the first line of the top display, you can poll the MIBs: HOST-RESOURCES-MIB and UCB-SNMP-MIB.
General information about the host is available in the host.hrSystem subtree.
Poll: HOST-RESOURCES-MIB::host.hrSystem (.1.3.6.1.2.1.25.1)
Sample Poll Result:
host.hrSystem.hrSystemUptime.0 = Timeticks: (19133140) 2 days, 5:08:51.40 host.hrSystem.hrSystemDate.0 = 2003-6-5,15:25:42.0,+0:0 host.hrSystem.hrSystemInitialLoadDevice.0 = 1536 host.hrSystem.hrSystemInitialLoadParameters.0 = "auto BOOT_IMAGE=linux-clone \ ro root=301 BOOT_FILE=/clone/boot/vmlinuz." host.hrSystem.hrSystemNumUsers.0 = Gauge32: 3 host.hrSystem.hrSystemProcesses.0 = Gauge32: 128 host.hrSystem.hrSystemMaxProcesses.0 = 0
Load average information is available in the table ucdavis.laTable.
Poll: UCB-SNMP-MIB::ucdavis.laTable (.1.3.6.1.4.1.2021.10)
Sample Poll Result:
SNMP table: enterprises.ucdavis.laTable laIndex laNames laLoad laConfig laLoadInt laLoadFloat laErrorFlag laErrMessage 1 Load-1 0.69 12.00 68 0.690000 0 0 2 Load-5 0.78 12.00 78 0.780000 0 0 3 Load-15 0.74 12.00 73 0.740000 0 0
To poll for the information on the third line of the top display, you can poll UCBSNMP-MIB.ucdavis.systemStats twice. Do not poll ssCpuUser, ssCpuSystem, ssCpuIdle because they are deprecated and replaced by ssCpuRawUser, ssCpuRawSystem, ssCpuRawIdle, and ssCpuRawNice.
Poll: UCB-SNMP-MIB.ucdavis.systemStats (.1.3.6.1.4.1.2012.11)
Sample First Poll Result at time t0:
enterprises.ucdavis.systemStats.ssIndex.0 = 1 enterprises.ucdavis.systemStats.ssErrorName.0 = systemStats enterprises.ucdavis.systemStats.ssSwapIn.0 = 0 enterprises.ucdavis.systemStats.ssSwapOut.0 = 1 enterprises.ucdavis.systemStats.ssIOSent.0 = 0 enterprises.ucdavis.systemStats.ssIOReceive.0 = 1 enterprises.ucdavis.systemStats.ssSysInterrupts.0 = 114 enterprises.ucdavis.systemStats.ssSysContext.0 = 38 enterprises.ucdavis.systemStats.ssCpuUser.0 = 0 enterprises.ucdavis.systemStats.ssCpuSystem.0 = 0 enterprises.ucdavis.systemStats.ssCpuIdle.0 = 99 enterprises.ucdavis.systemStats.ssCpuRawUser.0 = Counter32: 29954 enterprises.ucdavis.systemStats.ssCpuRawNice.0 = Counter32: 0 enterprises.ucdavis.systemStats.ssCpuRawSystem.0 = Counter32: 25187 enterprises.ucdavis.systemStats.ssCpuRawIdle.0 = Counter32: 18585381
Sample Second Poll Result at time t1 where t1>t0:
enterprises.ucdavis.systemStats.ssIndex.0 = 1 enterprises.ucdavis.systemStats.ssErrorName.0 = systemStats enterprises.ucdavis.systemStats.ssSwapIn.0 = 0 enterprises.ucdavis.systemStats.ssSwapOut.0 = 1 enterprises.ucdavis.systemStats.ssIOSent.0 = 0 enterprises.ucdavis.systemStats.ssIOReceive.0 = 1 enterprises.ucdavis.systemStats.ssSysInterrupts.0 = 114 enterprises.ucdavis.systemStats.ssSysContext.0 = 38 enterprises.ucdavis.systemStats.ssCpuUser.0 = 0 enterprises.ucdavis.systemStats.ssCpuSystem.0 = 0 enterprises.ucdavis.systemStats.ssCpuIdle.0 = 99 enterprises.ucdavis.systemStats.ssCpuRawUser.0 = Counter32: 32787 enterprises.ucdavis.systemStats.ssCpuRawNice.0 = Counter32: 0 enterprises.ucdavis.systemStats.ssCpuRawSystem.0 = Counter32: 26681 enterprises.ucdavis.systemStats.ssCpuRawIdle.0 = Counter32: 18586494
The raw numbers represent the actual CPU ticks between the two polls. You can use these numbers to compute the best statistics on average CPU utilization over a period of time. Below is an example on how to compute the average CPU utilization:
To compute average CPU utilization over a period of t1 – t0:
Total CPU ticks for users = ssCpuRawUser at t1 – ssCpuRawUser at t0 = 2833 Total CPU ticks for niced tasks = ssCpuRawNice at t1 – ssCpuRawNice at t0 = 0 Total CPU ticks for system = ssCpuRawSystem at t1 – ssCpuRawSystem at t0 = 1494 Total CPU ticks for idle = ssCpuRawIdle at t1 – ssCpuRawIdle at t0 = 1113 Total CPU ticks between t0 and t1 = 2833 + 0 + 1494 + 1113 = 5440 CPU user% = 2833/5440 x 100 = 52.08% CPU system% = 1494/5440 x 100 = 27.46% CPU nice% = 0/5440 x 100 = 0% CPU idle% = 1113/5440 x 100 = 20.46% Average CPU utilization over a period of t1 – t0 = 52.08 + 27.46 + 0% = 79.54%
To poll for the information on the fourth and fifth lines of the top display, you can poll UCB-SNMP-MIB.ucdavis.memory.
Poll: UCD-SNMP-MIB::ucdavis.memory
Sample Poll Result:
enterprises.ucdavis.memory.memIndex.0 = 0 enterprises.ucdavis.memory.memErrorName.0 = swap enterprises.ucdavis.memory.memTotalSwap.0 = 40120 enterprises.ucdavis.memory.memAvailSwap.0 = 25316 enterprises.ucdavis.memory.memTotalReal.0 = 255684 enterprises.ucdavis.memory.memAvailReal.0 = 5004 enterprises.ucdavis.memory.memTotalFree.0 = 30288 enterprises.ucdavis.memory.memMinimumSwap.0 = 16000 enterprises.ucdavis.memory.memShared.0 = 0 enterprises.ucdavis.memory.memBuffer.0 = 7512 enterprises.ucdavis.memory.memCached.0 = 26976 enterprises.ucdavis.memory.memSwapError.0 = 0 enterprises.ucdavis.memory.memSwapErrorMsg.0 =
The poll results translate as follows to the variables in the Linux top command:
Memory available = memTotalReal = 255684 Kb Memory used = memTotalReal – memAvailReal = 255684 – 5004 = 250680 Kb Memery free = memAvailReal = 5005 Kb Memory shared = memShared = 0 Memory buffer = memBuffer = 7512 Kb Swap available = memTotalSwap = 40120 Kb Swap used = memTotalSwap – memAvailSwap = 14804 Kb Swap free = memAvailSwap = 25316 Kb Swap cached = memCached = 26976 Kb Mem: 255684K av, 82224K used, 173460K free, 0K shrd, 3776K buff Swap: 40120K av, 19536K used, 20584K free, 21712K cached
To view the processes that are currently running on a Corente Services Gateway, you would poll HOST-RESOURCES-MIB::host.hrSWRun.hrSWRunTable.
The hrSWRunTable contains an entry for each distinct piece of software that is running or loaded into physical or virtual memory of the Location gateway in preparation for running. This includes the Location gateway's operating system, device drivers, and applications.
Sample Poll Result:
SNMP table: host.hrSWRun.hrSWRunTable hrSWRunIndex hrSWRunName hrSWRunID hrSWRunPath hrSWRunParameters hrSWRunType hrSWRunStatus 1 "init" .ccitt.ze "init [3]" "" application runnable 2 "keventd" .ccitt.ze "keventd" "" application runnable : : 208 "syslogd" .ccitt.ze "syslogd" "-m 0" application runnable 15186 "or-restart" .ccitt.ze "/usr/lo.." "-d 30 -r /etc.." application runnable 15188 "tcptd" .ccitt.ze "/usr/lo.." "--udp --port .." application runnable 15296 "pluto" .ccitt.ze "/usr/lo.." "--nofork --de.." application runnable 15357 "sessmgr" .ccitt.ze "/usr/lo.." "--local --tim.." application runnable 15365 "redird" .ccitt.ze "/usr/lo.." "-f /usr/local.." application runnable 15403 "org" .ccitt.ze "/usr/lo.." "-f /usr/local.." application runnable 15404 "localdb" .ccitt.ze "/usr/lo.." "" application runnable 28729 "snmpd" .ccitt.ze "/usr/sb.." "-s -f -P /var.." application running 28868 "dummy" .ccitt.ze "./dummy" "32 200" application running Number of processes = number of hrSWRunTable entries Number of sleeping processes = number of hrSWRuntable entries that have hrSWRunStatus=runnable Number of running processes = number of hrSWRuntable entries that have hrSWRunStatus=running Number of zombie processes = number of hrSWRuntable entries that have hrSWRunStatus=invalid Number of stopped processes = number of hrSWRuntable entries that have hrSWRunStatus=notRunnable
By polling for interface information with MIB-II
(mib-2.interfaces.ifTable), you can view
information about each network interface on a
Corente Services Gateway. Interfaces commonly revealed are
eth0
, eth1
,
tcpt0
, ipsec0
, and
ipsec1
.
eth0
andeth1
: The physical interfaces for either the LAN or the WAN.tcpt0
: The virtual network interface used for all tunnel traffic.ipsec0
andipsec1
: The virtual network interfaces for all IPSec traffic.
The interface tcpt0
,
ipsec0
and ipsec1
are not
physical; they are virtual network interfaces. All
Corente Services network tunnel traffic goes through the
tcpt0
interface. The statistical information
of tcpt0
is the aggregate of all
Corente Services network tunnels. For example, the sum of all
corente.tunnelRecvKb should be
approximately equal to the ifInOctects
value of the tcpt0
entry. Similarly, if the
ifInErrors or
ifOurErrors value of
tcpt0
is greater than zero, we know that at
least one of the Corente Services network tunnels has problems.
To monitor data for Corente Services network tunnels, monitor
tcpt0
. In the Corente MIB,
corente.tunnelTable is a refinement of this
tcpt0
entry.
Sample Poll Result:
SNMP table: interfaces.ifTable ifIndex ifDescr ifType ifMtu ifSpeed ifPhysAddress 1 lo softwareLoopback 16436 10000000 10000000 2 eth0 ethernetCsmacd 1500 10000000 0:1:3:1c:97:c9 3 tcpt0 ethernetCsmacd 1400 10000000 0:54:43:50:54:30 4 ipsec0 ethernetCsmacd 16260 10000000 0:54:43:50:54:30 5 ipsec1 ethernetCsmacd 16260 10000000 0:1:3:1c:97:c9 6 ipsec2 tunnel 0 0 0 7 ipsec3 tunnel 0 0 0 ifAdminStatus ifOperStatus ifLastChange ifInOctets ifInUcastPkts ifInNUcastPkts up up ? 197681 2062 ? up up ? 966949898 2603112 ? up up ? 4251992 40785 ? up up ? 1969784 40714 ? up up ? 0 0 ? down down ? 0 0 ? down down ? 0 0 ? ifInDiscards ifInErrors ifInUnknownProtos ifOutOctets ifOutUcastPkts 0 0 ? 197681 2062 0 0 ? 13425106 110277 0 0 ? 4689744 41135 0 0 ? 5255638 40841 0 0 ? 0 0 0 0 ? 0 0 0 0 ? 0 0 ifOutNUcastPkts ifOutDiscards ifOutErrors ifOutQLen ifSpecific ? 0 0 0 .ccitt.zeroDotZero ? 0 0 0 .ccitt.zeroDotZero ? 0 0 0 .ccitt.zeroDotZero ? 293 0 0 .ccitt.zeroDotZero ? 0 0 0 .ccitt.zeroDotZero ? 0 0 0 .ccitt.zeroDotZero ? 0 0 0 .ccitt.zeroDotZero
To view the IP addresses assigned to a Corente Services Gateway, you would poll mib-2.ip.ipAddrTable. The IP address table is displayed, which contains this Location gateway's IP addressing information.
Sample Poll Result:
SNMP table: ip.ipAddrTable ipAdEntAddr ipAdEntIfIndex ipAdEntNetMask ipAdEntBcastAddr ipAdEntReasmMaxSize 0.0.0.0 6 0.0.0.0 0 ? 10.0.24.167 3 255.0.0.0 1 ? 127.0.0.1 1 255.0.0.0 0 ? 192.168.164.223 2 255.255.192.0 1 ?
To view the routes that are configured for the Location gateway to get to its various LAN subnets, you would poll mib-2.ip.ipRouteTable. The IP routing table is displayed, which contains an entry for each route presently known to this Corente Services Gateway.
Sample Poll Result:
SNMP table: ip.ipRouteTable ipRouteDest ipRouteIfIndex ipRouteMetric1 ipRouteMetric2 ipRouteMetric3 ipRouteMetric4 0.0.0.0 2 1 ? ? ? 10.0.0.0 4 0 ? ? ? 172.16.246.0 2 1 ? ? ? 172.16.250.0 4 0 ? ? ? 192.168.128.0 2 0 ? ? ? ipRouteNextHop ipRouteType ipRouteProto ipRouteAge ipRouteMask ipRouteMetric5 ipRouteInfo 192.168.165.1 indirect local ? 0.0.0.0 ? .ccitt.zeroDotZero 0.0.0.0 direct local ? 255.0.0.0 ? .ccitt.zeroDotZero 192.168.164.136 indirect local ? 255.255.255.0 ? .ccitt.zeroDotZero 0.0.0.0 direct local ? 255.255.255.0 ? .ccitt.zeroDotZero 0.0.0.0 direct local ? 255.255.192.0 ? .ccitt.zeroDotZero
To view IP information about the Location gateway, you would poll mib-2.ip.
Sample Poll Result:
ip.ipForwarding.0 = forwarding(1) ip.ipDefaultTTL.0 = 64 ip.ipInReceives.0 = Counter32: 15603 ip.ipInHdrErrors.0 = Counter32: 0 ip.ipInAddrErrors.0 = Counter32: 0 ip.ipForwDatagrams.0 = Counter32: 0 ip.ipInUnknownProtos.0 = Counter32: 0 ip.ipInDiscards.0 = Counter32: 0 ip.ipInDelivers.0 = Counter32: 10827 ip.ipOutRequests.0 = Counter32: 8105 ip.ipOutDiscards.0 = Counter32: 0 ip.ipOutNoRoutes.0 = Counter32: 0 ip.ipReasmTimeout.0 = 0 ip.ipReasmReqds.0 = Counter32: 47 ip.ipReasmOKs.0 = Counter32: 23 ip.ipReasmFails.0 = Counter32: 0 ip.ipFragOKs.0 = Counter32: 46 ip.ipFragFails.0 = Counter32: 0 ip.ipFragCreates.0 = Counter32: 94
To view the TCP connections of the Location gateway, you would poll mib-2.tcp.tcpConnTable.
The TCP connection table is displayed, which contains information about this Location gateway's existing TCP connections.
Sample Poll Result:
SNMP table: tcp.tcpConnTable tcpConnState tcpConnLocalAddress tcpConnLocalPort tcpConnRemAddress tcpConnRemPort listen 0.0.0.0 22 0.0.0.0 0 listen 0.0.0.0 80 0.0.0.0 0 listen 0.0.0.0 111 0.0.0.0 0 listen 0.0.0.0 199 0.0.0.0 0 listen 0.0.0.0 443 0.0.0.0 0 listen 0.0.0.0 551 0.0.0.0 0 listen 0.0.0.0 900 0.0.0.0 0 listen 0.0.0.0 8000 0.0.0.0 0 established 10.0.24.167 900 10.0.22.40 1137 established 10.0.24.167 32866 208.185.38.242 3000 established 192.168.164.223 22 192.168.165.96 32956 established 192.168.164.223 22 192.168.165.96 32959 established 192.168.164.223 551 172.16.250.4 1136 established 192.168.164.223 32865 172.16.254.158 551
To view the TCP information of the Location gateway, you would poll mib-2.tcp. The TCP group is displayed. Note that instances of object types that represent information about a particular TCP connection are transient; they persist only as long as the connection in question.
Sample Poll Result:
tcp.tcpRtoAlgorithm.0 = other(1) tcp.tcpRtoMin.0 = 200 tcp.tcpRtoMax.0 = 120000 tcp.tcpMaxConn.0 = -1 tcp.tcpActiveOpens.0 = Counter32: 6 tcp.tcpPassiveOpens.0 = Counter32: 6 tcp.tcpAttemptFails.0 = Counter32: 0 tcp.tcpEstabResets.0 = Counter32: 1 tcp.tcpCurrEstab.0 = Gauge32: 4 tcp.tcpInSegs.0 = Counter32: 682 tcp.tcpOutSegs.0 = Counter32: 745 tcp.tcpRetransSegs.0 = Counter32: 4
To view the UDP listening ports of the Location gateway, you would poll mib-2.udp.udpTable.
The UDP listener table is displayed, which contains information about this Location gateway’s UDP end-points which are currently accepting datagrams.
Sample Poll Result:
SNMP table: udp.udpTable udpLocalAddress udpLocalPort 0.0.0.0 68 0.0.0.0 111 0.0.0.0 161 0.0.0.0 551 0.0.0.0 900 0.0.0.0 902 0.0.0.0 907 0.0.0.0 908 0.0.0.0 912 0.0.0.0 1010 0.0.0.0 32791 0.0.0.0 32795 0.0.0.0 32796 0.0.0.0 32797 10.0.24.167 500 127.0.0.1 901 127.0.0.1 920 192.168.164.223 137 192.168.164.223 500
To view the UDP information of the Location gateway, you would poll mib-2.udp.
Sample Poll Result:
udp.udpInDatagrams.0 = Counter32: 6757 udp.udpNoPorts.0 = Counter32: 106 udp.udpInErrors.0 = Counter32: 0 udp.udpOutDatagrams.0 = Counter32: 6371
To view the ICMP information of the Location gateway, you would poll mib-2.icmp.
Sample Poll Result:
icmp.icmpInMsgs.0 = Counter32: 2445 icmp.icmpInErrors.0 = Counter32: 0 icmp.icmpInDestUnreachs.0 = Counter32: 111 icmp.icmpInTimeExcds.0 = Counter32: 0 icmp.icmpInParmProbs.0 = Counter32: 0 icmp.icmpInSrcQuenchs.0 = Counter32: 0 icmp.icmpInRedirects.0 = Counter32: 0 icmp.icmpInEchos.0 = Counter32: 1287 icmp.icmpInEchoReps.0 = Counter32: 1047 icmp.icmpInTimestamps.0 = Counter32: 0 icmp.icmpInTimestampReps.0 = Counter32: 0 icmp.icmpInAddrMasks.0 = Counter32: 0 icmp.icmpInAddrMaskReps.0 = Counter32: 0 icmp.icmpOutMsgs.0 = Counter32: 1423 icmp.icmpOutErrors.0 = Counter32: 0 icmp.icmpOutDestUnreachs.0 = Counter32: 136 icmp.icmpOutTimeExcds.0 = Counter32: 0 icmp.icmpOutParmProbs.0 = Counter32: 0 icmp.icmpOutSrcQuenchs.0 = Counter32: 0 icmp.icmpOutRedirects.0 = Counter32: 0 icmp.icmpOutEchos.0 = Counter32: 0 icmp.icmpOutEchoReps.0 = Counter32: 1287 icmp.icmpOutTimestamps.0 = Counter32: 0 icmp.icmpOutTimestampReps.0 = Counter32: 0 icmp.icmpOutAddrMasks.0 = Counter32: 0 icmp.icmpOutAddrMaskReps.0 = Counter 32: 0