Monitorování serveru: Porovnání verzí
(→diskio) |
|||
(Není zobrazeno 18 mezilehlých verzí od 4 dalších uživatelů.) | |||
Řádek 12: | Řádek 12: | ||
== Nástavení modulu linuxového jádra == | == Nástavení modulu linuxového jádra == | ||
− | Abychom mohli přistupovat k údajům o teplotě procesoru, základní desky, otáčkám ventilátorů aj. je nutné při konfiguraci linuxového jádra zapnout podporu pro '''I2C''' Hardware monitoring. Pokud je váš hardware muzejní kousek, můžete se přesvědčit, zda-li je monitorování chipsetu podporováno na stránce: [http://secure.netroedge.com/~lm78 | + | Abychom mohli přistupovat k údajům o teplotě procesoru, základní desky, otáčkám ventilátorů aj. je nutné při konfiguraci linuxového jádra zapnout podporu pro '''I2C''' Hardware monitoring. Pokud je váš hardware muzejní kousek, můžete se přesvědčit, zda-li je monitorování chipsetu podporováno na stránce: [http://secure.netroedge.com/~lm78 lm_sensors]. |
− | Dále je nutné přidat do jádra podporu pro jednotlivé chipy. Nejjednodušší je přidat všechny podporované chipy jako moduly. Ušetříme si tím mnohé trápení. Pokud nechcete sami laborovat s nastavením konfigurace jádra, je možné si stáhnout a nainstalovat již odzkoušené verze jádra pro několik základních architektur z | + | Dále je nutné přidat do jádra podporu pro jednotlivé chipy. Nejjednodušší je přidat všechny podporované chipy jako moduly. Ušetříme si tím mnohé trápení. Pokud nechcete sami laborovat s nastavením konfigurace jádra, je možné si stáhnout a nainstalovat již odzkoušené verze jádra pro několik základních architektur z [ftp://ftp.hkfree.org/linux/wifi/ ftp hkfree]. |
== Nastavení monitorovací utility == | == Nastavení monitorovací utility == | ||
− | K tomu, abychom zjistili, které moduly jádra náhrat použijeme monitorovaní utilitu | + | K tomu, abychom zjistili, které moduly jádra náhrat použijeme monitorovaní utilitu [http://secure.netroedge.com/~lm78/ lm_sensors]. Nainstaluje buč příslušný balík, či sami zkompilujeme a nainstalujeme. |
$ ./configure | $ ./configure | ||
Řádek 23: | Řádek 23: | ||
$ make user_install | $ make user_install | ||
− | Po instalaci máme k dispozici utilitu | + | Po instalaci máme k dispozici utilitu <code>sensors-detect</code>. Spustíme, dojde k vyzkoušení veškerých modulů pro monitorování. Pro ty, které fungují na našem systému, nám utilita vygeneruje příslušné řádky jednak pro <code>/etc/modprobe.conf</code> a jednak pro startovací skripty, kde se dané moduly nahrávají. |
Zdali vše funguje vyzkoušíme pomocí příkazu: | Zdali vše funguje vyzkoušíme pomocí příkazu: | ||
Řádek 46: | Řádek 46: | ||
Nyní nás čeká nastavení softwaru, který nám bude graficky zobrazovat statistiky jednak o hardwaru, ale i softwaru (zátež linky, ping, počet přenesených dat jednotlivých uživatelů atd.) | Nyní nás čeká nastavení softwaru, který nám bude graficky zobrazovat statistiky jednak o hardwaru, ale i softwaru (zátež linky, ping, počet přenesených dat jednotlivých uživatelů atd.) | ||
− | Pro samotný sběr monitorovacích údajů použijeme asi nejrozšířenější utilitu: | + | Pro samotný sběr monitorovacích údajů použijeme asi nejrozšířenější utilitu: [http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ rrdtool]. Opět si buč nainstalujeme již hotové baličký nebo stáhneme z [http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ rrdtool]. |
V současné době je již k dispozici řada 1.2.x. Nicměné se nám může stát, že program, který bude zpracovávat takto sebraná data, nebude rozumět novému vnitřnímu formátu, který tato sada používá. Proto zůstaneme u bezproblémové řady 1.0.x. | V současné době je již k dispozici řada 1.2.x. Nicměné se nám může stát, že program, který bude zpracovávat takto sebraná data, nebude rozumět novému vnitřnímu formátu, který tato sada používá. Proto zůstaneme u bezproblémové řady 1.0.x. | ||
− | Jelikož se v následujícím odstavci dočteme, že pro zobrazení takto sebraných výsledků použijeme program napsaný v Perlu, musíme také nainstalovat perlovou rrdtool knihovnu. To nám zajistí příkaz: | + | Jelikož se v následujícím odstavci dočteme, že pro zobrazení takto sebraných výsledků použijeme program napsaný v Perlu, musíme také nainstalovat perlovou nainstalujeme již hotové baličký nebo stáhneme z [http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ rrdtool] knihovnu. To nám zajistí příkaz: |
$ make site-perl-install | $ make site-perl-install | ||
− | Po instalaci se rrdtool nacházejí v adresáři: <code>/usr/local/rrdtool-1.0.x/</code>. | + | Po instalaci se nainstalujeme již hotové baličký nebo stáhneme z [http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ rrdtool] nacházejí v adresáři: <code>/usr/local/rrdtool-1.0.x/</code>. |
− | V případě, že chceme používat novou řadu rrdtool 1.2.x je nutné při zapnout zapnout volbu: | + | V případě, že chceme používat novou řadu nainstalujeme již hotové baličký nebo stáhneme z [http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ rrdtool] 1.2.x je nutné při configuraci zapnout zapnout volbu: |
$ ./configure --enable-perl-site-install | $ ./configure --enable-perl-site-install | ||
− | + | Poslední co nám zbývá je nástroj, který nám ze všech těch monitorovacích údajů, udělá přehlednou stránku s grafama. Těchno nástrojů existuje spousta viz.: [http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/rrdworld/ rrdworld]. | |
− | + | Pro naše účely použijeme sice už dnes poněkud zastaralý, ale efektivní nástroj: [http://hotsanic.sourceforge.net/ HoTSaNIC]. Poslední dostupná verze (CVS snapshot) je 0.5.0-pre6. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Stáhneme [http://hotsanic.sourceforge.net/ HoTSaNIC] a rozbalíme třeba do adresáře <code>/opt/hotsanic-0.5.0-pre6/</code>. Tím je veškerá instalace hotová. | |
− | + | Pokud hodláme používat nainstalujeme již hotové baličký nebo stáhneme z [http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ rrdtool] 1.2.x musíme patchnout [http://hotsanic.sourceforge.net/ HoTSaNIC], kvůli chybě v generování IRQ statistik: | |
− | + | $ cd /opt/hotsanic; patch -p0 < irq_hostanic.patch | |
− | Konfigurace hotsanicu se zkládá ze dvou částí. | + | '''irq_hostanic.patch''' |
+ | <code> | ||
+ | --- ../backup/hotsanic-0.5.0-pre6/modules/system/diagrams.pl 2004-09-19 12:07:58.000000000 +0200 | ||
+ | +++ modules/system/diagrams.pl 2005-12-19 00:11:40.000000000 +0100 | ||
+ | @@ -487,8 +487,7 @@ | ||
+ | "AREA:irqall_min#ffffff:\\g", | ||
+ | "LINE1:irqall_max#".$MODULECONFIG{COLOR_INT_ALL_MAX}.":", | ||
+ | "LINE1:irqall_min#".$MODULECONFIG{COLOR_INT_ALL_MIN}.":", | ||
+ | - "LINE1:irqall_avg#".$MODULECONFIG{COLOR_INT_ALL_AVG}.":", | ||
+ | - "COMMENT:Averages (min/max):\\n"); | ||
+ | + "LINE1:irqall_avg#".$MODULECONFIG{COLOR_INT_ALL_AVG}.":"); | ||
+ | for (my $int=0;$int<16;$int++) { | ||
+ | my $intnum=$int; | ||
+ | if ($int<10) { $intnum="0$int"; } | ||
+ | </code> | ||
+ | |||
+ | Nyní přejdeme ke konfiguraci. Konfigurace hotsanicu se zkládá ze dvou částí. | ||
* konfigurace jádra hotsanicu | * konfigurace jádra hotsanicu | ||
Řádek 130: | Řádek 134: | ||
</code> | </code> | ||
− | HotSaNIC využívá pro generování náhledů grafů software | + | HotSaNIC využívá pro generování náhledů grafů software [http://www.imagemagick.org/ imagemagick]. Proto je vhodné nainstalovat patřičný balík či zkompilovat. Máme k dispozici i nouzové řešení a to nastavit v konfiguraci HotSaNICu zmenčování jen pomocí atributů elementu IMG ve výsledém HTML souboru (nedoporučuji). |
HotSaNIC si veškeré obslužné práce (generování grafů) obstarává sám v daných časových intervalech. Pokud bychom chtěli některé výsledky vidět okamžitě, můžeme pustit regenerování ručně. | HotSaNIC si veškeré obslužné práce (generování grafů) obstarává sám v daných časových intervalech. Pokud bychom chtěli některé výsledky vidět okamžitě, můžeme pustit regenerování ručně. | ||
Řádek 163: | Řádek 167: | ||
* '''worms''' - útok červů | * '''worms''' - útok červů | ||
− | V adresářích | + | V adresářích <code>modules</code> jsou adresaře pro každý z níže uvedených modulů. V každém z nich je konfiguračních soubor <code>setting</code>. V každém z adresářů je defaultní konfigurační soubor <code>.settings.default</code>, kde můžeme najít přehled všech možných konfiguračních direktiv (obzvláště pro nastavování scalingu). V následujích kapitolách je přehled základních nastavení pro jednotlivé konfigurační soubory. |
==== apcusv ==== | ==== apcusv ==== | ||
Řádek 177: | Řádek 181: | ||
==== diskio ==== | ==== diskio ==== | ||
+ | Příklad konfigurace: | ||
+ | |||
+ | nejprve zjistim ID disku: | ||
+ | |||
+ | <pre> | ||
+ | $ cat /proc/diskstats | ||
+ | 104 0 cciss/c0d0 28620311 262117 480954637 144392372 27258894 57877269 680496776 208876052 0 268644572 353404992 | ||
+ | 104 1 cciss/c0d0p1 62 401 1069 420 40 32 576 2356 0 2564 2776 | ||
+ | 104 2 cciss/c0d0p2 1483315 101904 21012416 14258620 14997887 37423217 419037344 1659521196 0 112408352 1673795000 | ||
+ | 104 3 cciss/c0d0p3 27136927 159732 459941065 130133284 12260967 20454020 261458856 2844319796 0 186114948 2974575520 | ||
+ | 11 0 sr0 0 0 0 0 0 0 0 0 0 0 0 | ||
+ | 2 0 fd0 0 0 0 0 0 0 0 0 0 0 0 | ||
+ | </pre> | ||
+ | |||
+ | konfigurace v tomto případě bude vypadat takto: | ||
+ | <pre> | ||
+ | KERNEL="2.6" | ||
+ | SOURCE="diskstats" | ||
+ | DEV="104_0,cciss/c0d0" | ||
+ | </pre> | ||
==== dnet ==== | ==== dnet ==== | ||
Řádek 191: | Řádek 215: | ||
==== ping ==== | ==== ping ==== | ||
+ | editujte modules/ping/settings a pridejte | ||
+ | <pre> | ||
+ | <nowiki>#</nowiki> configure multiple destinations of the form: | ||
+ | <nowiki>#</nowiki> HOST=<host>,<description> | ||
+ | <nowiki>#</nowiki> | ||
+ | HOST=10.107.4.100,charon.hkfree.org | ||
+ | <nowiki>#</nowiki>atd. | ||
+ | </pre> | ||
+ | |||
+ | '''TIP:'''<BR> | ||
+ | Kdyby se Vam '''nevytvarely grafy''', ale data v souborech rrd byly. Tak zeditujte soubor v adresari hotsanicu modules/ping/diagrams.pl<BR> | ||
+ | VIMari, at pouzji tento command:<BR> | ||
+ | :<nowiki>:</nowiki>%s/n:",$/n",/gc | ||
+ | ostatni at nahradi radky koncici na ''n:",'' za ''n",'' | ||
+ | bez teto upravy jsem to nerozchodil!!! | ||
+ | |||
+ | ( RRDtool 1.2.6 , /usr/src/hotsanic-0.5.0-pre5.tgz, perl5.8.7 ) | ||
==== sensors ==== | ==== sensors ==== |
Aktuální verze z 12. 4. 2010, 09:30
Autor: Lore
Obsah
Motivace
Automatizované monitorování systému a hardwaru je zajisté jedna z vlastností, která by neměla chybět na žádném profesionálně udržovaném serveru. Upozorní nás včas na případné problémy, které by mohli často vést i k hadrwarovému porušení celého serveru. Dále vídíme dlouhodobý stav žátěže, podle něhož můžeme server upgradovat (přídání většího ventilátoru, paměti atd.)
Úkázkové řešení
Na mnohých serverech hkfree běží monitoring jak systému tak i hardwaru. Jedno z efektivních a nenáročních řesení lze najít na: http://pouchov.hkfree.org/info/.
Nástavení modulu linuxového jádra
Abychom mohli přistupovat k údajům o teplotě procesoru, základní desky, otáčkám ventilátorů aj. je nutné při konfiguraci linuxového jádra zapnout podporu pro I2C Hardware monitoring. Pokud je váš hardware muzejní kousek, můžete se přesvědčit, zda-li je monitorování chipsetu podporováno na stránce: lm_sensors.
Dále je nutné přidat do jádra podporu pro jednotlivé chipy. Nejjednodušší je přidat všechny podporované chipy jako moduly. Ušetříme si tím mnohé trápení. Pokud nechcete sami laborovat s nastavením konfigurace jádra, je možné si stáhnout a nainstalovat již odzkoušené verze jádra pro několik základních architektur z ftp hkfree.
Nastavení monitorovací utility
K tomu, abychom zjistili, které moduly jádra náhrat použijeme monitorovaní utilitu lm_sensors. Nainstaluje buč příslušný balík, či sami zkompilujeme a nainstalujeme.
$ ./configure $ make user $ make user_install
Po instalaci máme k dispozici utilitu sensors-detect
. Spustíme, dojde k vyzkoušení veškerých modulů pro monitorování. Pro ty, které fungují na našem systému, nám utilita vygeneruje příslušné řádky jednak pro /etc/modprobe.conf
a jednak pro startovací skripty, kde se dané moduly nahrávají.
Zdali vše funguje vyzkoušíme pomocí příkazu:
$ sensors
To nám ukáže zhruba následují informace o hardwaru na serveru.
it8712-isa-0290 Adapter: ISA adapter in0: +1.74 V (min = +4.08 V, max = +4.08 V) in1: +0.00 V (min = +4.08 V, max = +4.08 V) in2: +3.26 V (min = +4.08 V, max = +4.08 V) in3: +2.93 V (min = +4.08 V, max = +4.08 V) fan1: 2616 RPM (min = 0 RPM, div = 4) temp1: +57°C (low = -1°C, high = -1°C) sensor = thermistor temp2: +41°C (low = -1°C, high = -1°C) sensor = thermistor vid: +1.20 V
Dále můžeme sledovat teplotu hardisků a zjišťovat jestli se nám obzvlášť pod náporem FTP serveru nepřehřívají. K tomu nám poslouží monitorovaní nástroj hddtemp.
Nastavení grafického zobrazení
Nyní nás čeká nastavení softwaru, který nám bude graficky zobrazovat statistiky jednak o hardwaru, ale i softwaru (zátež linky, ping, počet přenesených dat jednotlivých uživatelů atd.)
Pro samotný sběr monitorovacích údajů použijeme asi nejrozšířenější utilitu: rrdtool. Opět si buč nainstalujeme již hotové baličký nebo stáhneme z rrdtool.
V současné době je již k dispozici řada 1.2.x. Nicměné se nám může stát, že program, který bude zpracovávat takto sebraná data, nebude rozumět novému vnitřnímu formátu, který tato sada používá. Proto zůstaneme u bezproblémové řady 1.0.x.
Jelikož se v následujícím odstavci dočteme, že pro zobrazení takto sebraných výsledků použijeme program napsaný v Perlu, musíme také nainstalovat perlovou nainstalujeme již hotové baličký nebo stáhneme z rrdtool knihovnu. To nám zajistí příkaz:
$ make site-perl-install
Po instalaci se nainstalujeme již hotové baličký nebo stáhneme z rrdtool nacházejí v adresáři: /usr/local/rrdtool-1.0.x/
.
V případě, že chceme používat novou řadu nainstalujeme již hotové baličký nebo stáhneme z rrdtool 1.2.x je nutné při configuraci zapnout zapnout volbu:
$ ./configure --enable-perl-site-install
Poslední co nám zbývá je nástroj, který nám ze všech těch monitorovacích údajů, udělá přehlednou stránku s grafama. Těchno nástrojů existuje spousta viz.: rrdworld.
Pro naše účely použijeme sice už dnes poněkud zastaralý, ale efektivní nástroj: HoTSaNIC. Poslední dostupná verze (CVS snapshot) je 0.5.0-pre6.
Stáhneme HoTSaNIC a rozbalíme třeba do adresáře /opt/hotsanic-0.5.0-pre6/
. Tím je veškerá instalace hotová.
Pokud hodláme používat nainstalujeme již hotové baličký nebo stáhneme z rrdtool 1.2.x musíme patchnout HoTSaNIC, kvůli chybě v generování IRQ statistik:
$ cd /opt/hotsanic; patch -p0 < irq_hostanic.patch
irq_hostanic.patch
--- ../backup/hotsanic-0.5.0-pre6/modules/system/diagrams.pl 2004-09-19 12:07:58.000000000 +0200
+++ modules/system/diagrams.pl 2005-12-19 00:11:40.000000000 +0100
@@ -487,8 +487,7 @@
"AREA:irqall_min#ffffff:\\g",
"LINE1:irqall_max#".$MODULECONFIG{COLOR_INT_ALL_MAX}.":",
"LINE1:irqall_min#".$MODULECONFIG{COLOR_INT_ALL_MIN}.":",
- "LINE1:irqall_avg#".$MODULECONFIG{COLOR_INT_ALL_AVG}.":",
- "COMMENT:Averages (min/max):\\n");
+ "LINE1:irqall_avg#".$MODULECONFIG{COLOR_INT_ALL_AVG}.":");
for (my $int=0;$int<16;$int++) {
my $intnum=$int;
if ($int<10) { $intnum="0$int"; }
Nyní přejdeme ke konfiguraci. Konfigurace hotsanicu se zkládá ze dvou částí.
- konfigurace jádra hotsanicu
- konfigurace jednotlivých modulů
konfigurace jádra hotsanicu
V adresáři HotSaNICu pustíme konfigurační dávku:
$ ./setup.pl
Nyní budeme dotázáni, které služby hodláme monitorovat a zobrazovat.
Doporučuju sledovat zejména subsystémy: apcusv, traffic, system, ping, sensors a networks.
Po dokončení konfigurace dojde k vytvoření konfiguračního souboru settings
,
který pro případné změny můžeme editovat i ručně a spouštěcí script rrdgraph
. Nesmíme hlavně zapomenout nakonfigurovat proměnou WEBDIR="/www/tools/info"
, ukazující na adresář, do kterého budou generovány HTML soubory s grafama.
Spoušetní HotSaNICu přidáme do init scriptů, tak aby nám naběhl při spuštění systémů. Do adresáře /etc/init.d/
případně /etc/rc.d/
soubor s následujícím obsahem:
#!/bin/bash
#
# Startup script for the HotSaNIC
#
hotsanic=/opt/hotsanic/rrdgraph
prog=hotsanic
start() {
echo -n $"Starting $prog: "
$hotsanic start
}
stop() {
echo -n $"Stopping $prog: "
$hotsanic stop
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: $prog {start|stop|restart}"
exit 1
esac
HotSaNIC využívá pro generování náhledů grafů software imagemagick. Proto je vhodné nainstalovat patřičný balík či zkompilovat. Máme k dispozici i nouzové řešení a to nastavit v konfiguraci HotSaNICu zmenčování jen pomocí atributů elementu IMG ve výsledém HTML souboru (nedoporučuji).
HotSaNIC si veškeré obslužné práce (generování grafů) obstarává sám v daných časových intervalech. Pokud bychom chtěli některé výsledky vidět okamžitě, můžeme pustit regenerování ručně.
$ makeindex.pl
Vygeneruje titulní index.html.
$ diagrams.pl
Vygeneruje všechny grafy.
$convert.pl
Vygeneruje náhledy ke grafům.
Tímto jsme úspěšně nakonfigurovali jádro hotsanicu a můžeme přejít ke konfiguraci jednotlivých modulů.
konfigurace jednotlivých modulů
HotSaNIC podporuje monitorování následujících subsystému:
- apcusv - záloha napajení
- apps - vytižení daných procesů
- bind - DNS
- diskio - zátěž disku
- dnet -
- mailq - MAIL
- netstat - TCP spojení
- networks - traffic uživatelů
- ntp - TIME shift
- part -
- ping - PING
- sensors - CPU/... temperature
- shoutcast -
- system - zátěž systému
- traffic - traffic
- worms - útok červů
V adresářích modules
jsou adresaře pro každý z níže uvedených modulů. V každém z nich je konfiguračních soubor setting
. V každém z adresářů je defaultní konfigurační soubor .settings.default
, kde můžeme najít přehled všech možných konfiguračních direktiv (obzvláště pro nastavování scalingu). V následujích kapitolách je přehled základních nastavení pro jednotlivé konfigurační soubory.
apcusv
# cesta k souboru apcacces, musí nám běžet také apcupsd APCACCESS="/sbin/apcaccess"
apps
# jméno procesu a popis APP="httpd,apache" APP="proftpd,ftp"
bind
diskio
Příklad konfigurace:
nejprve zjistim ID disku:
$ cat /proc/diskstats 104 0 cciss/c0d0 28620311 262117 480954637 144392372 27258894 57877269 680496776 208876052 0 268644572 353404992 104 1 cciss/c0d0p1 62 401 1069 420 40 32 576 2356 0 2564 2776 104 2 cciss/c0d0p2 1483315 101904 21012416 14258620 14997887 37423217 419037344 1659521196 0 112408352 1673795000 104 3 cciss/c0d0p3 27136927 159732 459941065 130133284 12260967 20454020 261458856 2844319796 0 186114948 2974575520 11 0 sr0 0 0 0 0 0 0 0 0 0 0 0 2 0 fd0 0 0 0 0 0 0 0 0 0 0 0
konfigurace v tomto případě bude vypadat takto:
KERNEL="2.6" SOURCE="diskstats" DEV="104_0,cciss/c0d0"
dnet
mailq
netstat
networks
ntp
part
ping
editujte modules/ping/settings a pridejte
# configure multiple destinations of the form: # HOST=<host>,<description> # HOST=10.107.4.100,charon.hkfree.org #atd.
TIP:
Kdyby se Vam nevytvarely grafy, ale data v souborech rrd byly. Tak zeditujte soubor v adresari hotsanicu modules/ping/diagrams.pl
VIMari, at pouzji tento command:
- :%s/n:",$/n",/gc
ostatni at nahradi radky koncici na n:", za n", bez teto upravy jsem to nerozchodil!!!
( RRDtool 1.2.6 , /usr/src/hotsanic-0.5.0-pre5.tgz, perl5.8.7 )
sensors
# cesta ke vstupním hodnotám (podle načteného modulu jádra), # jméno db, popisek, pozice ve vstupním souboru, násobící koeficient, # přičítací koeficient, jednotky SENSOR="/usr/sbin/hddtemp -n /dev/hda |",hda,HDD1,1,1,0,°C,40,60 SENSOR="/sys/bus/i2c/drivers/w83627hf/1-0290/temp3_input,mb,MB temp,1,.001,0,C"
shoutcast
system
IRQ=<number>,<short description>