Debian szerver monitorozás (Wheezy)
A szervergép monitorozása általában adatgyűjtést jelent a hardver és egyes szoftverek állapotáról. Az adatokat valamilyen helyi vagy távoli eszközzel megjeleníthetjük, határértékek túllépése esetén riasztásokat illetve automatikus beavatkozásokat indíthatunk.
A jelen leírásban elsődleges adatgyűjtő eszközként a Munin szolgál, ebben a szakaszban ennek pluginjai számára tesszük elérhetővé a monitorozandó (elsősorban hardver) adatokat.
Tartalomjegyzék
System statistics és hardware info
Alapvető hardver- és aktivitásfigyelő eszközök, amelyeket Munin pluginok használnak:
apt-get install discover sysstat # a discover már telepítve lehet
SMART
Virtuális hostingban a SMART telepítése szükségtelen.
A merevlemezek állapotának figyelésére a SMART (Self-Monitoring, Analysis and Reporting Technology) daemont használjuk:
apt-get install smartmontools # + dependens könyvtárak
A telepítés még nem fogja elindítani a SMART démont. Telepítés után ellenőrizzük a lemezeinket:
smartctl -a -T permissive /dev/sdX -d ata # SATA esetén smartctl -a /dev/hdX # PATA esetén(?) smartctl -a -T permissive /dev/cciss/cXdY -d cciss,N # CCISS hardware RAID elemeire
SATA lemez azonosító adatainak lekérése:
smartctl -a -T permissive /dev/sdX -d ata | grep -i -e '\(Model\|Serial\)'
A smartmontools engedélyezése:
-rw-r--r-- root root /etc/default/smartmontools [...] start_smartd=yes [...]
A smartd konfigurálása (az állományból minden törölhető elég az alábbiak közül a releváns sorokat beírni):
-rw-r--r-- root root /etc/smartd.conf /dev/sda -H -n standby,q -m root@localhost -d ata # SATA esetén /dev/hda -H -n standby,q -m root@localhost # PATA esetén /dev/sda -H -n standby,q -m root@localhost # SCSI esetén /dev/cciss/cXdY -d cciss,N # CCISS hardware RAID esetén
a -n azt jelenti hogy csak active/idle módban kérdezzen le,a "q" pedig hogy ne küldjön üzenetet a kihagyott smart tesztről.
Indítsuk el a figyelést:
/etc/init.d/smartmontools start; tail -f /var/log/syslog
és figyeljük, hogy megjelenik-e hibaüzenet a syslog-ban.
Hardver szenzorok
Virtuális hostingban nem kell a hardver szenzorokat telepíteni.
A hardware gyártók által az alaplapra, processzorba, merevlemezbe beépített érzékelők (szenzorok) adatainak monitorozásához azokat a Linux számára elérhetővé kell tenni. A szenzorok adatai vagy lokális adatbuszról - általában valamilyen I2C (Inter-Integrated Circuit, I-squared-C) protokollt használó busz, pl. SMB (System Management Bus), de lehet ISA megvalósítás is - olvashatóak le, vagy SNMP MIB-ként (Simple Network Management Protocol, Management Information Base) elérhetőek. A merevlemez szenzor adatok a SMART értékek között (is) szerepelnek.
IPMI
Relatív egyszerű dolgunk van, ha a hardver támogatja az Intelligent Platform Management Interface (IPMI) használatát. Ez esetben nem kell foglalkozzunk a konkrét hardver szenzorok kiolvasásával. Ha használhatunk IPMI-t, telepítsük az OpenIPMI drivereket és az IPMItool parancssori lekérdező felületet Debian csomagból:
apt-get install openipmi ipmitool
Ezután töltsük be a szükséges kernel modulokat:
modprobe ipmi_si; modprobe ipmi_devintf
és kérjük le az elérhető szenzorok adatait:
ipmitool sdr
Ha az eredmények megjelennek, írjuk elő a kernel modulok rendszerindításkor történő automatikus betöltését:
echo "# IPMI" >>/etc/modules echo ipmi_si >>/etc/modules echo ipmi_devintf >>/etc/modules
Napi jelentés
Érdemes lehet ezen kívül kiegészíteni a napi jelentést az ipmitools-lal kiolvasható System Event Log (SEL) aznapra vonatkozó bejegyzéseivel is. Ehhez helyezzük el a /etc/cron.daily könyvtárban az alábbi scriptet:
touch /etc/cron.daily/sel chmod 755 /etc/cron.daily/sel mcedit /etc/cron.daily/sel
-rwxr-xr-x root root /etc/cron.daily/sel #!/bin/bash # # Yesterday's events from System Event Log via ipmitool. DATE="/bin/date" GREP="/bin/grep" IPMITOOL="/usr/bin/ipmitool" YESTERDAY="| $($DATE '+%m/%d/%Y' -d '1 day ago') |" EVENTS=$($IPMITOOL sel list | $GREP "$YESTERDAY") if [ ! -z "$EVENTS" ]; then echo "System Event Log items:" echo -e "$EVENTS\n" fi
További IPMI lehetőségek: TODO!
Irodalom
Direkt elérés
A hozzáféréshez telepíteni kell a lokális adatbusz drivert (I2C kernel támogatás), illetve az alaplapra, stb. épített szenzor chip kernel dirverét. Ezután még szükséges a gyűjtött, nyers adatok alaplapfüggő értelmezése és átszámítása, mert ugyanazon szenzor chipet a gyártók különböző módon kötik be (pl. nem mindig ugyanarra a bemenetre kerül a CPU hőmérő, stb.), illetve különböző előtét ellenállásokat, stb. használnak.
Általában az lm-sensors csomag szolgál a szenzorok detektálására és lekérdezésére, míg a sensord démon a leolvasott értékeket (alapértelmezésben alarm: 5'-enként, alert szinttel, értékek: 30'-enként, info szinttel) beírja a syslogba (így az alarmokról a logcheck levelet is küld):
apt-get install lm-sensors sensord # Rengeteg függősége van!
Érdemes először gyári kernellel próbálkozni, mert abban minden szenzor modul benne van. Az adatbusz és chip támogatást a sensors-detect általában megmondja:
sensors-detect
illetve javaslatot tesz a szükséges modulok /etc/modules-be beírására. A modulok betöltése (modprobe) után a
sensors
parancs megmutatja az értékeket. Ha az értékek megfelelőek (megegyeznek a BIOS-ban láthatóakkal) és az alarm beállítások is elfogadhatóak, akkor készen vagyunk :-); ha nem, akkor a /etc/sensors3.conf konfigurációs állományt kell szerkeszteni (Debian lm-sensors receptek). A változtatásokat a
sensors -s
paranccsal lehet érvényesíteni.
Megjegyzés: kész recept hiányában az lm-sensors beállítása hosszas, szöszögős munka lehet.