A következő problémám merült fel:
Az MRTG cpuinfo PHP szkriptjét kicsit módosítanom kellet és a következő született belőle:
#!/usr/bin/perl
$getcpu = `/usr/local/bin/sar -u 1 5 | grep „Average:”`;
($a,$b,$c) = ($getcpu =~ /(d+,d)/g);
$a =~ s/,/./g;
$c =~ s/,/./g;
$getcpuusr = $a;
$getcpusys = $c;
print $getcpuusr.”n”;
print $getcpusys.”n”;
Ez két, az RRDTOOL számára lenyelhető értéket ad ki magából. Ezután az MRTG konfig fájljában megadom, hogy ezt futtassa:
Target[cpu_load]: `/etc/mrtg/szerverek/`
Sajnos a végeredmény problémás, ugyanis az MRTG azt állítja, hogy nem kap vissza adatot:
WARNING: Problem with External get ‘/etc/mrtg/szerverek/p.php’:
Expected a Number for ‘in’ but got ”
WARNING: Problem with Externale get ‘/etc/mrtg/szerverek/p.php’:
Expected a Number for ‘out’ but got ”
ERROR: Target[cpu_load][_IN_] ‘ $target->[3]{$mode} ‘ did not eval into defined data
ERROR: Target[cpu_load][_OUT_] ‘ $target->[3]{$mode} ‘ did not eval into defined data
Van valakinek ötlete? Lehet, hogy a szkript nem értéket ad vissza, hanem mutatót? Ha print-tel nem a változó értékét íratom ki, hanem konkrét számot (print „3.5n”;), akkor működik.
Előre is köszönöm, ha van valakinek ötlete!
legutóbbi hsz