| 
									
										
										
										
											2012-01-17 13:37:52 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  | if ($device['os'] == 'netscaler') { | 
					
						
							|  |  |  |     echo ' IP'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // These are at the start of large trees that we don't want to walk the entirety of, so we snmp_get_multi them
 | 
					
						
							|  |  |  |     $oids_gauge = array( | 
					
						
							|  |  |  |         'tcpCurServerConn', | 
					
						
							|  |  |  |         'tcpCurClientConn', | 
					
						
							|  |  |  |         'tcpActiveServerConn', | 
					
						
							|  |  |  |         'tcpCurClientConnClosing', | 
					
						
							|  |  |  |         'tcpCurServerConnEstablished', | 
					
						
							|  |  |  |         'tcpCurClientConnOpening', | 
					
						
							|  |  |  |         'tcpCurClientConnEstablished', | 
					
						
							|  |  |  |         'tcpCurServerConnClosing', | 
					
						
							|  |  |  |         'tcpSpareConn', | 
					
						
							|  |  |  |         'tcpSurgeQueueLen', | 
					
						
							|  |  |  |         'tcpCurServerConnOpening', | 
					
						
							|  |  |  |         'tcpCurPhysicalServers', | 
					
						
							|  |  |  |         'tcpReuseHit', | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $oids_counter = array( | 
					
						
							|  |  |  |         'tcpTotServerConnOpened', | 
					
						
							|  |  |  |         'tcpTotServerConnClosed', | 
					
						
							|  |  |  |         'tcpTotClientConnOpened', | 
					
						
							|  |  |  |         'tcpTotClientConnClosed', | 
					
						
							|  |  |  |         'tcpTotSyn', | 
					
						
							|  |  |  |         'tcpTotSynProbe', | 
					
						
							|  |  |  |         'tcpTotSvrFin', | 
					
						
							|  |  |  |         'tcpTotCltFin', | 
					
						
							|  |  |  |         'tcpTotRxPkts', | 
					
						
							|  |  |  |         'tcpTotRxBytes', | 
					
						
							|  |  |  |         'tcpTotTxPkts', | 
					
						
							|  |  |  |         'tcpTotTxBytes', | 
					
						
							|  |  |  |         'tcpWaitToSyn', | 
					
						
							|  |  |  |         'tcpTotZombieCltConnFlushed', | 
					
						
							|  |  |  |         'tcpTotZombieSvrConnFlushed', | 
					
						
							|  |  |  |         'tcpTotZombieHalfOpenCltConnFlushed', | 
					
						
							|  |  |  |         'tcpTotZombieHalfOpenSvrConnFlushed', | 
					
						
							|  |  |  |         'tcpTotZombieActiveHalfCloseCltConnFlushed', | 
					
						
							|  |  |  |         'tcpTotZombieActiveHalfCloseSvrConnFlushed', | 
					
						
							|  |  |  |         'tcpTotZombiePassiveHalfCloseCltConnFlushed', | 
					
						
							|  |  |  |         'tcpTotZombiePassiveHalfCloseSrvConnFlushed', | 
					
						
							|  |  |  |         'tcpErrBadCheckSum', | 
					
						
							|  |  |  |         'tcpErrSynInSynRcvd', | 
					
						
							|  |  |  |         'tcpErrSynInEst', | 
					
						
							|  |  |  |         'tcpErrSynGiveUp', | 
					
						
							|  |  |  |         'tcpErrSynSentBadAck', | 
					
						
							|  |  |  |         'tcpErrSynRetry', | 
					
						
							|  |  |  |         'tcpErrFinRetry', | 
					
						
							|  |  |  |         'tcpErrFinGiveUp', | 
					
						
							|  |  |  |         'tcpErrFinDup', | 
					
						
							|  |  |  |         'tcpErrRst', | 
					
						
							|  |  |  |         'tcpErrRstNonEst', | 
					
						
							|  |  |  |         'tcpErrRstOutOfWindow', | 
					
						
							|  |  |  |         'tcpErrRstInTimewait', | 
					
						
							|  |  |  |         'tcpErrSvrRetrasmit', | 
					
						
							|  |  |  |         'tcpErrCltRetrasmit', | 
					
						
							|  |  |  |         'tcpErrFullRetrasmit', | 
					
						
							|  |  |  |         'tcpErrPartialRetrasmit', | 
					
						
							|  |  |  |         'tcpErrSvrOutOfOrder', | 
					
						
							|  |  |  |         'tcpErrCltOutOfOrder', | 
					
						
							|  |  |  |         'tcpErrCltHole', | 
					
						
							|  |  |  |         'tcpErrSvrHole', | 
					
						
							|  |  |  |         'tcpErrCookiePktSeqReject', | 
					
						
							|  |  |  |         'tcpErrCookiePktSigReject', | 
					
						
							|  |  |  |         'tcpErrCookiePktSeqDrop', | 
					
						
							|  |  |  |         'tcpErrCookiePktMssReject', | 
					
						
							|  |  |  |         'tcpErrRetransmit', | 
					
						
							|  |  |  |         'tcpErrRetransmitGiveUp', | 
					
						
							|  |  |  |         'pcbTotZombieCall', | 
					
						
							|  |  |  |         'tcpTotSynHeld', | 
					
						
							|  |  |  |         'tcpTotSynFlush', | 
					
						
							|  |  |  |         'tcpTotFinWaitClosed', | 
					
						
							|  |  |  |         'tcpErrAnyPortFail', | 
					
						
							|  |  |  |         'tcpErrIpPortFail', | 
					
						
							|  |  |  |         'tcpErrSentRst', | 
					
						
							|  |  |  |         'tcpErrBadStateConn', | 
					
						
							|  |  |  |         'tcpErrFastRetransmissions', | 
					
						
							|  |  |  |         'tcpErrFirstRetransmissions', | 
					
						
							|  |  |  |         'tcpErrSecondRetransmissions', | 
					
						
							|  |  |  |         'tcpErrThirdRetransmissions', | 
					
						
							|  |  |  |         'tcpErrForthRetransmissions', | 
					
						
							|  |  |  |         'tcpErrFifthRetransmissions', | 
					
						
							|  |  |  |         'tcpErrSixthRetransmissions', | 
					
						
							|  |  |  |         'tcpErrSeventhRetransmissions', | 
					
						
							|  |  |  |         'tcpErrDataAfterFin', | 
					
						
							|  |  |  |         'tcpErrRstThreshold', | 
					
						
							|  |  |  |         'tcpErrOutOfWindowPkts', | 
					
						
							|  |  |  |         'tcpErrSynDroppedCongestion', | 
					
						
							|  |  |  |         'tcpWaitData', | 
					
						
							|  |  |  |         'tcpErrStrayPkt', | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $oids = array_merge($oids_gauge, $oids_counter); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-07 01:33:43 -05:00
										 |  |  |     $data = snmpwalk_cache_oid($device, 'nsTcpStatsGroup', array(), 'NS-ROOT-MIB'); | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-07 01:33:43 -05:00
										 |  |  |     $rrd_def = array(); | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     foreach ($oids_gauge as $oid) { | 
					
						
							| 
									
										
										
										
											2016-07-07 01:33:43 -05:00
										 |  |  |         $oid_ds    = truncate(str_replace('tcp', '', str_replace('Active', 'Ac', str_replace('Passive', 'Ps', str_replace('Zombie', 'Zom', $oid)))), 19, ''); | 
					
						
							|  |  |  |         $rrd_def[] = "DS:$oid_ds:GAUGE:600:U:100000000000"; | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     } | 
					
						
							|  |  |  |     foreach ($oids_counter as $oid) { | 
					
						
							| 
									
										
										
										
											2016-07-07 01:33:43 -05:00
										 |  |  |         $oid_ds    = truncate(str_replace('tcp', '', str_replace('Active', 'Ac', str_replace('Passive', 'Ps', str_replace('Zombie', 'Zom', $oid)))), 19, ''); | 
					
						
							|  |  |  |         $rrd_def[] = "DS:$oid_ds:COUNTER:600:U:100000000000"; | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2012-01-17 13:37:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-18 16:26:55 +00:00
										 |  |  |     $fields = array(); | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     foreach ($oids as $oid) { | 
					
						
							|  |  |  |         if (is_numeric($data[0][$oid])) { | 
					
						
							| 
									
										
										
										
											2015-08-18 16:26:55 +00:00
										 |  |  |             $rrdupdate = ':'.$data[0][$oid]; | 
					
						
							| 
									
										
										
										
											2016-08-28 12:32:58 -05:00
										 |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2015-08-18 16:26:55 +00:00
										 |  |  |             $rrdupdate = 'U'; | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2015-08-18 16:26:55 +00:00
										 |  |  |         $fields[$oid] = $rrdupdate; | 
					
						
							| 
									
										
										
										
											2012-01-17 13:37:52 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-07 01:33:43 -05:00
										 |  |  |     $tags = compact('rrd_def'); | 
					
						
							| 
									
										
										
										
											2016-08-28 12:32:58 -05:00
										 |  |  |     data_update($device, 'netscaler-stats-tcp', $tags, $fields); | 
					
						
							| 
									
										
										
										
											2015-08-19 20:58:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     $graphs['netscaler_tcp_conn'] = true; | 
					
						
							|  |  |  |     $graphs['netscaler_tcp_bits'] = true; | 
					
						
							|  |  |  |     $graphs['netscaler_tcp_pkts'] = true; | 
					
						
							|  |  |  | }//end if
 | 
					
						
							| 
									
										
										
										
											2012-01-17 13:37:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-07 01:33:43 -05:00
										 |  |  | unset($oids_gauge, $oids_counter, $oids, $data, $tags, $fields, $rrd_def); |