mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| #!/usr/bin/env php
 | |
| <?php
 | |
| 
 | |
| // A small script to grab the NTPD Server statistics from a NTPD server
 | |
| // Needed commands: php, ntpd, ntpq, ntpdc
 | |
| //
 | |
| // Install:
 | |
| // Add the following to your snmpd.conf file:
 | |
| // extend ntpdserver /opt/librenms/scripts/ntpd-server.php
 | |
| //
 | |
| // Version 1.1 By:
 | |
| // All In One - Dennis de Houx <info@all-in-one.be>
 | |
| 
 | |
| // START SETTINGS ///
 | |
| $ntpq  = '/usr/sbin/ntpq';
 | |
| $ntpdc = '/usr/sbin/ntpdc';
 | |
| // Change this to true if you have clk_jitter, sys_jitter in the ntpq -c rv output
 | |
| $newstats_style = false;
 | |
| // END SETTINGS ///
 | |
| 
 | |
| // DO NOT EDIT UNDER THIS LINE
 | |
| 
 | |
| $cmd   = shell_exec($ntpq.' -c rv');
 | |
| $cmd2  = shell_exec($ntpdc.' -c iostats');
 | |
| $vars  = array();
 | |
| $vars2 = array();
 | |
| $vars  = explode(',', $cmd);
 | |
| $vars2 = str_replace(' ', '', $cmd2);
 | |
| $vars2 = explode("\n", $vars2);
 | |
| 
 | |
| 
 | |
| function doSNMPv2($vars, $vars2, $newstats_style)
 | |
| {
 | |
|     $ntpd = array();
 | |
|     foreach ($vars as $item => $value) {
 | |
|         if (!empty($value)) {
 | |
|             $temp = explode('=', $value);
 | |
|             if (isset($temp[1])) {
 | |
|                 $ntpd[trim($temp[0])] = trim($temp[1]);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     foreach ($vars2 as $item => $value) {
 | |
|         if (!empty($value)) {
 | |
|             $temp = explode(':', $value);
 | |
|             if (isset($temp[1])) {
 | |
|                 $ntpd[trim($temp[0])] = trim($temp[1]);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     $var          = array();
 | |
|     $var['stratum']   = (isset($ntpd['stratum']) ? $ntpd['stratum'] : 'U');
 | |
|     $var['offset']    = (isset($ntpd['offset']) ? $ntpd['offset'] : 'U');
 | |
|     $var['frequency'] = (isset($ntpd['frequency']) ? $ntpd['frequency'] : 'U');
 | |
|     if ($newstats_style) {
 | |
|         $var['jitter']    = (isset($ntpd['clk_jitter']) ? $ntpd['clk_jitter'] : 'U');
 | |
|         $var['noise']     = (isset($ntpd['sys_jitter']) ? $ntpd['sys_jitter'] : 'U');
 | |
|         $var['stability'] = (isset($ntpd['clk_wander']) ? $ntpd['clk_wander'] : 'U');
 | |
|     }
 | |
|     else {
 | |
|         $var['jitter']    = (isset($ntpd['jitter']) ? $ntpd['jitter'] : 'U');
 | |
|         $var['noise']     = (isset($ntpd['noise']) ? $ntpd['noise'] : 'U');
 | |
|         $var['stability'] = (isset($ntpd['stability']) ? $ntpd['stability'] : 'U');
 | |
|     }
 | |
| 
 | |
|     $var['uptime']         = (isset($ntpd['timesincereset']) ? $ntpd['timesincereset'] : 'U');
 | |
|     $var['buffer_recv']    = (isset($ntpd['receivebuffers']) ? $ntpd['receivebuffers'] : 'U');
 | |
|     $var['buffer_free']    = (isset($ntpd['freereceivebuffers']) ? $ntpd['freereceivebuffers'] : 'U');
 | |
|     $var['buffer_used']    = (isset($ntpd['usedreceivebuffers']) ? $ntpd['usedreceivebuffers'] : 'U');
 | |
|     $var['packets_drop']   = (isset($ntpd['droppedpackets']) ? $ntpd['droppedpackets'] : 'U');
 | |
|     $var['packets_ignore'] = (isset($ntpd['ignoredpackets']) ? $ntpd['ignoredpackets'] : 'U');
 | |
|     $var['packets_recv']   = (isset($ntpd['receivedpackets']) ? $ntpd['receivedpackets'] : 'U');
 | |
|     $var['packets_sent']   = (isset($ntpd['packetssent']) ? $ntpd['packetssent'] : 'U');
 | |
|     foreach ($var as $item => $count) {
 | |
|         echo $count."\n";
 | |
|     }
 | |
| 
 | |
| }//end doSNMPv2()
 | |
| 
 | |
| 
 | |
| doSNMPv2($vars, $vars2, $newstats_style);
 |