La section linux de pokie

none none none
none pokie

 EeeBox

 Modelisme

 F@milyNet

 Linux
    Infosec nut
    Arm Raspberry
    Install 8.0
    Install 11.0
    MGE UPS WEB
    ADSL check
    TomTom

 Electronique

 Escalade

 Photos

 Skicam

 Ce serveur

 Inscription

 Liens

Vulnerability Scanner
none
none none none
none none none
none Projet SNMP UPS WEB Monitor

Projet SNMP UPS WEB Monitor

Ce projet decrit l'installation et la configuration d'un monitoring de l'activite d'un onduleur via le protocole snmp

Les logiciels necessaire:

  • installpkg ucd-snmp-4.2 pour la distribution slackware
  • Les outils snmp sont inclus dans certaines version de php 4

Installation:

Il faut lancer le deamon snmptrapd qui intercepte tout ce qui arrive de la carte snmp et le place dans le syslog.

Exemple d'interrogation:

sous unix:
pokie:# snmpwalk 176.134.1.6 public 33
33.1.1.1.0 = "MGE UPS Systems"
33.1.1.2.0 = "ESV8+"
33.1.1.3.0 = "V1.1"
33.1.1.4.0 = "V3.35"
...

Le programme principal en php (demo):

<html>
<head>
  <title>Infos Onduleur MGE</title>
</head>
<body>
<?

// php_mge.phps
//
// Ce script permet d'observer quelques parametres via le serveur apache en php
// Il va interroger la carte snmp de l'onduleur MGE Pulsar ESV8 et regarder dans
// les logs du systeme tous les defauts apparus depuis l'installation de celui-ci.
//
// Ce script est adaptable aux autres onduleurs pourvus d'une interface snmp.
//
// Dans la section linux, vous trouverez egalement un tarball qui contient des
// scripts et config pour recevoir un email sur son GSM lorsqu'un evenement se produit.
//
// Le 8 Novembre 2002.
//
$ip_onduleur 0.0.0.0// Mettre ici l'IP de l'onduleur
exec("snmpget $ip_onduleur public system.sysDescr.0 33.1.2.1.0 33.1.2.3.0 33.1.2.4.0 33.1.4.1.0 33.1.4.4.1.5.1",$pages);

$batteries = array ("2" => "OK""3" => "Faibles""4" => "Dechargees");
$modeond = array ("3" => "normal""4" => "Bypass""5" => "Batterie""6" => "Booster""7" => "Reducer");

$messond = array ( => "Initialisation"11 => "Alimentation onduleur sur batterie",
                  
12 => "Alimentation onduleur sur secteur"17 => "<font color=red>Pas de secteur</font>",
                  
18 => "<font color=green>Retour du secteur</font>"19 => "Mode booster",
                  
20 => "Fin du mode booster"29 => "<font color=gray>Attente</font>"37 => "Probleme Communication",
                  
38 => "Communication OK"51 => "Mode buck"52 => "Fin du mode buck");

echo 
"<br><table>\n";
for(
$i=0;$i<count($pages);$i++)
{
  list(
$item,$tab)=split(" = ",$pages[$i],2);
  switch (
$i) {
    case 
: echo "<tr><td>Model</td><td>$tab</td></tr>\n"; break;
    case 

      echo 
"<tr><td>Batteries</td><td>$batteries[$tab]</td></tr>\n";
      break;
    case 
: echo "<tr><td>Autonomie</td><td>$tab mn</td></tr>\n"; break;
    case 

      
$tabi $tab 2;
      
$reste 200 $tabi;
      echo 
"<tr><td>Charge batteries</td><td>";
      echo 
"<img src=\"icons/gprg.png\" border=0 width=$tabi height=16>";
      echo 
"<img src=\"icons/bprg.png\" border=0 width=$reste height=16>";
      echo 
"  $tab %</td></tr>\n";
      break;
    case 
:
      echo 
"<tr><td>Mode</td><td>$modeond[$tab]</td></tr>\n";
      break;
    case 
:
      
$tabi $tab 2;
      
$reste 200 $tabi;
      echo 
"<tr><td>Charge reseau</td><td>";
      echo 
"<img src=\"icons/prg.png\" border=0 width=$tabi height=16>";
      echo 
"<img src=\"icons/bprg.png\" border=0 width=$reste height=16>";
      echo 
"  $tab %</td></tr>\n";
      break;
  }
}
echo 
"</table>\n";
echo 
"<br>\n";
echo 
"<table width=600>\n";
echo 
"<tr><td>Date</td><td>Ev&egrave;nement</td></tr>\n";
$log file("/var/log/syslog");
$nblog count($log);
for (
$i 1$i $nblog$i++) {
  
$data chop($log[$nblog-$i]);
  if (
strpos($data,"Trap")) {
    
$date substr($data,0,strpos($data," pokie"));
    
$even substr($data,strpos($data,"(")+1);
    
$even substr($even,0,strpos($even,")"));
    echo 
"<tr><td>$date</td><td>$messond[$even]</td></tr>\n";
    }
}
?>
</table>
</body>
</html>
none
none none none