Linux rendszerfelügyelet a sysstat programcsomag használatával

Az egyik legáltalánosabb feladat a rendszergazda számára a kiszolgáló felügyelete és karbantartása. Egy adott pillanatban egyszerű megmondani, milyen állapotban van egy szerver, de hogy lehet ezeket az információkat folyamatosan rögzíteni?

Az egyik módja lehet ezen feladatnak a sysstat programcsomag használata. Ez a csomag egyszerű segédprogramok gyűjteménye, melyek képesek folyamatosan gyűjteni és tárolni a Linux rendszer teljesítménymutatóit.
Installálása egyszerű, Debian rendszer alatt az apt, Red Hat alatt a yum alkalmazás használható a csomag telepítésére:

root@ss1:~# apt-get install sysstat

Installálás után már a rendelkezésünkre is állnak azok a scriptek, melyeket rendszerünk felügyeletére használhatunk. Példaként nézzük a sar (system activity reporter) parancsot. Ha 10 mérést szeretnénk 5 másodpercenként megjeleníteni, akkor a sar 5 10 parancsot adjuk ki.

root@orion:~# sar 5 10
Linux 2.6.22-3-amd64 (orion) 	2008-03-15

21.57.18        CPU     %user     %nice   %system   %iowait    %steal     %idle
21.57.23        all      8,77      0,00      1,33      0,00      0,00     89,91
21.57.28        all      7,85      0,00      1,73      0,00      0,00     90,42
21.57.33        all      9,38      0,00      1,33      0,00      0,00     89,30
21.57.38        all      8,76      0,00      2,24      0,31      0,00     88,70
21.57.43        all      9,57      0,00      1,43      0,00      0,00     89,00
21.57.48        all      9,67      0,00      1,83      0,00      0,00     88,49
21.57.53        all     10,17      0,00      1,73      0,00      0,00     88,10
21.57.58        all     10,29      0,00      1,32      0,20      0,00     88,19
21.58.03        all      9,57      0,00      1,43      0,00      0,00     89,00
21.58.08        all     10,90      0,00      2,04      0,00      0,00     87,07
Average:        all      9,49      0,00      1,64      0,05      0,00     88,82
root@orion:~#

Rendszerünk kernel információi mellett, itt számos, már jól ismert teljesítménymutató látható. Ahhoz azonban, hogy az adatokat folyamatosan rögzítse a rendszerünk, Debian rendszeren szerkesztenünk kell a /etc/default/sysstat fájlt. Értelemszerűen a ENABLED="false" sort kell megváltoztatni. Ezek után a cron rendszeresen futtatja a megfelelő programokat és a /var/log/sysstat könyvtárban keletkeznek azok az adatfájlok, melyek a rendszerünk teljesítmény adatait tartalmazzák az egész napra vonatkozóan.
Nézzük ezekután a sar parancs kimenetét:

root@ss1:~# sar
Linux 2.6.18-5-amd64 (ss1) 	2008-03-15

00.00.01          CPU     %user     %nice   %system   %iowait    %steal     %idle
00.05.01          all      0,02      0,02      0,17      0,01      0,00     99,79
00.15.01          all      0,01      0,00      0,15      0,01      0,00     99,83
00.25.01          all      0,01      0,00      0,14      0,01      0,00     99,83
00.35.01          all      0,01      0,00      0,14      0,01      0,00     99,84
.
.
.
21.35.01          all      0,03      0,00      0,16      0,04      0,00     99,77
21.45.01          all      0,02      0,00      0,16      0,01      0,00     99,81
Average:          all      0,02      0,00      0,16      0,01      0,00     99,81
root@ss1:~# 

Itt már egy 10 percenként rögzített egész napra vonatkozó adathalmazt kapunk. Ha szeretnénk a mérések sűrűségét növelni, vagy csökkenteni, akkor ezt az /etc/cron.d/sysstat fájlban módosíthatjuk. Mi az, amire itt érdemes figyelni? Elsősorban az %iowait érték. Ha ez túl magas, akkor rendszerünk diszk alrendszere nem képes kiszolgálni rendesen a felhasználói programokat. Mi az, ami azonban ennél is fontosabb egy kiszolgálón? A memória helyzete. Ha gépünk folyamatosan swap-el, akkor bővíteni kell a RAM-ot.

root@mx1:~# sar -W
Linux 2.6.18-5-686 (mx1) 	2008-03-15

00.00.01     pswpin/s pswpout/s
00.05.01         0,00      0,00
00.15.01         0,00      0,00
00.25.01         0,00      0,00
00.35.01         0,00      0,00
00.45.01         0,00      0,00
.
.
.
21.55.01         0,00      0,00
22.05.01         0,00      0,00
Average:         0,00      0,00
root@mx1:~#

Itt láthatóan jó a helyzet swap szempontból. Ha közelebbről is érdekel a memória állapota, akkor az sem gond:

root@mx1:~# sar -r
Linux 2.6.18-5-686 (mx1) 	2008-03-15

00.00.01    kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
00.05.01        85964    950604     91,71     16320    549092    918048     58584      6,00     47948
00.15.01        87256    949312     91,58     16332    550548    918048     58584      6,00     47948
00.25.01        85568    951000     91,75     16364    552200    918048     58584      6,00     47948
00.35.01        70740    965828     93,18     16376    553448    918048     58584      6,00     47948
00.45.01        65764    970804     93,66     16392    553960    918048     58584      6,00     47948
00.55.01       155616    880952     84,99     16124    453480    918048     58584      6,00     47948
01.05.01       159032    877536     84,66     16164    456052    918048     58584      6,00     47948
01.15.01       154168    882400     85,13     16188    456616    918048     58584      6,00     47948
01.25.01       151652    884916     85,37     16224    457780    918048     58584      6,00     47948
.
.
.
.
22.15.01       123664    912904     88,07     17908    486012    918084     58548      5,99     47912
22.25.01       115848    920720     88,82     17912    490736    918084     58548      5,99     47912

Average:    kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
Average:       124468    912100     87,99     18326    467867    918062     58570      6,00     47934

Sokan használják az uptime parancsot a rendszer pillanatnyi terheltségének megállapítására. A sar itt is segít, ha történeti adatokat szeretnénk:

root@mx1:~# sar -q
Linux 2.6.18-5-686 (mx1) 	2008-03-15

00.00.01      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
00.05.01            0       161      0,18      0,25      0,30
00.15.01            0       127      0,24      0,31      0,28
00.25.01            1       124      0,06      0,22      0,24
00.35.01            5       151      0,27      0,28      0,27
00.45.01            0       167      0,11      0,11      0,17
00.55.01            4       154      0,40      0,57      0,41
01.05.01            0       137      0,02      0,14      0,25
01.15.01            0       137      0,31      0,17      0,18
01.25.01            1       158      0,48      0,24      0,18
01.35.01            0       146      0,15      0,29      0,25
.
.
.
.
21.45.01            0       155      0,56      0,41      0,34
21.55.01            0       146      0,10      0,33      0,34
22.05.01            1       140      0,35      0,49      0,41
22.15.01            0       136      0,06      0,21      0,30
Average:            1       154      0,36      0,33      0,30
root@mx1:~# 

Szemmel láthatóan ez nem egy túlterhelt gép, de azért futnak rajta processzek rendesen.
Az elmentett adatokat bármelyik fájlból kiolvashatjuk a -f kapcsoló segítségével, pl.: sar -q -f /var/log/sysstat/sa10.
Nyilván rengeteg egyéb lehetőséget is biztosít számunkra ez a programcsomag. Érdemes tanulmányozni a programokhoz tartozó manual oldalakat. Egy kis fantáziával a kinyert adatokból OpenOffice-ban szép színes diagramokat is készíthetünk.