En ce moment je travaille sur un programme avec PHP et Perl pour lire les données système de l'ordinateur et nous avons utilisé SNMP pour collecter des données (ou plutôt, forcé à). Après avoir récupéré les données, nous devions stocker les données dans une base de données, puis utiliser les données pour tracer un graphique linéaire. À l'heure actuelle, j'utilise ce script perl pour récupérer l'utilisation CPU/processeur d'un ordinateur.Comment obtenir l'utilisation moyenne du processeur/processeur d'un ordinateur?
$MIB1 = ".1.3.6.1.2.1.25.3.3.1.2"; #Cpu Processors
$HOST = shift; #or localhost for testing
$count = 0;
#print out all the processors of the computer and their values
#SNMP is used with perl because of the libraries
#snmpwalk retrieves information from the computers by the computer name and MIB
#as there are many values, they are stored in an array to be used
(@values) = &snmpwalk("$HOST","$MIB1");
foreach $value (@values)
{
$count++;
if ($value) {
#fixes the value for presentation
$goodvalue = &strip_comment($value);
#prints out the result. $count will count out the processor number
print "CPU Usage of Processor $count: $goodvalue%\n"; }
if ($value > 90){
#warns user if the processor usage is over 90%
print "Warning: CPU Usage over 90%! \n"
}
else { warn "No response from host :$HOST:\n"; } #provides error
}
Le code, ou plutôt, SNMP récupère plusieurs processeurs individuels et beaucoup doivent savoir qu'il peut y avoir plusieurs processeurs sur un ordinateur, rendant ainsi le stockage de ces données dans un (par exemple la base de données pas très pratique, si un ordinateur J'ai seulement 2 processeurs, le suivant en a 4 et celui en face en a 100.)
Je me demandais si quelqu'un pouvait aider à améliorer ce code ou le changer pour que je puisse les valeur des utilisations CPU/processeur et le stocker dans une base de données. Parce que, je ne suis pas trop sûr de la façon de procéder, car la boucle ne scanne qu'un seul processeur à la fois, et il peut être inconnu combien il y en a.
Merci d'avance.
Au lieu d'écrire le vôtre, vous pouvez utiliser par ex. OpenNMS: http://www.opennms.org/ - il devrait pouvoir détecter automatiquement vos machines, rassembler des résultats et montrer vos graphiques de la charge. – slu