Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
vyuka:cviceni:y36sps:semestralky:plchm1 [2009/05/21 18:10] – plchm1 | vyuka:cviceni:y36sps:semestralky:plchm1 [2009/05/27 15:20] (current) – plchm1 | ||
---|---|---|---|
Line 8: | Line 8: | ||
Schváleno 16.4.2009: Michal Medvecký | Schváleno 16.4.2009: Michal Medvecký | ||
- | ===== Zadání | + | |
+ | |||
+ | ===== Obecně | ||
+ | Hlavní router celé sítě je Debian Etch. Běží na něm dohled- Nagios a MRTG, vpnky, autorizace uživatelů, | ||
+ | |||
+ | Pro zjednodušení práce administrátorů mají jednotlivé koncové routery svůj jmenný ekvivalent. Ten je zaznamenán na firemních DNS. | ||
+ | |||
+ | Systém Nagios jsem využil jako jeden z nejlepších a nejpoužívanějších dohledových systémů. Navíc je to firemní standard, že se k monitoringu používá právě on. | ||
===== Instalace Nagiosu ===== | ===== Instalace Nagiosu ===== | ||
Line 21: | Line 28: | ||
Ono si to najde a nainstaluje samo potřebné závislosti. | Ono si to najde a nainstaluje samo potřebné závislosti. | ||
Nyní už si můžeme zkusit dát do prohlížeče: | Nyní už si můžeme zkusit dát do prohlížeče: | ||
- | http://77.78.101.12/nagios3/ | + | http://vase_domena(ip)/nagios3/ |
- | Zobrazí se nám úvodní stránka Nagiosu, ale když se chceme podívat na služby, nebo hosty, tak to nejde. | + | Zobrazí se úvodní stránka Nagiosu, ale nejdou zobrazit statistiky |
- | Je to proto, že nemáme | + | Je to proto, že nemám |
< | < | ||
htpasswd -n admin | htpasswd -n admin | ||
Line 31: | Line 38: | ||
admin: | admin: | ||
</ | </ | ||
- | Tento řádek je potřeba dodat do souboru | + | Tento řádek je potřeba dodat do souboru |
< | < | ||
touch / | touch / | ||
nano / | nano / | ||
</ | </ | ||
- | Navíc | + | Případně htpasswd si umí ten soubor vytvořit sám: |
- | Zkontrolujte konfiguraci a restartujte | + | < |
+ | htpasswd -c / | ||
+ | </ | ||
+ | Navíc | ||
+ | Nagios | ||
< | < | ||
nagios3 -v / | nagios3 -v / | ||
+ | </ | ||
+ | Pokud Nagios nevypsal žádné errory, případně warningy, restartuje se služba, aby se projevily změny: | ||
+ | < | ||
/ | / | ||
</ | </ | ||
Nyní se už v prohlížeči zobrazí předkonfigurovaní hosti- localhost a gateway. | Nyní se už v prohlížeči zobrazí předkonfigurovaní hosti- localhost a gateway. | ||
+ | Tím je instalace a zprovoznění Nagiosu kompletní. | ||
Můžu se vrhnout na konfiguraci hostů. | Můžu se vrhnout na konfiguraci hostů. | ||
- | Jdu do složky s konfiguracemi, | + | |
+ | ===== Konfigurace dohledu sítě ===== | ||
+ | |||
+ | Konfigurační soubory budou uložené v adresáři / | ||
+ | Po instalaci je v něm několik konfiguračních souborů se všeobecným nastavením. | ||
+ | Podle zadání je vidět, že dohledový systém má hlídat několik skupin zařízení. Kdyby byly všechny konfigurační soubory v jednom adresáři, tak by to bylo nepřehledné. | ||
+ | Ve složce / | ||
+ | < | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | </ | ||
+ | Soubory s obecnými nastaveními se přesunou do adresáře preconfigured. | ||
< | < | ||
cd / | cd / | ||
- | mkdir hosts | ||
- | mkdir preconfigured | ||
mv ./ | mv ./ | ||
</ | </ | ||
- | Vytvořím si konfigurační soubory pro jednotlivé | + | Přesunu se do adresáře hosts a připravím |
- | touch hsr.cfg ups.cfg vpn.cfg wl.cfg | + | < |
- | Přes nano doplním konfiguráky. | + | touch hsr.cfg local.cfg ups.cfg vpn.cfg wl.cfg |
- | Pak dodělám konfiguráky | + | </ |
- | touch contacts.cfg extinfo.cfg groups.cfg | + | Začnu s konfigurací hsr.cfg, ve kterém budu konfigurovat dohled routerů na přípojných bodech. Všechny budou vypadat v tomto tvaru: |
- | vymazu z / | + | < |
- | do /hosts/local.cfg zkopiruju obsah host-gateway... a ./ | + | define host { |
- | extinfo z hostgroups prekopiruju a zmenim a zmenim | + | host_name hsrX |
- | Přes nano doplním. | + | alias HSRX - adresa |
- | Změny konfiguračních souborů a jejich umístění musím zadat v nagios.cfg. | + | address hsrX.p8 |
+ | use generic-host | ||
+ | parents parent | ||
+ | } | ||
+ | </ | ||
+ | Abych měl všechny konfigurační soubory hezky u sebe, tak do local.cfg nakopíruji informace obsažené v / | ||
+ | < | ||
+ | rm / | ||
+ | rm / | ||
+ | </ | ||
+ | Jak názvy napovídají, | ||
+ | < | ||
+ | define host { | ||
+ | host_name hsrX-ups | ||
+ | alias HSRX - UPS | ||
+ | address XXX.XXX.XXX.XXX | ||
+ | use generic-host | ||
+ | parents hsrX-vpn | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | define host { | ||
+ | host_name hsrX-vpn | ||
+ | alias HSRX - VPN | ||
+ | address 10.1.0.2 | ||
+ | use generic-host | ||
+ | parents hsrX | ||
+ | } | ||
+ | </ | ||
+ | Protože přibyly nové přípojné body a status mapa začala být nepřehledná, | ||
+ | < | ||
+ | define host { | ||
+ | host_name name | ||
+ | alias alias | ||
+ | address XXX.XXX.XXX.XXX | ||
+ | use generic-host | ||
+ | parents parent | ||
+ | } | ||
+ | </ | ||
+ | Nyní potřebuji dát hosty do skupin, nastavit mapu a kontakty. Vytvořím pro ně konfigurační soubory. Chci je mít vytvořeny v conf.d, protože obsahují globální nastavení a tak je nechci mít někde hluboko zanořené. | ||
+ | < | ||
+ | touch / | ||
+ | </code> | ||
+ | Ale tyto konfigurační soubory obsahuje už defaultní nastavení, které teď mám přesunuté do složky | ||
+ | V contact.cfg stačí změnit emailovou adresu: | ||
+ | < | ||
+ | email you@yourdomain.com | ||
+ | </code> | ||
+ | V extinfo.cfg nastavuji obrázky, které se budou zobrazovat u hostů ve status map. | ||
+ | U localhostu chci, aby se mi zobrazoval tux. | ||
+ | < | ||
+ | define hostextinfo{ | ||
+ | host_name localhost | ||
+ | icon_image base/ | ||
+ | icon_image_alt base/ | ||
+ | vrml_image base/ | ||
+ | statusmap_image base/linux40.gd2 | ||
+ | } | ||
+ | </ | ||
+ | U routerů se mi bude ukazovat obrázek nějakého zařízení: | ||
+ | < | ||
+ | define hostextinfo{ | ||
+ | host_name hsrX, | ||
+ | icon_image base/ | ||
+ | icon_image_alt base/ | ||
+ | vrml_image base/ | ||
+ | statusmap_image base/ | ||
+ | } | ||
+ | </ | ||
+ | V group.cfg sdružuji hosty do skupin. Vytvořím 5 skupin podle služeb, které na nich chci kontrolovat- all, ssh, ping, vpn, ups. | ||
+ | < | ||
+ | define hostgroup { | ||
+ | hostgroup_name | ||
+ | alias | ||
+ | members | ||
+ | } | ||
+ | |||
+ | define hostgroup { | ||
+ | hostgroup_name | ||
+ | alias | ||
+ | members | ||
+ | } | ||
+ | |||
+ | define hostgroup { | ||
+ | hostgroup_name | ||
+ | alias | ||
+ | members | ||
+ | } | ||
+ | |||
+ | define hostgroup { | ||
+ | hostgroup_name vpn | ||
+ | alias OpenVPN tunnels | ||
+ | members hsrX-vpn | ||
+ | } | ||
+ | |||
+ | define hostgroup { | ||
+ | hostgroup_name ups | ||
+ | alias APC UPS | ||
+ | members hsrX-ups | ||
+ | } | ||
+ | </ | ||
+ | Zbývá doplnit, jaké služby chci monitorovat. Jdu do adresáře | ||
+ | < | ||
+ | mv ./ | ||
+ | mv ./generic-service_nagios2.cfg ./generic-service.cfg | ||
+ | mv ./ | ||
+ | mv ./ | ||
+ | </ | ||
+ | Kontrolu služeb pro jednotlivé skupiny nastavím v ./ | ||
+ | Změním hostgroup_name podle toho, jak jsem to nakonfiguroval group.cfg. Http, kterou tam mít nepotřebuji, | ||
+ | Doplním tedy: | ||
+ | < | ||
+ | define service { | ||
+ | hostgroup_name ups | ||
+ | service_description APC UPS | ||
+ | check_command ups-check | ||
+ | use generic-service | ||
+ | notification_interval 0 | ||
+ | } | ||
+ | </ | ||
+ | Pro kontrolu pingu a ssh existuje defaultní konfigurační nastavení, ale pro ups-check musím ještě doplnit příkaz, který se má spustit. Můžu použít nějakého pluginu, nebo zkusit napsat vlastní skript. UPS APC mají vlastní webové | ||
+ | <code bash> | ||
+ | # | ||
+ | ip=" | ||
+ | x=`wget -q -t 1 -T 5 http:// | ||
+ | |||
+ | if [ $? -eq 0 ]; then | ||
+ | bat=`echo $x | sed " | ||
+ | power=`echo $x | sed " | ||
+ | status=`echo $x | sed " | ||
+ | time=`echo $x | sed " | ||
+ | capa=`echo $x | sed " | ||
+ | |||
+ | echo -ne " | ||
+ | echo -ne " | ||
+ | echo -ne " | ||
+ | if [ " | ||
+ | exit 0; | ||
+ | else | ||
+ | exit 1; | ||
+ | fi | ||
+ | |||
+ | exit 0 | ||
+ | else | ||
+ | echo "UPS communication lost" | ||
+ | exit 2 | ||
+ | fi | ||
+ | </ | ||
+ | Tento skript si uložím jako ups.sh do nově vytvořeného adresáře / | ||
+ | Teď už staří se na tento skript odkázat | ||
+ | < | ||
+ | define command { | ||
+ | command_name ups-check | ||
+ | command_line / | ||
+ | } | ||
+ | </ | ||
+ | Pro to, abych mohl používat příkazy z webového rozhraní Nagiosu je potřeba v souboru / | ||
+ | < | ||
check_external_commands=1 | check_external_commands=1 | ||
+ | </ | ||
+ | Aby se mi status mapa zobrazovala jako stromová struktura, tak edituji / | ||
+ | < | ||
+ | default_statusmap_layout=3 | ||
+ | </ | ||
+ | To bude asi vše. Zkontroluji nastavení a restartuji Nagios: | ||
+ | < | ||
+ | nagios3 -v / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | ===== Závěr ===== | ||
+ | Dohledový systém (zkušební) je možné vidět zde: http:// | ||
+ | |||
+ | Během této semestrální práce jsem si vyzkoušel práci s dohledovým systémem Nagios, což mi pomohlo při laboratorních cvičeních a při mé práci. | ||
+ | |||
+ | Zkoušel jsem také konfiguraci Nagiosu pomocí nástroje Centreon, ale ten bohužel při exportu nastavení pro Nagios vyhazoval chyby v objektech php, které jsem já nemohl ovlivnit, takže jsem se touto utilitou dále nezabýval. | ||
+ | {{: | ||
~~DISCUSSION~~ | ~~DISCUSSION~~ | ||