SNMP je komunikační protokol, který se používá na správu TCPIP sítí a jednotlivých připojených počítačů resp. obecně zařízení. SNMP byl vyvinut organizací IETF a dá se použít na TCPIP sítě a na některé další druhy sítí. SNMP má klient/server architekturu. Klient (zvaný manažer - správce) se připojí k serveru (zvanému SNMP agent), který je spuštěn na vzdáleném síťovém zařízení a poskytuje manažer informace o stavu zařízení.
SNMP definuje jistý formát UDP zpráv.
Get request. Vrátí nějakou stavovou hodnotu ze zařízení. Dá se přenést více hodnot, v rámci jednoho sezení příp. TCP spoje.
Get-next request. Používá se pro zjišťování které veličiny dané zařízení podporuje a jejich hodnoty. Tohoto využívá zejména snmpwalk.
Set request. Používá se na nastavení hodnoty dané veličiny. Tímto se dají například zapínat/vypínat síťová rozhraní apod.
Trap request používají spravovaná zařízení na asynchroní hlášení chyb manažerovi.
SNMP Management Information Base je hierarchicky organizovaná kolekce informací. K MIB objektům se přistupuje pomocí nějakého network-management protokolu. Například SNMP. Skládají se ze spravovaných objektů a mají své identifikátory.Každé zařízení je charakterizováno nějakými svými specifickými MIB objekty. Každý MIB objekt je jednoznačně určen nějakým OID (Object ID). Hierarchie se dá uspořádat do stromu, kde top Každá větev má jak unikátní jméno, tak ekvivalentní deskriptor. Napřiklad iso.identified-organization.dod.internet.private.enterprise.cisco.temporary variables.AppleTalk.atInput je dejme tomu 1.3.6.1.4.1.9.3.3.1.
NET-SNMP je balík programů pro práci se SNMP protokolem. Verze ř vychází z UCD-SNMP, který Je dostupný na adrese net-snmp.sourceforge.net a pravděpodobně také jako součást některých distribucí. Obsahuje :
Agenta snmpd
snmpd je démon, který běží na daném
stroji a vyřizuje požadavky SNMP klientů. Stažená verze se dá snadno
zkompilovat pomocí
configure
make
make install
Konfigurace je uložena v souborech snmpd.conf (konfigurace SNMP agenta, nastavení týkající se uživatelů a přístupových práv obecně, rozšiřování o další MIBy apod.), snmp.conf (definuje chování aplikací využívajících SNMP. - používanou verzi SNMP protokolu, cesty k MIB objektům apod.) snmptrapd.conf (Definuje jak se má chovat SNMP trap daemon, když obdrží trap request). Tyto soubory se nemusí psát ručně. Pro jejich automatické vygenerování se dá použít program snmpconf, který je rovněž součástí balíku net-snmp.
SNMP knihovnu
Knihovnu pro vývoj aplikací pracujících jako SNMP klient nebo agent.
Nástroje na dotazování SNMP agentů
snmptranslate – Překlad jmen větví SNMP stromu na numerické hodnoty a vice versa eventuálně znázornění SNMP stromů v textové podobě
% snmptranslate .1.3.6.1.2.1.1.3.0
SNMPv2-MIB::sysUpTime.0
snmpget – Vrátí hodnotu zadané veličiny.
% snmpget -c demopublic -v 2c test.net-snmp.org system.sysUpTime.0
system.sysUpTime.0 = Timeticks: (586731977) 67 days, 21:48:39.77
snmpgetnext – Podobné jako snmpget, ale vrátí hodnotu get-next requestu.
% snmpgetnext -v 2c -c demopublic test.net-snmp.org system.sysUpTime.0
system.sysContact.0 = Wes Hardaker wjhardaker@ucdavis.edu
snmpwalk: vrátí část stromu. Začne na zadané veličině a pomocí get-next requestů pokračuje až na hranice OID.
{viz příklad na http://www.net-snmp.org/tutorial-5/commands/snmpwalk.html}
snmptable: zobrazí SNMP tabulku.
% snmptable -v 2c -c demopublic test.net-snmp.org sysORTable
{výstup viz http://www.net-snmp.org/tutorial-5/commands/snmptable.html}
snmpset: provede změnu hodnoty zadané veličiny.
% snmpget -v 2c -c demopublic test.net-snmp.org ucdDemoPublicString.0
enterprises.ucdavis.ucdDemoMIB.ucdDemoMIBObjects.ucdDemoPublic.ucdDemoPublicString.0 = "hi there"
% snmpset -v 2c -c demopublic test.net-snmp.org ucdDemoPublicString.0 s "hello world"
enterprises.ucdavis.ucdDemoMIB.ucdDemoMIBObjects.ucdDemoPublic.ucdDemoPublicString.0 = "hello world"
% snmpget -v 2c -c demopublic test.net-snmp.org ucdDemoPublicString.0
enterprises.ucdavis.ucdDemoMIB.ucdDemoMIBObjects.ucdDemoPublic.ucdDemoPublicString.0
= "hello world"
snmptrap: Sending and receiving traps, and acting upon them.
Nástroje pro údržbu SNMP traps
Verzi utility netstat která používá SNMP (snmpnetstat)
Grafický prohližeč MIB objektů.
MRTG je software na malování grafů podle SNMP veličin. Je k mání jak pro UNIXové systémy tak pro MS Windows. Instalace na systému Linux je relativne jednoduchá – buď použijeme nějaký balíčkovací systém dodávaný s naší distribuci, nebo zkompilujeme ze zdrojového kódu. K tomu jsou však potřeba nějaké již nainstalované programy. Je to
GCC – Bez toho snad nezkompilujeme téměř nic.
Perl – Pro MRTG verzi aspon 5,005. Aktuální verze je 5.8.5. K mání na www.perl.com
a také nějaké knihovny
gd – knihovnu pro malování grafů kterou vytvořil Thomas Boutell. Novější verze podporují jenom PNG formát, ale MRTG pracuje i se staršími. K mání na http://www.boutell.com/gd/
libpng – potřebuje ji gd. K mání na http://www.libpng.org/pub/png/libpng.html
zlib – je potřeba pro libpng. K mání na http://www.gzip.org/zlib
Po zkompilování MRTG je potřeba vytvořit nějaké konfigurační soubory. Toto můžete udělat buď ručně, nebo pomocí utility cfgmaker, která se dodává spolu s MRTG. Třeba takto:
$ cfgmaker --global 'WorkDir: /var/www/htdocs/' --global 'Options[_]: bits,growright' --output /home/mrtg/cfg/mrtg.cfg public@router.abc.xyz
Po automatickém vygenerování konfiguračního souboru v něm bude asi potřeba něco upravit/upřesnit. Kompletní výčet možných direktiv MRTG je na http://www.mrtg.cz/mrtg-reference.html Některé zajímavé MIB objekty pro použití v MRTG jsou na http://www.mrtg.cz/mrtg-mibhelp.html
Pro periodické generování grafů se dá přidat spouštění mrtg do /etc/crontab. Asi takto:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/bin/mrtg-2/bin/mrtg /home/mrtg/cfg/mrtg.cfg --logging /var/log/mrtg.log
Nagios je nástroj na sledování sítě – strojů a služeb, které na ní běží. Monitoruje tyto služby a upozorňuje správce když je něco špatně. Je k mání na www.nagios.org .
Zkompiluje se pomocí
./configure --prefix=prefix --with-cgiurl=cgiurl --with-htmurl=htmurl --with-nagios-user=someuser –with-nagios-grp=somegroup
kde prefix nahradíte adresářem, kam se to má nainstalovat, cgiurl nahradíte url odkazem, kterým k tomu budete přistupovat(výchozí je /nagios/cgi-bin). htmurl nahradíte url na hlavní stránku. someuser nahradíte uživatleským jménem, které bude použito pro nastavení oprávnění (výchozí je nagios) a somegroup bude skupina toho uživatele (výchozí je nagios).
make all
make install
Ukázkový spouštěcí skript (budou se asi muset upravit cesty apod.) se dá nainstalovat do /etc/init.d/nagios pomocí
make install-init
Dále bude potřeba nainstalovat nějaké pluginy. Bez nich je Nagios k ničemu. Pluginy jsou programy nebo skripy, které se daji spustit z pžíkazového řádku a pomocí nichž Nagios určuje stav dané stanice/služby. Jsou k mání na http://sourceforge.net/projects/nagiosplug/ . Jejich konfigurace je specifická pro daný plugin.
Konfigurace je uložena v několika souborech.
Hlavní konfigurační soubor (obvykle /usr/local/nagios/etc/nagios.cfg) obsahuje direktivy, které určují jak se Nagios bude chovat. Popis jednotlivých direktiv je popsán na http://nagios.sourceforge.net/docs/1_0/configmain.html
Zdrojové soubory se dají použít na ukládání uživatelských maker. Mohou také obsahovat různé informace (např. o připojení k databázi). Prakticky se používají na ukládání citlivých informací, aniž by tyto informace byly zpřístupněny CGI skriptům. Dají se určit direktivou resource_file v hlavním konfiguračním souboru.
Objektové konfigurační soubory se používají na definice strojů, služeb atd. Které chceme sledovat. Dokumentace je dostupná na http://nagios.sourceforge.net/docs/1_0/configobject.html
Konfigurace CGI je obvykle v /usr/local/nagios/etc/cgi.cfg a obsahuje direktivy ovlivňující chování CGI skriptů dodávaných k Nagios. Jejich výčet je na http://nagios.sourceforge.net/docs/1_0/cgis.html a seznam jednotlivých direktiv je na http://nagios.sourceforge.net/docs/1_0/configcgi.html
Lze konfigurovat ještě detaily jako kreslení souřadnic nebo ikonek a to v konfiguračních souborech pro rozšířené informace. Dokumentace k těmto je na http://nagios.sourceforge.net/docs/1_0/configextinfo.html
Před spuštěním je dobré překontrolovat konfiguraci pomocí
/usr/local/nagios/bin/nagios -v <main_config_file>
Pokud to projde můžeme startovat pro běh na pozadí pomoci
/usr/local/nagios/bin/nagios <main_config_file> &
Domovská stránka net-snmp
Dokumentace SNMP protokolu na http://www.snmp.com/protocol/
Mapu MIB-2 stromu na http://carsten.familie-doh.de/mibtree/mib-2-native.html
Zrcadlo domovské stránky MRTG na http://www.mrtg.cz
Dokument SNMP Overview. Našel jsem jej ve WayBackMachine, ale nyní dočasně na http://www.fi.muni.cz/~xtetur/SNMP_Overview.html
Knihu Internetworking Technologies Handbook
Dokumentaci Nagios – http://nagios.sourceforge.net/docs/1_0/toc.html