mrtg cpuinfo.pl

Sekcia: Konfigurácia 13.06.2007 | 14:55
jano   Návštevník
ahojte

rozbehal som mrtg a pokusam sa rozbehnut aj cpuinfo.pl
co je prilozeny v zdrojakoch avsak
ked ho otestujem
pocitac:/home/SERVER/MRTG# ./cpuinfo.pl localhost linux



localhost
pocitac:/home/SERVER/MRTG#
tak mi to vyhodi presne toto nadmnou, cize ziadne cisla akoby sa mu patrilo,
tak som sa teda pozrel do zdrojaku cpuinfo.pl a nieco mi tam nesedi,
pastnem sem sekciu linux, teda tu pre mena dolezitu :)
sub linux
  {
   # Run commands
   if ($machine =~ 'localhost')
   {
   $getcpu = `/usr/bin/sar -u 1 10 | grep Average`;
   $getuptime = `/usr/bin/uptime`;
   }
   else
   {
   $getcpu = `$rsh $machine "/usr/local/bin/sar -u 1 10 | grep Average"`;
   $getuptime = `$rsh $machine "/usr/bin/uptime"`;
   }

******** takze az sem je to OK a rozumiem tomu, ked to aj rucne odskusam na konzole, tak to slape ****************

***** teraz nasleduje usek ktoremu nechapem a myslim ze v nom bude chyba
preco mi to nevypise nic **********
   # Parse though getcpu and get data
   $getcpu =~ /^Average:\s+all\s+(\d+)\.\d+\s+\d+\.\d+\s+(\d+)\.\d+\s+\d+\.\d+/;
   $getcpuusr = $1;
   $getcpusys = $2;

co ma byt akoze to $getcpu? 
a zatazenie uzivatelov sa ma ako dostat do 
$getcpuusr = $1 ked tam nie je ziadny vypis? 
akurat nadefinovanie $getcpu??? 
kebyze tam je este aspon print $getcpu alebo co, 
ale nechapem ako sa to ma z toho $getcpu 
dostat do $getuusr... no kazdopadne tomu 
nerozumiem, vie mi to niekto objasnit, resp. co
urobit aby mi to slapalo? Dakujem


   # Print getcpu data for mrtg
   print $getcpuusr."\n";
   print $getcpusys."\n";

   # Parse though getuptime and get data
   $getuptime =~ /^\s+\d{1,2}:\d{2}..\s+up\s+(\d+)\s+(\w+),/;

   # Print getuptime data for mrtg
   print $1." ".$2."\n";

   # Print machine name for mrtg
   print $machine."\n";

  }
    • Re: mrtg cpuinfo.pl 13.06.2007 | 15:22
      Avatar nipo Ubuntu 9.04  Používateľ
      1. Mas naisntalovany SAR ?
      2. sedi cesta ?
      /usr/bin/sar

      ak je vsetko OK .. musi to ist :-)
      • Re: mrtg cpuinfo.pl 13.06.2007 | 19:18
        jano   Návštevník
        ano jasne ze mam, najskor som nemal samozrejme ale to mi este docvaklo
        tusim to bol balik sysstat...

        ked zadam
        sar -u 1 10
        tak to pekne hadze riadky, ale vravim ten skript to akoby vobec
        nerozparsoval alebo co, vobec mi nevypise ziadne cisla o zatazeni na konzolu
        ked to spusitim
        ./cpuinfo.pl localhost linux
        a kedze nic nevypise tak mi to ani mrtg nemoze zaznamenat samozrejme
        • Re: mrtg cpuinfo.pl 13.06.2007 | 19:21
          jano   Návštevník
          normalne ma naseru a napisem si vlastny skript...
          sak mi staci len sar -u 1 10 | grep average

          ale nechem robit nieco co uz je urobene, len ma sere ze naco to tam davaju ked to neplni svoj ucel... az tak skriptovat neviem ale toto by som zvladol aj sam, javy sa mi tento skript daky cely divnyyy...
          :(((
      • Re: mrtg cpuinfo.pl 13.06.2007 | 19:43
        jano   Návštevník
        aha, tak chyba asi nebude v skripte, ale niekde v PC,

        pretoze som si skusil napisat takyto primitivny skript:

        #!/bin/sh

        riadok=`/usr/bin/sar -u 1 10 | grep Average | cut -d\ -f3`
        echo $riadok;

        s tym ze by to malo vypisat 3 stlpec, a vypise mi zase len prazdny riadok
        tak ako aj ten povodny skript, ten vypisal dva lebo aj tak mal, ale boli prazdne,
        to znamena ze akoby to tam posielalo ale nic sa tam neobjavovalo, hmm to je divneee...
        • Re: mrtg cpuinfo.pl 14.06.2007 | 02:07
          WlaSaTy   Návštevník
          sar sice nemam a ani mrtg ale nie je tych medzier vo vystupe viacej (popripade aj tabelatorov)? cut je na to citlivy, skus namiesto cut ... pouzit awk '{print $3;}'
          • Re: mrtg cpuinfo.pl 14.06.2007 | 19:19
            jano   Návštevník
            jo presne, awk '{print $3;}' je to prave orechove
            vdaka ti...

            toto pisem pre take lamy ako som ja ;) a ak bude chciet niekto skript tak moze pouzit tento, ten cpuinfo jednoducho nejde...

            vytvor subor cpu.sh a vloz donho:
            #!/bin/sh
            cpusys=`/usr/bin/sar -u 10 | grep Average | awk '{print $5}' | cut -d ',' -f2`
            cpuidl=`/usr/bin/sar -u 10 | grep Average | awk '{print $8}' |  cut -b 1-2`
            
            echo $cpusys;
            echo $cpuidl;
            uptimee=`/usr/bin/uptime | cut -b 14-29`
            echo $uptimee" 
            echo "linux"
            
            a uz len ulozit a je to :)) samozrejme nastavit mu prava na spustanie...

            este pozor na slovicko Average, pretoze zalezi aku lokalizaciu mate, moze tam byt aj Priemer a podobne, da sa to zistit ake slovo tam treba napisat tak, ze v konsole sa napise sar -u 1 a ak v poslednom riadku bude Average tu v skripte sa pouzije Average ak tam bude Priemer da sa tam Priemer :))
            Okes dik vsetkym, cafte
            • Re: mrtg cpuinfo.pl 14.06.2007 | 19:39
              WlaSaTy   Návštevník
              ano, awk. ak mas totizto 5x medzeru, tak clovek to precita rovnao ako awk - teda ako jednu medzeru. ale cut? ten to precita ako 5 medzier a medzi druhou a tretou je prazdno, ziaden znak :)

              mimochodom, po presiahnuti 99dni, 23hod a 59min ti moze byt uptime zobrazovane zle ale to ta asi netrapi.
              • Re: mrtg cpuinfo.pl 15.06.2007 | 01:24
                jano   Návštevník
                ale trapi ma to, tak co povies na toto:
                /usr/bin/uptime | awk '{print $3 "" $4 "" $5}'
                :)

                dik za upozornenie...

                zarazilo ma vsak este toto, stiahol som z dakade takyto skript na monitorovanie SWAPu,
                #!/usr/bin/perl
                
                $machine = `/bin/hostname`;
                chomp($machine);
                $mem = `/usr/bin/free | grep Swap`;
                $uptime = `/usr/bin/uptime`;
                
                if ($mem =~ /^Swap:\s*(\d*)\s*(\d*)\s*(\d*)/) {
                        $tot = $1;
                        $used = $2;
                        $free = $3;
                                }
                
                if ($uptime =~ /up (.*),  \d* users?,/) {
                        $up = $1;
                                }
                
                print "$used\n";
                print "$free\n";
                print "$up\n";
                print "$machine\n";
                

                pekne mi to vsetko aj vypisuje ked spustim skript,
                vypisuje mi nasledovne hodnoty
                0
                7887832
                9 days,  5:25
                
                este dodam ze to vypisuje stale rovnake hodnoty kedze system zatial vobec nepotreboval SWAPovat,
                mno, ale problem je v tom ze ked spustim mrtg aby mi to monitorovalo SWAP pomocou tohto skriptu tak
                po prvom spusteni vytvori mrtg vo /var/www/mrtg patricne subory, medzi inymi aj subor
                MOJSERVERswap.log s nasledujucimi hodnotami:
                1181855723 0 7887832
                1181855723 0 0 0 0
                1181855635 0 0 0 0
                1181855400 0 0 0 0
                1181855100 0 0 0 0
                1181854800 0 0 0 0
                1181854500 0 0 0 0
                1181854200 0 0 0 0
                1181853900 0 0 0 0
                1181853600 0 0 0 0
                1181853300 0 0 0 0
                1181853000 0 0 0 0
                1181852700 0 0 0 0
                1181852400 0 0 0 0
                1181852100 0 0 0 0
                1181851800 0 0 0 0
                1181851500 0 0 0 0
                1181851200 0 0 0 0
                1181850900 0 0 0 0
                1181850600 0 0 0 0
                1181850300 0 0 0 0
                1181850000 0 0 0 0
                ...
                
                ale po dalsom spusteni mrtg mi to tam aj tak zostava bez zmeny...
                Tym padom mi vsak na grafe nic nevypise, je to tym ze sa tie hodnoty na SWAPE nemenia?
                Ale aj tak by mi to malo vykreslit aspon Free Swap a Used Swap by bol na 0, tak by som to chapal, ale takto nie :((


                PS: skusil som teda do toho perloveho skriptu hodit aby to tam davalo vzdy nejake nahodne cisla, a vuala, graf sa zacal vykreslovat, takze to vyzera akoby MRTG mylili stale tie iste rovnake hodnoty, da sa to nejako obist???
                • Re: mrtg cpuinfo.pl 15.06.2007 | 11:51
                  jano   Návštevník
                  ok, tak swap.cfg som mal

                  MaxBytes[SWAP]: 1024000
                  a ked som to opravil na
                  MaxBytes[plutoSWAP]: 10240000
                  tak uz to grafy kresli...

    • Re: mrtg cpuinfo.pl 14.06.2007 | 01:15
      jano   Návštevník
      no, skusal som presne ten isty skript aj na inej masine ale aj tak to vypise len dva prazdne riadky... :(
    • Re: mrtg cpuinfo.pl 14.06.2007 | 13:45
      Avatar titanik mint  Používateľ
      pozri si http://en.wikipedia.org/wiki/Regular_expression /^\s+\d{1,2}:\d{2}..\s+up\s+(\d+)\s+(\w+),/; z tohto vyrazu ti zobrazi $1 to co je v prvej zatvorke $2 to co je v druhej zatvorke, ... atd.