Перейти до

Мониторинг OLT по snmp


onihack

Рекомендованные сообщения

Вначале попробуйте сбросить\прошить\перерегать. С другими, такой же модели, проблем нет?

Ссылка на сообщение
Поделиться на других сайтах
  • 2 months later...
  • Відповіді 273
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

BDCOM темплейт для cacti. В 36xx мониторит сигнал только со стороны OLT. gepon-signal-template.tar.gz

snmpwalk -v2c -Cc -c wcvbhytredcvbvgu 172.16.244.22 .1.3.6.1.4.1.3320.101.11.1.1.7 mac onu (в bin ) и  уровень в  /100 snmpwalk -v2c -Cc -c wcvbhytredcvbvgu 172.16.244.22 .1.3.6.1.4.1.3320.101.10.1.

Нашел, возможно кому то пригодится P3616-2TE anton@work-pc:~$ snmpget -v1 -c olt_snmp_community  olt_ip 1.3.6.1.4.1.3320.9.181.1.1.7.1 iso.3.6.1.4.1.3320.9.181.1.1.7.1 = INTEGER: 44 IF-BDCOM4#sh

Posted Images

Подскажите пожалуйста, каким MiBом можно вытянуть вот этот параметр:

 

pon#sh ru

!

epon onu description My_ONU

ifDescr. показывает EPON0/3:1, но не My_ONU. Может кто-то поделится подобным опытом?

 

Голова BDCom P3310C build 33463

Відредаговано killgara
Ссылка на сообщение
Поделиться на других сайтах

Было бы хорошо, если было бы так просто.

IF-MIB::ifAlias.144 = STRING:

пустая строка.

ifName выдвёт данные аналогиные ifDescr, все что легко не подходит.

Ссылка на сообщение
Поделиться на других сайтах
## snmpwalk -v2c -cxxx 192.168.2.26 ifAlias

IF-MIB::ifAlias.1 = STRING:

IF-MIB::ifAlias.2 = STRING:

IF-MIB::ifAlias.3 = STRING:

IF-MIB::ifAlias.4 = STRING:

IF-MIB::ifAlias.5 = STRING: UPLINK_2.38_port_2

IF-MIB::ifAlias.6 = STRING:

IF-MIB::ifAlias.7 = STRING:

IF-MIB::ifAlias.8 = STRING:

IF-MIB::ifAlias.9 = STRING:

IF-MIB::ifAlias.10 = STRING:

IF-MIB::ifAlias.11 = STRING:

IF-MIB::ifAlias.12 = STRING: ***_BANK_***

IF-MIB::ifAlias.13 = STRING: ***_KIROVA_***

IF-MIB::ifAlias.14 = STRING: ***_Market_13_***

IF-MIB::ifAlias.15 = STRING: ***_VOKZAL_***

......

 

 

проверил на прошивках

BDCOM P3310B Software, Version 10.1.0B Build 29333

BDCOM P3310B Software, Version 10.1.0B Build 39287

Ссылка на сообщение
Поделиться на других сайтах

snmpwalk -v2c -cxxx xxx.xxx.xxx ifAlias

 

IF-MIB::ifAlias.17 = STRING:
IF-MIB::ifAlias.18 = STRING:
IF-MIB::ifAlias.19 = STRING:
IF-MIB::ifAlias.20 = STRING:
IF-MIB::ifAlias.21 = STRING:
IF-MIB::ifAlias.22 = STRING:
IF-MIB::ifAlias.23 = STRING:
IF-MIB::ifAlias.24 = STRING:
IF-MIB::ifAlias.25 = STRING:
IF-MIB::ifAlias.26 = STRING:
IF-MIB::ifAlias.27 = STRING:

sh running-config

!

!

!

interface EPON0/2:28
  epon onu description ХХХХХХХХ

 

 

Где подвох?
 

 

Ссылка на сообщение
Поделиться на других сайтах

У меня так

 
interface EPON0/1:10
 description хххххххх
 

Ваши данные ищите здесь

1.3.6.1.4.1.3320.101.11.1.1.3.8.х.х.х.х.х.х

где х.х.х.х.х.х - мак ону в десятичном формате (FF=255)

Відредаговано vlin
Ссылка на сообщение
Поделиться на других сайтах
  • 5 weeks later...

Не могу найти. Кто-то реализовывал перезагрузку онушки по snmp?

 

есть таблица 1.3.6.1.4.1.3320.101.25 bdEponOnuReset но как пользоваться х.з.

 

 

И что-то внятное с состоянием медных портов у кого-то получилось?

Ссылка на сообщение
Поделиться на других сайтах

Как всегда отвечаю сам ))
 

snmpset -v1 -c xxx x.x.x.x .1.3.6.1.4.1.3320.101.10.1.1.29.13 i 0

"onuReset" .1.3.6.1.4.1.3320.101.10.1.1.29.13.llid_onu

присваиваем Integer 0 онушка бутается.
 

Aug 8 20:42:26 %EPON-ONUDEREG: ONU fcfa.f7c5.a3f6 is deregistered on EPON0/1:3.
Aug 8 20:42:28 %EPON-ONUREG: ONU fcfa.f7c5.a3f6 is registered on EPON0/1:3.
Aug 8 20:42:28 %EPON-ONUAUTHEN: ONU fcfa.f7c5.a3f6 is authenticated on EPON0/1:3.
Aug 8 20:42:29 %OLT: Interface EPON0/1:3's OAM Operational Status: Operational
Aug 8 20:42:32 ONU register on interface EPON0/1:3 for the first time!
Aug 8 20:42:32 %OLT: Interface EPON0/1:3's CTC OAM extension negotiated successfully!

C медью ситуация следующая:

 

XPON - показывает туфту

Alistar - показывает туфту через раз

BDCOM - работает идеально.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

Ще пиляю... Можна зробити майже все, але потрібна порада по часу опитування OLT, портів, ONU. Порадьте хтось через які інтервали зробити опитування, що б було мінімальне навантаження на OLT...

Дуже вже слабі в цих залізяках CPU.

Ссылка на сообщение
Поделиться на других сайтах

В понконтроле советуют брать 3 минуты на 1 олт.

А чем собсно понконтрол не угодил?

Я мав на увазі інтервали опитування. Наприклад порти кожні 10 хв., ОНУ кожні 20 хв., і так далі...

Ссылка на сообщение
Поделиться на других сайтах

 

 

Понконтрол заточен в основном под BDCOM,в dude можно мониторить шо душа пожелает

Открываете ПХП и точите под нужные ОИДы. Проблем нет. 

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Доброго времени суток.

 

Код опроса OLT-a примерно 20 с.:

<?php
$time1= date("Y-m-d H:i:s");

 echo "</br>";
$ip='';
$ro='';
$equipment_id='';
  echo "</br>SysInfo</br>";
$session = new SNMP(SNMP::VERSION_2C, $ip, $ro);
//$session->valueretrieval = SNMP_VALUE_PLAIN;
  $sys = $session->walk("1.3.6.1.2.1.1", TRUE);
  var_export($sys);
 echo "</br>";


$ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);

$ifSpeed = $session->walk(".1.3.6.1.2.1.2.2.1.5", TRUE);

$ifAdminStatus = $session->walk(".1.3.6.1.2.1.2.2.1.7", TRUE);

$ifOperStatus = $session->walk(".1.3.6.1.2.1.2.2.1.8", TRUE);

$ifInErrors = $session->walk(".1.3.6.1.2.1.2.2.1.14", TRUE);

$ifOutErrors = $session->walk(".1.3.6.1.2.1.2.2.1.20", TRUE);

$ONUMAC = $session->walk("1.3.6.1.4.1.3320.101.10.1.1.3", TRUE);

$ONURxLevel = $session->walk("1.3.6.1.4.1.3320.101.10.5.1.5", TRUE);

$ONUTemp = $session->walk("1.3.6.1.4.1.3320.101.10.5.1.2", TRUE);

$ONUDist = $session->walk("1.3.6.1.4.1.3320.101.10.1.1.27", TRUE);

$ONUVendor = $session->walk("1.3.6.1.4.1.3320.101.10.1.1.1", TRUE);

$ONUModel = $session->walk("1.3.6.1.4.1.3320.101.10.1.1.2", TRUE);

/*$session =  new SNMP(SNMP::VERSION_1, $ip, $ro);
$session->oid_increasing_check = FALSE;
$session->oid_output_format = SNMP_OID_OUTPUT_NUMERIC;
$UserMAC = $session->walk("1.3.6.1.4.1.3320.152.1.1.3", TRUE);*/



	foreach ($ifDescr as $key => $value) {
	$iface[$key]['IfId']=$key;	
	$value=explode(' ', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace("\"", "", $value);
	$iface[$key]['IfDescr']=$value;
	}
	foreach ($ifSpeed as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfSpeed']=$value;
	}
	foreach ($ifAdminStatus as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfAdminStatus']=$value;
	}
	foreach ($ifOperStatus as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfOperStatus']=$value;
	}
	foreach ($ifInErrors as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfInErrors']=$value;
	}
	foreach ($ifOutErrors as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfOutErrors']=$value;
	}
	foreach ($ONUMAC as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace (" ", ":", $value);
	$iface[$key]['ONUMAC']=$value;
	}
	foreach ($ONURxLevel as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['ONURxLevel']=$value;
	}
	foreach ($ONUTemp as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$value = $value/256;
	$value = round($value, 2);
	$iface[$key]['ONUTemp']=$value;
	}
	foreach ($ONUDist as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['ONUDist']=$value;
	}
	foreach ($ONUVendor as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace("\"", "", $value);
	$iface[$key]['ONUVendor']=$value;
	}
	foreach ($ONUModel as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace("\"", "", $value);
	$iface[$key]['ONUModel']=$value;
	}

foreach ($iface as $key){
	echo '</br>';
	$date=date("Y-m-d H:i:s");
	$IfId=$equipment_id.'_'.$key['IfId'];
	$IfDescr=$key['IfDescr'];
	$IfSpeed=$key['IfSpeed']; 
	$IfAdminStatus=$key['IfAdminStatus']; 
	$IfOperStatus=$key['IfOperStatus']; 
	$IfInErrors=$key['IfInErrors']; 
	$IfOutErrors=$key['IfOutErrors'];
	if(isset( $key['ONUMAC'])){
	$ONUMAC=$key['ONUMAC'];}else{$ONUMAC=NULL;}
	if(isset( $key['ONURxLevel'])){
	$ONURxLevel=$key['ONURxLevel']/10;}else{$ONURxLevel=NULL;}
	if(isset( $key['ONUTemp'])){
	$ONUTemp=$key['ONUTemp'];}else{$ONUTemp=NULL;}
	if(isset( $key['ONUDist'])){
	$ONUDist=$key['ONUDist'];}else{$ONUDist=NULL;}
	if(isset( $key['ONUVendor'])){
	$ONUVendor=$key['ONUVendor'];}else{$ONUVendor=NULL;}
	if(isset( $key['ONUModel'])){
	$ONUModel=$key['ONUModel'];}else{$ONUModel=NULL;}
	$ONUVendorModel=$ONUVendor.'/'.$ONUModel;
 	echo 'IfId: '.$IfId.'</br>';  
	echo 'IfDescr: '.$IfDescr.'</br>';
	echo 'IfSpeed: '.$IfSpeed.'</br>'; 
	echo 'IfAdminStatus: '.$IfAdminStatus.'</br>'; 
	echo 'IfOperStatus: '.$IfOperStatus.'</br>'; 
	echo 'IfInErrors: '.$IfInErrors.'</br>'; 
	echo 'IfOutErrors: '.$IfOutErrors.'</br>'; 
	$epon=stripos($IfDescr, 'pon');
	$eponslash=stripos($IfDescr, '/');
	$eponcolon=stripos($IfDescr, ':');
	if($epon !== false and $eponslash!== false and $eponcolon !== false){
	echo 'ONU MAC: '.$ONUMAC.'</br>'; 
	echo 'ONURxLevel: '.$ONURxLevel.'</br>'; 
	echo 'ONUTemp: '.$ONUTemp.'</br>'; 
	echo 'ONUDist: '.$ONUDist.'</br>'; 
	echo 'ONUVendor: '.$ONUVendor.'</br>'; 
	echo 'ONUModel: '.$ONUModel.'</br>'; }
	echo '________________________________</br>';

}


  $session->close();

  $time2= date("Y-m-d H:i:s");
   echo 'Start: '.$time1.' End:'.$time2.'</br>';
   ?>
Ссылка на сообщение
Поделиться на других сайтах

Код опроса OLT-a примерно 20 с.:

 

Я тут нервуюся, що в мене довго опитує:

post-18229-0-68431500-1508140452_thumb.jpg

<?php header('Content-type: text/html; charset=utf-8')?>
<?php
session_start();
include_once("db_connect.php");
include_once 'session.php';
include_once("var.php");
?>
<html>
<head>
	<title>PON</title>
	<style>
	.zebraRow {
		background-color: #c0c0c0;
	}
	tr{
		text-align: center;
	}
	</style>
</head>
<body>
<?php
//echo $uri;
//print_r($_GET);
$ip_olt=$_GET['ip'];

function _submit() {
      window.open('','new_win','width=400,height=600,location=no,toolbar=no,menubar=no,status=no,scrollbars=yes,resizable=yes');
  }
  function content_user() {
      window.open('','new_win','width=400,height=600,location=no,toolbar=no,menubar=no,status=no,scrollbars=yes,resizable=yes');
  }
$time1= date("Y-m-d H:i:s");
$uptime=snmp2_get($ip_olt, $ro, "iso.3.6.1.2.1.1.9.1.4.1");


$uptime=str_replace("IF-MIB::ifDescr.", "", $uptime);


$Array_descr = snmp2_real_walk($ip_olt, $ro, "ifDescr");
$old_olt="";
$n="";
$m="";
$m_calc="";
echo "BDCOM - ".$ip_olt. "<br>UpTime - ".$uptime."<br>";
echo "<a href='onu_view.php?&olt=$ip_olt' target='_blank'>На карте</a>";
if(count($Array_descr)>0) {
	
			foreach($Array_descr as $key => $type) {
	
							$key = str_replace("IF-MIB::ifDescr.", "", $key);
							$type = trim(str_replace("STRING: ", "", $type));
							//echo $type . "--".$key."<br>";
							$olt = strtok($type, ":");
							//echo $olt;
//print_r($id_onu);
								if(preg_match("#:#", $type)){
									//print_r($type . "--".$key."\n");
									$active="";
									$opt_level_up = snmp2_get($ip_olt, $ro, "enterprises.3320.101.10.5.1.5.$key");
									//$opt_level_up = snmp2_get($ip_olt, $ro, "1.3.6.1.4.1.3320.9.183.1.1.5.$key");
										//echo $opt_level_up;
									if ($opt_level_up) {
										$opt_level_up = trim(str_replace("INTEGER: ", "", $opt_level_up)/10);
										$mac_onu = snmp2_get($ip_olt, $ro, "enterprises.3320.101.10.4.1.1.$key");
										$mac_onu = str_replace(" ", ":", strtolower(trim(str_replace("Hex-STRING: ", "", $mac_onu))));

										$active = snmp2_get($ip_olt, $ro, "1.3.6.1.4.1.3320.101.10.1.1.26.$key");
										$active = str_replace(" ", ":", strtolower(trim(str_replace("INTEGER: ", "", $active))));

										//$descr = snmp2_get($ip_olt, $ro, "mib-2.31.1.1.1.18.$key");
										//$descr = str_replace(" ", ":", strtolower(trim(str_replace("STRING: ", "_", $descr))));

										$Array_ports="";
										$Array_ports_="";
										$Array_ports__="";
										$Array_ports = snmprealwalk($ip_olt, $ro, "SNMPv2-SMI::enterprises.3320.101.12.1.1.8.$key");
						
											foreach($Array_ports as $key_ => $state) {
												$port = str_replace("SNMPv2-SMI::enterprises.3320.101.12.1.1.8.$key.", "", $key_);
												$Array_state=explode(":", $state);
												$state = trim($Array_state[1]);

												/*if($state == 1 ){ $state="up"; }
												if($state == 2 ){ $state="down"; }
												$Array_ports__[]= $port." : ".$state;*/
											}
										//$Array_olt[$olt][$mac_onu]['ports'] = $Array_ports__[0];
										$Array_olt[$olt][$mac_onu]['key_onu'] = $key;
										$Array_olt[$olt][$mac_onu]['type'] = $type;
										$Array_olt[$olt][$mac_onu]['level_up'] = $opt_level_up;
										$Array_olt[$olt][$mac_onu]['active'] = $active;
										//$Array_olt[$olt][$mac_onu]['descr'] = $descr;
										}
										else {
											$mac_onu = snmp2_get($ip_olt, $ro, "enterprises.3320.101.10.4.1.1.$key");
											$mac_onu = str_replace(" ", ":", strtolower(trim(str_replace("Hex-STRING: ", "", $mac_onu))));
											$Array_olt[$olt][$mac_onu]['key_onu'] = $key;
											$Array_olt[$olt][$mac_onu]['type'] = $type;
											$Array_olt[$olt][$mac_onu]['level_up'] = 0;
											$Array_olt[$olt][$mac_onu]['active'] = 0;
										}
									
									
							}
			}	

			ksort($Array_olt);
			echo "<form action=”onu.php” id=”form1”></form>";

			print("<br><br><center><table border='0' cellpadding='0' cellspacing='1' width='90%'>");
			print("<tr class=head bgcolor=#ffffc0>
			 
			 <td ><strong>Имя ONU</strong></td>
			 <td ><strong>Описание</strong></td>
			 <td ><strong>Mac ONU</strong></td>
			 <td ><strong>Уровень пр., db</strong></td>
			 <td ><strong>GPS</strong></td>
			 <td ><strong>UB</strong></td>
			 <td ><strong>Edit</strong></td>
			 <td ><strong>VIEW</strong></td>
			 <td ><strong>История</strong></td>
			 </tr>");

			foreach($Array_olt as $key => $type)

			{
				
				$olt = $key;
				$ports="";
				//$n="";
				//$m="";
				//$m_calc="";
				//$old_olt="";
					foreach($type as $key1 => $type1)
					{
						$mac_onu = $key1;
						$level_up = $type1['level_up'];
						$type = $type1['type'];
						$active = $type1['active'];
						//$ports = $type1['ports'];
						//$d = $type1['descr'];
						$key_onu = $type1['key_onu'];
						$n++;

						###################################################################################
						$result = mysql_query("SELECT username FROM alldata WHERE maconu='$mac_onu'");
						$myrow = mysql_fetch_assoc($result);
						$username = $myrow['username'];
						###################################################################################
						$query="SELECT descr FROM pon WHERE mac_onu='$mac_onu'";
						$res=mysql_query($query);
						$itog=mysql_fetch_assoc($res);
							
							$d = $itog['descr'];

								if(($olt!=$old_olt)&&($n!=1)) {

								print("<tr class=head bgcolor=#ffffc0><td><font color=$warn>Всего: <b>$m </b>ONU</td>");
								$m=0;
								//echo $msg;
								//$m_calc=0;
								print("<tr height=40><td colspan=5></td></tr>");
								}
								$m++;
								$m_calc++;
									if ($level_up == 0) {
												$colorfont="red";
												$level_up="0 ";
												//$lable="ONU не подключена!";
													    
									}  elseif ($level_up <= -25.5) {

									  //  $lable="Плохой сигнал!!!";
									    $colorfont="blue";

									}
									elseif ($level_up >= -10) {

									  //  $lable="Спасай глаз!!!";
									    $colorfont="black";

									}
									else  {

									    $colorfont="green";
									  //  $lable="Сигнал в пределах нормы!";
									}				
						$cssClass="normalRow";

								if($n % 2 == 0) {
									$cssClass = "zebraRow";
								}
						
						echo "
						<tr class=$cssClass>
						
						<td>$type</td>
						<td>$d</td>";
						if (empty($username)) {
							echo "<td>$mac_onu</td>";
						}
						else {
							echo "<td><form action=reg-edit.php method=\"POST\" target='content'>
												<input  type=\"submit\" name=\"user_edit\" value=\"$username\">
												<br><lable>$mac_onu</lable>

										</form>
										
								</td>";
						}
						####################################################################
						
						####################################################################
						echo "<td><font color=$colorfont><b> ".$level_up." db</b> <br/></td>
						<td nowrap align='left'>
						";
								$query="SELECT lat,levelhystory FROM pon WHERE mac_onu='$mac_onu'";
								$res=mysql_query($query);
								//$count=mysql_num_rows($res);
								//echo $count;
								
								$itog=mysql_fetch_assoc($res);
									$lat = $itog['lat'];
									$levelhystory=$itog['levelhystory'];
										//echo $lat;# code...
			
										if ($lat == 0) {
											echo "<a href='location.php?&olt=$ip_olt&mac=$mac_onu&lat=$lat&descr=$d' target='_blank'><img src='pic/red.png' height=\"50\"";

										} else {
											echo "<img src='pic/green.png' height=\"50\"";
										}
			

							//if(($active==1)||($active==3)){ print("$ports"); }else{}
								switch ($olt) {
									case 'EPON0/1':
										$sfp_port_id=8;# code...
										break;
									case 'EPON0/2':
										$sfp_port_id=9;#
										break;
									case 'EPON0/3':
										$sfp_port_id=10;#
										break;
									case 'EPON0/4':
										$sfp_port_id=11;#
										break;
									default:
										# code...
										break;
								}

								echo 
								"</td>
								<td><a href='unbind_onu.php?mac_onu=$mac_onu&key_onu=$sfp_port_id&ip=$ip_olt' target='_blank'><img src='pic/delete.png' width=\"40\"></a>
								</td>
								<td><a href='edit_onu.php?epon=$olt&epon_onu=$type&mac_onu=$mac_onu&key_onu=$key_onu&descr=$d&ip=$ip_olt&port=$port' target='_blank'><img src='pic/comment-edit-icon.png' width=\"50\">
								</td>
								<td><a href='onu.php?epon=$type&mac_onu=$mac_onu& key_onu=$key_onu&descr=$d&ip=$ip_olt&port=$port' target='_blank'><img src='pic/view.png' width=\"60\"></a>
								</td>
								<td>
								
								 $levelhystory

								</td>
								</tr>";

								$old_olt=$olt;
						#######################################################3
						if ($m>"50"){ 
							$warn="red";
							$msg="<h3>Обратите внимание на порт. Заканчиваются места!!!</h3>";
						} else { 
							$warn="black";
						}
						##########################################################
			
					}

			}
$c="";
$c=$m_calc+$c;

print ($msg);
print("<tr class=head bgcolor=#ffffc0 ><td>Всего: <b> $m </b>ONU</td>");
print("</table></center>");
}
echo "<label class=\"allonu\"><h4>Всего зарегистрировано ".$c. " из 256 возможных!</h4></label>";
mysql_close();
$time2= date("Y-m-d H:i:s");
   echo 'Start: '.$time1.' End:'.$time2.'</br>';
?>

</body>
</html>

Громіздко, але, як міг... 

Ссылка на сообщение
Поделиться на других сайтах

 

од опроса OLT-a примерно 20 с.:

Круто, но насколько я вижу в базу он ниче не собирает....

 

У вас есть все данные, в чем проблема внести в базу?

 

Вот на примере PONcontrol опрос всех OLT-ов:

<?php


$time1= date("Y-m-d H:i:s");
include 'vars.php';
include_once 'function_lib.php';
$extra = 'index.php';



$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES utf8");
mysql_select_db($mysql_db);
$psql = "select * from olts order by ip";
$pretval = mysql_query( $psql, $conn );
if(! $pretval )
{
  die('Could not enter data: ' . mysql_error());
}

  while ($row=mysql_fetch_array($pretval)) {

$sql_ip = $row['ip'];
$ro = $row['ro'];
$ip = long2ip($sql_ip);
include 'ping.php';

if ($ping == 0) {
} else {

$sql_req = "UPDATE olts SET last_act=\"$date\" WHERE ip='$sql_ip'";
$retval_ping = mysql_query( $sql_req, $conn );
if(! $retval_ping )
{
  die('Could not enter data: ' . mysql_error());
}


$table = str_replace (".", "_", $ip);
$equipment_id='';
  echo "</br>SysInfo</br>";
$session = new SNMP(SNMP::VERSION_2C, $ip, $ro);
//$session->valueretrieval = SNMP_VALUE_PLAIN;
  $sys = $session->walk("1.3.6.1.2.1.1", TRUE);
  var_export($sys);
 echo "</br>";


$ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);

$ifSpeed = $session->walk(".1.3.6.1.2.1.2.2.1.5", TRUE);

$ifAdminStatus = $session->walk(".1.3.6.1.2.1.2.2.1.7", TRUE);

$ifOperStatus = $session->walk(".1.3.6.1.2.1.2.2.1.8", TRUE);

$ifInErrors = $session->walk(".1.3.6.1.2.1.2.2.1.14", TRUE);

$ifOutErrors = $session->walk(".1.3.6.1.2.1.2.2.1.20", TRUE);

$ONUMAC = $session->walk("1.3.6.1.4.1.3320.101.10.1.1.3", TRUE);

$ONURxLevel = $session->walk("1.3.6.1.4.1.3320.101.10.5.1.5", TRUE);

$ONUTemp = $session->walk("1.3.6.1.4.1.3320.101.10.5.1.2", TRUE);

$ONUDist = $session->walk("1.3.6.1.4.1.3320.101.10.1.1.27", TRUE);

$ONUVendor = $session->walk("1.3.6.1.4.1.3320.101.10.1.1.1", TRUE);

$ONUModel = $session->walk("1.3.6.1.4.1.3320.101.10.1.1.2", TRUE);

/*$session =  new SNMP(SNMP::VERSION_1, $ip, $ro);
$session->oid_increasing_check = FALSE;
$session->oid_output_format = SNMP_OID_OUTPUT_NUMERIC;
$UserMAC = $session->walk("1.3.6.1.4.1.3320.152.1.1.3", TRUE);*/



	foreach ($ifDescr as $key => $value) {
	$iface[$key]['IfId']=$key;	
	$value=explode(' ', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace("\"", "", $value);
	$iface[$key]['IfDescr']=$value;
	}
	foreach ($ifSpeed as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfSpeed']=$value;
	}
	foreach ($ifAdminStatus as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfAdminStatus']=$value;
	}
	foreach ($ifOperStatus as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfOperStatus']=$value;
	}
	foreach ($ifInErrors as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfInErrors']=$value;
	}
	foreach ($ifOutErrors as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['IfOutErrors']=$value;
	}
	foreach ($ONUMAC as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace (" ", ":", $value);
	$iface[$key]['ONUMAC']=$value;
	}
	foreach ($ONURxLevel as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['ONURxLevel']=$value;
	}
	foreach ($ONUTemp as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$value = $value/256;
	$value = round($value, 2);
	$iface[$key]['ONUTemp']=$value;
	}
	foreach ($ONUDist as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['ONUDist']=$value;
	}
	foreach ($ONUVendor as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace("\"", "", $value);
	$iface[$key]['ONUVendor']=$value;
	}
	foreach ($ONUModel as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace("\"", "", $value);
	$iface[$key]['ONUModel']=$value;
	}

foreach ($iface as $key){
	echo '</br>';
	$date=date("Y-m-d H:i:s");
	$IfId=$equipment_id.'_'.$key['IfId'];
	$IfDescr=$key['IfDescr'];
	$IfSpeed=$key['IfSpeed']; 
	$IfAdminStatus=$key['IfAdminStatus']; 
	$IfOperStatus=$key['IfOperStatus']; 
	$IfInErrors=$key['IfInErrors']; 
	$IfOutErrors=$key['IfOutErrors'];
	if(isset( $key['ONUMAC'])){
	$ONUMAC=$key['ONUMAC'];}else{$ONUMAC=NULL;}
	if(isset( $key['ONURxLevel'])){
	$ONURxLevel=$key['ONURxLevel']/10;}else{$ONURxLevel="Offline";}
	if(isset( $key['ONUTemp'])){
	$ONUTemp=$key['ONUTemp'];}else{$ONUTemp=NULL;}
	if(isset( $key['ONUDist'])){
	$ONUDist=$key['ONUDist'];}else{$ONUDist=NULL;}
	if(isset( $key['ONUVendor'])){
	$ONUVendor=$key['ONUVendor'];}else{$ONUVendor=NULL;}
	if(isset( $key['ONUModel'])){
	$ONUModel=$key['ONUModel'];}else{$ONUModel=NULL;}
	$ONUVendorModel=$ONUVendor.'/'.$ONUModel;
 	echo 'IfId: '.$IfId.'</br>';  
	echo 'IfDescr: '.$IfDescr.'</br>';
	echo 'IfSpeed: '.$IfSpeed.'</br>'; 
	echo 'IfAdminStatus: '.$IfAdminStatus.'</br>'; 
	echo 'IfOperStatus: '.$IfOperStatus.'</br>'; 
	echo 'IfInErrors: '.$IfInErrors.'</br>'; 
	echo 'IfOutErrors: '.$IfOutErrors.'</br>'; 
	$epon=stripos($IfDescr, 'pon');
	$eponslash=stripos($IfDescr, '/');
	$eponcolon=stripos($IfDescr, ':');
	if($epon !== false and $eponslash!== false and $eponcolon !== false){
	echo 'ONU MAC: '.$ONUMAC.'</br>'; 
	echo 'ONURxLevel: '.$ONURxLevel.'</br>'; 
	echo 'ONUTemp: '.$ONUTemp.'</br>'; 
	echo 'ONUDist: '.$ONUDist.'</br>'; 
	echo 'ONUVendor: '.$ONUVendor.'</br>'; 
	echo 'ONUModel: '.$ONUModel.'</br>'; 
	$nameint = NameIntAddZero($IfDescr);
	UpdateOnu($conn, $sql_ip, $date, $nameint, $ONUMAC, $ONURxLevel);}
	echo '________________________________</br>';
	

}
  }}

  $session->close();

  $time2= date("Y-m-d H:i:s");
  echo 'Start: '.$time1.' End:'.$time2.'</br>';
  mysql_close($conn);

   ?>
Ссылка на сообщение
Поделиться на других сайтах

Дело в том, что мне хватает понконтрола. Не вижу необходимости снимать лишак, типо ошибок на порту, админстатус порта ОНУ, по крайней мере у себя.

Ссылка на сообщение
Поделиться на других сайтах

Дело в том, что мне хватает понконтрола. Не вижу необходимости снимать лишак, типо ошибок на порту, админстатус порта ОНУ, по крайней мере у себя.

 

Ломать не строить....

 

Удалил "лишак", опрос трех ОЛТов (~460 ONU) и внесение в БД всех данных выполняется за 35-40 с.

<?php
$time1= microtime(true);
include 'vars.php';
include_once 'function_lib.php';
$extra = 'index.php';

$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES utf8");
mysql_select_db($mysql_db);
$psql = "select * from olts order by ip";
$pretval = mysql_query( $psql, $conn );
if(! $pretval )
{
  die('Could not enter data: ' . mysql_error());
}

  while ($row=mysql_fetch_array($pretval)) {

$sql_ip = $row['ip'];
$ro = $row['ro'];
$ip = long2ip($sql_ip);
include 'ping.php';

if ($ping == 0) {
} else {

$sql_req = "UPDATE olts SET last_act=\"$date\" WHERE ip='$sql_ip'";
$retval_ping = mysql_query( $sql_req, $conn );
if(! $retval_ping )
{
  die('Could not enter data: ' . mysql_error());
}

$table = str_replace (".", "_", $ip);

$session = new SNMP(SNMP::VERSION_2C, $ip, $ro);

$ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);

$ONUMAC = $session->walk("1.3.6.1.4.1.3320.101.10.1.1.3", TRUE);

$ONURxLevel = $session->walk("1.3.6.1.4.1.3320.101.10.5.1.5", TRUE);

unset($iface);

	foreach ($ifDescr as $key => $value) {
	$iface[$key]['IfId']=$key;	
	$value=explode(' ', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace("\"", "", $value);
	$iface[$key]['IfDescr']=$value;
	}
	foreach ($ONUMAC as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$value = str_replace (" ", ":", $value);
	$iface[$key]['ONUMAC']=$value;
	}
	foreach ($ONURxLevel as $key => $value) {
	$value=explode(':', $value);
	$value=end($value);
	$value=trim($value);
	$iface[$key]['ONURxLevel']=$value;
	}

foreach ($iface as $key){
	echo '</br>';
	$date=date("Y-m-d H:i:s");
	if(isset( $key['ONUMAC'])){
	$ONUMAC=$key['ONUMAC'];}else{$ONUMAC=NULL;}
	if(isset( $key['ONURxLevel'])){
	$ONURxLevel=$key['ONURxLevel']/10;}else{$ONURxLevel="Offline";}
 	echo 'IfId: '.$IfId.'</br>';  
	echo 'IfDescr: '.$IfDescr.'</br>';
	$epon=stripos($IfDescr, 'pon');
	$eponslash=stripos($IfDescr, '/');
	$eponcolon=stripos($IfDescr, ':');
	if($epon !== false and $eponslash!== false and $eponcolon !== false){
	echo 'ONU MAC: '.$ONUMAC.'</br>'; 
	echo 'ONURxLevel: '.$ONURxLevel.'</br>'; 
	$nameint = NameIntAddZero($IfDescr);
	UpdateOnu($conn, $sql_ip, $date, $nameint, $ONUMAC, $ONURxLevel);}
	echo '________________________________</br>';
}}}

  $session->close();

  $time2= microtime(true);
	$diff = $time2 - $time1;

echo '</br>Run time:'.$diff.' c</br>';
  mysql_close($conn);
?>
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від alexeya
      Продам OLT ZTE C320. OLT укомплектован блоком живлення PRAM, двома платами GTGH(K00), платою керування SMXA(A31).

      Кожна GTGH-плата, це 16 GPON портів, 16 GPON модулів C++.
      SMXA-плата, це SFP+ (10G) порт, 1 гігабітний комбо порт.

      В наявності 2 одиниці. Один новий, один був у використанні (стан близький до нового)

      Ціна нового - 120000 грн
      Ціна вживаного - 105000 грн

      BDCOM GP-3600-08B куплявся в ДЕПСі в вересні 23 року. В ньому використовувались тільки 3 порти (тобто є тільки 3 GPON SFP модулі). 48к разом з модулями

      ОЛТИ без модулів:
      3310B-2AC - 1штука - 8000
      3310B - 2 штуки - 7500
      3310B + Proline UPS - 1 штука - 8500
      3310D + Proline UPS - 1 штука - 12500
      BDCOM P3600-04 + Proline UPS - 1 штука - 16500
      3616-2TE - 3 штуки - 53к

      Додам вживані EPON С++ модулі по 400 грн за штуку. Або нові по 750 грн за штуку
    • Від jaroslav2r
      Добрий день,
      Виникла проблема з DHCP snooping на одному з наших OLT DASAN V5808. При його увімкненні клієнти перестають отримувати IP-адреси через DHCP. Оновлення прошивки до версії V5808 NOS 1.12p1 не допомогло. На інших OLT така проблема не спостерігається.
      DHCP snooping налаштовано за допомогою наступних команд, де uplink — порт 15:
      Copy code
      ip dhcp snooping
      ip dhcp snooping vlan 665
      ip dhcp snooping trust 15
      Хтось стикався з подібною проблемою і знайшов рішення?
       
      We’re experiencing an issue with DHCP snooping on one of our DASAN V5808 OLTs. When DHCP snooping is enabled, clients stop receiving DHCP offers. Updating the firmware to version V5808 NOS 1.12p1 didn’t resolve the problem. Other OLTs don’t seem to have this issue.
      The DHCP snooping configuration was done with the following commands:

      ip dhcp snooping
      ip dhcp snooping vlan 665
      ip dhcp snooping trust 15
       
      uplink —  15 port
       
      Has anyone encountered this problem and managed to fix it?
    • Від Rico3110
      ПРОДАМ НОВІ OLT
      нова C-DATA EPON FD1204S-R2-DAP - 1шт
      нова C-DATA GPON FD1604S-2AC - 1шт
       
      Блоки живлення нові EF9012 і EF6012
       

       
       
      UP!!!  По ціні, та наявності, уточнюйте в приватних повідомленнях!
       
    • Від Oumpi
      Продам 2 олта
      p3310B 8к
      p3310D 11к

      Не ремонтировались полностью исправные, сняти в связи обновления оборудования.
      На одном менял БП 
      Харьков 
       


    • Від Quella
      Шукаєте місцевого постачальника OLT, ONU з України,  зв’яжіться з нашими дистриб’юторами для  цих пристроїв  і технічної підтримки!
       
       
      Looking for OLT, ONU supplier from Ukraine local,  contact our distributors for these device and technical support!
       
      330UAH/pcs
       
       
      Contact:
      Вадим Whatsapp/Viber:  +380 99 179 6389
      website: 
      https://smartfiber.com.ua/
       
       
       


×
×
  • Створити нове...