19. A rendszer felügyelete
 
A Linux operációs rendszeren több program is rendelkezésünkre áll kiszolgálónk teljesítményének megfigyelésére és elemzésére. Ezek közül csak néhányat már vizsgáltunk. Ilyen az iptraf és az MRTG is. Ismerkedjünk meg a topLogWatch és a munin programokkal.
 
    19.1. A top
 
A top programmal megfigyelhetjük a processzorterhelés átlagát, üzemidőt, a gépen futó folyamatok számát és még sok egyéb információt. A top 3 másodpercenként automatikusan, a szóköz leütésére azonnal frissíti az adatokat a képernyőn. Megfigyelhetjük vele melyik folyamat milyen mértékben használja az erőforrásokat. A k billentyű leütésével és a folyamat pid-jének megadásával az adott folyamatot megszakíthatjuk. Kilépni a programból a q billentyű leütésével tudunk.
 
[root@centos5 ~]# top
top - 16:10:53 up  4:41,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 159 total,   2 running, 157 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.2%hi,  0.0%si,  0.0%st
Mem:   3369216k total,   761516k used,  2607700k free,    96768k buffers
Swap:  2048248k total,        0k used,  2048248k free,   484220k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3705 squid     15   0 12576 7964 2368 R  0.3  0.2   0:00.46 squid
13807 root      15   0  2420 1060  804 R  0.3  0.0   0:00.06 top
    1 root      15   0  2152  672  580 S  0.0  0.0   0:00.36 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.02 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.01 migration/1
    6 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1
    7 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/1
    8 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 events/0
    9 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 events/1
   10 root      19  -5     0    0    0 S  0.0  0.0   0:00.00 khelper
   11 root      17  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
   15 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kblockd/0
   16 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kblockd/1
   17 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
  133 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/0



 
    19.2. LogWatch – napi rendszernapló elemzés
 
A CentOS operációs rendszer a LogWatch nevű program által minden nap üzenetet küld a root-nak, amiben az előző nap szinte minden fontosabb rendszerüzenetét megtaláljuk: kernel üzenetek (iptables-log), új felhasználók, csoportok, ssh-val bejelentkezettek listája, root-jogosultságot kérő felhasználók (su), hibás bejelentkezések stb. Minden levél végén a merevlemez partícióinak foglaltságát is látjuk.
A terminálablakban a mail parancsot kiadva (root-ként) elolvashatjuk a LogWatch üzeneteit. A mail parancs kiadása után az üzenek számozott felsorolása jelenik meg és ezt a sorszámot beírva olvasható az adott üzenet (kilépés: q parancs):

[root@centos5 /]# mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/root": 86 messages 29 new 86 unread
 U 43 root@server.suli.uz.  Thu Apr 29 23:38 351/22254 "NEM_keszult_heti_ment"
 U 44 logwatch@server.suli  Fri Apr 30 22:19 274/13509 "Logwatch for centos5."
 U 45 logwatch@server.suli  Sun May  2 23:43  47/1718  "Logwatch for centos5."
 U 46 logwatch@server.suli  Mon May  3 11:23 226/10547 "Logwatch for centos5."
 U 47 logwatch@server.suli  Tue May  4 01:57 480/32436 "Logwatch for centos5."
 & 44
Message 44:
From root@server.suli.uz.ua  Fri Apr 30 22:19:12 2010
X-Original-To: root
Delivered-To: root@server.suli.uz.ua
To: root@server.suli.uz.ua
From: logwatch@server.suli.uz.ua
Subject: Logwatch for centos5.suli.uz.ua (Linux)
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="iso-8859-1"
Date: Fri, 30 Apr 2010 22:19:05 +0200 (CEST)
 ################### Logwatch 7.3 (03/24/06) ####################
        Processing Initiated: Fri Apr 30 22:19:04 2010
        Date Range Processed: yesterday
                              ( 2010-Apr-29 )
                              Period is day.
      Detail Level of Output: 0
              Type of Output: unformatted
           Logfiles for Host: centos5.suli.uz.ua
  ##################################################################
...
--------------------- Disk Space Begin ------------------------
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda6              15G  3.5G   11G  26% /
 /dev/sda8             192G  5.0G  178G   3% /home
 /dev/sdb2             195G  1.3G  183G   1% /homemr
 /dev/sda5              19G  294M   18G   2% /megoszt
 /dev/sda2              38G  542M   36G   2% /var
 /dev/sda3              24G  650M   22G   3% /var/spool/squid
 /dev/sdb1              95G  349M   90G   1% /mentesek
 /dev/sda1             289M   27M  248M  10% /boot
 ---------------------- Disk Space End -------------------------
 ###################### Logwatch End #########################
& q

[root@centos5 /]#

A root leveleit irányítsuk át saját felhasználói fiókunkba, hozzáírva az /etc/aliases állományhoz a következő sort:

root:           pf

Természetesen pf helyett a saját felhasználói nevünket írjuk. A postfix szolgáltatást újra kell indítani a beállítás érvényre jutásához:
 
[root@centos5 ~]# service postfix restart
 
 
    19.3. LogWatch üzenetek letöltése a kiszolgálón

Megoldható, hogy a kiszolgálón a Thunderbird program letöltse ezeket a leveleket. Ehhez telepíteni kell a dovecot nevű programot a kiszolgálón, (előtte ellenőrizzük, hogy jelenleg nincs-e telepítve: rpm -qa  | grep dovecot)

[root@centos5 ~]# yum install dovecot

Módosítsuk az /etc/dovecot.conf állomány „protocols” értékét, hogy a pop3 protokollt is támogassa (toroljük az alábbi sor előtti # jelet):

protocols = imap imaps pop3 pop3s

Indítsuk el a szolgáltatást és állítsuk be, hogy automatikusan induljon:

[root@centos5 ~]# service dovecot start
[root@centos5 ~]# chkconfig --levels 235 dovecot on

A kiszolgálón a Thunderbird programban hozzunk létre egy új fiókot saját nevünkkel és azonosítónkkal (19.1. ábra):

t1
19.1. ábra


A következő ablakban válasszuk a POP kiszolgálót és a globális gyűjtő használaták kapcsoljuk ki
(19.2. ábra):
 
t2
19.2. ábra
 

Az ezt követő két ablakban a felhasználó és a postafiók nevének megadása következik. Maradhatnak az alapértelmezett értékek. A beállításokat összefoglaló utolsó ablakban kapcsoljuk ki az üzenetek azonnali letöltését (19.3. ábra).

t5
19.3. ábra

 
Ebben az ablakban látjuk, hogy a Thunderbird e fiók üzeneteinek továbbítását a 13. fejezetben beállított smtp.gmail.com kiszolgálóval végezné. Ez nem lehetséges, hiszen a suli.uz.ua domain nem létezik (ha létezik is, nem a mienk). Ezért adjuk meg kiszolgálónk adatatit az SMTP beállításoknál (19.4. ábra) 
 
t6
19.4. ábra
 
Változtassuk meg a postafiók beállításainál a levélküldő kiszolgálót a most beállítottra (
19.5. ábra):

t7
19.5. ábra
 
Ez, természetesen, nem teszi lehetővé, hogy külső címekre leveleket küldjünk a suli.uz.ua címekről, de a munkaállomásokon kialakíthatunk olyan felhasználó környezetet, ahol mi a felhasználóknak, és azok egymásnak küldhetnek e-maileket.

Próbáljuk ki a POP3 kiszolgáló és az alias működését. Írjunk levelet terminálból a root-nak:

[pf@centos5 ~]$ mail root
Subject: proba
level tartalma
.
Cc:
[pf@centos5 ~]$

(a levél tárgya a proba szó, az új sorba írt pont és Enter pedig a levél végét jelenti. A másolatot kap (Cc:) sorban csak Entert kell ütni.)
Amennyiben mindent megfelelően módosítottunk, levelünk megérkezett bár a címzettje a root volt (19.6.ábra):
 
t10
19.6.ábra
 
 
 
    19.4. LogWatch üzenetek letöltése munkaállomásra
 
Megvizsgálva /root/tuzfal.scp állományt megtalálhatjuk azt a sort ami engedélyezi a 192.168.55.172 IP című gépnek (és csak annak) a 110-es TCP porton a csatlakozást. Tehát ez a munkaállomás letöltheti a leveleket a kiszolgálóról a POP3 protokollt használva. Az alábbi képen a Outlook Express levelezőkliens beállításait láthatjuk:
 
o2
19.7.ábra

Az e-mail cím megadásánál elhagyhatjuk a kiszolgáló nevét, így egyszerűbb címet kapunk. Esetünkben pf@suli.uz.ua lesz az e-mail címünk (
19.8.ábra):

o1
19.8.ábra
 
A következő rendszerüzenetet már a pf felhasználó kapja és letölthetjük postafiókunkba
(19.9.ábra):

oem
19.9.ábra

 
 

    19.5. MUNIN – teljesítményadatok webes felületen

A MUNIN kiválóan alkalmas szerverünk különböző paramétereinek megjelenítésére. Az MRTG-hez hasonlóan, webes felületen mutatja a kiszolgáló működésének különböző paramétereit. A hálózati forgalom mellett sok más fontos paramétert is a CPU-kihasználástól kezdve a merevlemezek hőmérsékleteinek változásáig. Működése kliens-szerver alapú, ezért akár több gép monitorozását is megvalósíthatjuk vele. Telepíteni és beállítani egyszerű.
A telepítéshez adjuk ki a következő parancsokat:

[root@centos5 ~]# yum --enablerepo=rpmforge install munin
[root@centos5 ~]# yum --enablerepo=rpmforge install munin-node

Az első program gyűjti a teljesítményadatokat és rajzol belőlük grafikont, a második az adatokat küldi. Több kiszolgáló monitorozása esetén azokra már csak a másodikat kell telepíteni. Módosítsuk a munin könyvtár tulajdonosát:
 
[root@centos5 ~]# chown -R munin:munin /var/www/munin
 
Az /etc/munin/munin.conf fájlban keressük meg az alábbi részletet és írjuk át a localhost szót a kiszolgáló nevére:

# a simple host tree
[centos5]
    address 127.0.0.1
    use_node_name yes

 
A következő két parancs a munin-node szolgáltatást indítja el és beállítja az automatikus indítását:
 
[root@centos5 ~]# service munin-node start
[root@centos5 ~]# chkconfig --levels 235 munin-node on
 
Indítsuk újra a webszervert:
 
[root@centos5 ~]# service httpd restart
 
A munin ötpercenként sfrissíti a statisztikákat, amiket a http://192.168.55.1/munin/ vagy a http://suliserver/munin/ címen érhetunk el. Alapértelmezés szerint a hálózatunk bármelyik gépéről megtekinthetők a grafikonok. A 19.10. ábrán a munin kezdőoldalát látjuk.
 
mn1
19.10. ábra


Amennyiben a merevlemez hőmérsékletét nem jelenítené meg a munin (nincs a fenti ábrán látható Sensors szó), az alábbi parancssal töltsün le
root-ként egy módosított  hddtemp_smartctl állományt:

[root@centos5 ~]# wget http://www.kmf.uz.ua/centos/hddtemp_smartctl
--2010-07-11 02:12:26--  http://www.kmf.uz.ua/centos/hddtemp_smartctl
www.kmf.uz.ua feloldása... 195.137.254.90
Csatlakozás a következőhöz: www.kmf.uz.ua[195.137.254.90]:80... kapcsolódva.
HTTP kérés elküldve, várom a választ... 200 OK
Hossz: 5712 (5,6K) [text/plain]
Mentés ide: „hddtemp_smartctl”

100%[======================================>] 5.712       --.-K/s  idő 0,09s

2010-07-11 02:12:26 (59,3 KB/s) - „hddtemp_smartctl” mentve [5712/5712]


Másoljuk az /usr/share/munin/plugins könyvtárba (felülírva az ott lévő állományt) és állítsunk be futási tulajdonságot:
 
[root@centos5 ~]# cp hddtemp_smartctl /usr/share/munin/plugins/
cp: felülírod "/usr/share/munin/plugins/hddtemp_smartctl"-t? i
[root@centos5 ~]# chmod u+x /usr/share/munin/plugins/hddtemp_smartctl

A fájlról készítsünk szimbólikus linket az /etc/munin/plugins/ könyvtárba és indítsuk újra munin-t:

[root@centos5 ~]# ln -s /usr/share/munin/plugins/hddtemp_smartctl /etc/munin/plugins/hddtemp_smartctl
[root@centos5 ~]# service munin-node restart

Néhány perc elteltével megjelenik a 19.10. ábrán is láltató Sensors link. Arra kattintva mervlemezeink hőmérsékletét és annak változását figyelhetjük meg (19.9. ábra):

ms
19.11. ábra

Az ábrán jól látható, hogy a munin indításakor 39ºC volt a merevlemezek hőmérséklete. 13 óra előtt ez csökknni kezdett és kb. 5 fokkal alacsonyabb értéken stabilizálódott.  
(12:45-kor bekapcsoltam a merevlemezek előtti, 2.9. ábrán látható ventilátort.)
 
A merevlemezek SMART adatait is megjeleníthetjük munin segítségével (19.10. ábra), ha létrehozzuk az alábbi két szimbólikus linket:

[root@centos5 ~]# ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_sda
[root@centos5 ~]# ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_sdb


és az /etc/munin/plugin-conf.d/munin-node állományt bővítjük az alábbi sorokkal:

[smart.*]
user root
group disk



msmart
19.12. ábra


    19.6. Az rpmforge tároló csomagjainak frissítése

A kiszolgálón bejelentkezve az operációs rendszer figyelmeztet minket, ha elérhetők frissítések. ssh-val, távolról bejelentkezve a yum update paranccsal frissíthetjük rendszerünket. Az rpmforge tárolóból feltelepített csomagok frissítéséhez az alábbi parancsot kell kiadni:
 
[root@centos5 ~]# yum --enablerepo=rpmforge update