vyuka:cviceni:y36sps:semestralky:plchm1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vyuka:cviceni:y36sps:semestralky:plchm1 [2009/05/21 21:59] plchm1vyuka: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ů, mailserver. 
 + 
 +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 52: Line 59:
 Tím je instalace a zprovoznění Nagiosu kompletní. Tím je instalace a zprovoznění Nagiosu kompletní.
 Můžu se vrhnout na konfiguraci hostů. Můžu se vrhnout na konfiguraci hostů.
 +
 ===== Konfigurace dohledu sítě ===== ===== Konfigurace dohledu sítě =====
  
Line 86: Line 94:
 rm /etc/nagios3/conf.d/preconfigured/host-gateway_nagios3.cfg rm /etc/nagios3/conf.d/preconfigured/host-gateway_nagios3.cfg
 </code> </code>
-Jak názvy napovídaj9, v ups.cfg budu mít uloženou konfiguraci dohledu UPSek a ve vpn.cfg VPNek. Op2t se budou definovat podle podobného vzoru:+Jak názvy napovídají, v ups.cfg budu mít uloženou konfiguraci dohledu UPSek a ve vpn.cfg VPNek. Op2t se budou definovat podle podobného vzoru:
 <code> <code>
 define host { define host {
Line 107: Line 115:
 </code> </code>
 Protože přibyly nové přípojné body a status mapa začala být nepřehledná, doplnil se Nagios i o nějaké body po trase- mastery a slavy. Konfigurace jejich nastaveni je podobna jako hsr. Protože přibyly nové přípojné body a status mapa začala být nepřehledná, doplnil se Nagios i o nějaké body po trase- mastery a slavy. Konfigurace jejich nastaveni je podobna jako hsr.
 +<code>
 define host { define host {
  host_name name  host_name name
Line 113: Line 122:
  use generic-host  use generic-host
  parents parent  parents parent
 +}
 +</code>
 +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é.
 +<code>
 +touch /etc/nagios3/conf.d/contacts.cfg /etc/nagios3/conf.d/extinfo.cfg /etc/nagios3/conf.d/groups.cfg
 +</code>
 +Ale tyto konfigurační soubory obsahuje už defaultní nastavení, které teď mám přesunuté do složky preconfigured (./contacts_nagios2.cfg ./extinfo_nagios2.cfg ./hostgroups_nagios2.cfg). Jejich obsah zkopíruji do nově vytvořených souborů a ty původní smažu.
 +V contact.cfg stačí změnit emailovou adresu:
 +<code>
 +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.
 +<code>
 +define hostextinfo{
 + host_name localhost
 + icon_image base/linux40.gif
 + icon_image_alt base/linux40
 + vrml_image base/linux40.gif
 + statusmap_image base/linux40.gd2
 +}
 +</code>
 +U routerů se mi bude ukazovat obrázek nějakého zařízení:
 +<code>
 +define hostextinfo{
 + host_name hsrX,hsrY,hsrZ        ;můžu specifikovat více hostů
 + icon_image base/ng-switch40.gif
 + icon_image_alt base/ng-switch40
 + vrml_image base/ng-switch40.gif
 + statusmap_image base/ng-switch40.gd2
 +}
 +</code>
 +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.
 +<code>
 +define hostgroup {
 +        hostgroup_name  all
 + alias           All Servers
 + members         *
 } }
  
-Přes nano doplním konfiguráky. +define hostgroup { 
-Pak dodělám konfiguráky pro nastavení mapykontaktů a skupin. +        hostgroup_name  ssh                          ;ssh budu kontrolovat na všech routerech 
-touch contacts.cfg extinfo.cfg groups.cfg + alias           SSH machines 
-vymazu z /preconfigured contacts a groups (jejich obsah zkopiruju do prislusnych adresaru) + members         localhost,hsrX,hsrY,hsrZ,name 
-do /hosts/local.cfg zkopiruju obsah host-gateway... ./localhost... ty pak smazu, rm localhost_nagios2.cfg  rm host-gateway_nagios3.cfg muzu smazat jeste smazat +
-extinfo z hostgroups prekopiruju zmenim a zmenim generic-service -http nepotrebuju, ping a ssh jojeste doplnim upsky + 
-Přes nano doplním. +define hostgroup { 
-Změny konfiguračních souborů a jejich umístění musím zadat nagios.cfg.+        hostgroup_name  ping                         ;pingáním budu kontrolovat všechny zařízení 
 + alias           Pingable machines 
 + members         localhost,gw,hsrX,hsrX-vpn,hsrX-ups 
 +
 + 
 +define hostgroup { 
 + hostgroup_name vpn                           ;vpnky si sdružím do zvláštní skupiny 
 + alias OpenVPN tunnels 
 + members hsrX-vpn 
 +
 + 
 +define hostgroup { 
 + hostgroup_name ups                           ;upsky si sdružím do zvláštní skupiny 
 + alias APC UPS 
 + members hsrX-ups 
 +
 +</code> 
 +Zbývá doplnit, jaké služby chci monitorovatJdu do adresáře ./etc/nagios3/conf.d/preconfigured, kde mi už zbyly jen 4 soubory, ty si přejmenuji, aby se jmenovaly pěkněji. 
 +<code> 
 +mv ./generic-host_nagios2.cfg ./generic-host.cfg 
 +mv ./generic-service_nagios2.cfg ./generic-service.cfg 
 +mv ./services_nagios2.cfg ./services.cfg 
 +mv ./timeperiods_nagios2.cfg ./timeperiods.cfg 
 +</code> 
 +Kontrolu služeb pro jednotlivé skupiny nastavím v ./services.cfg 
 +Změním hostgroup_name podle toho, jak jsem to nakonfiguroval group.cfg. Http, kterou tam mít nepotřebuji, smažu to tedy, ping ssh chci. Ještě mi tam chybí dohled UPSek. 
 +Doplním tedy: 
 +<code> 
 +define service { 
 + hostgroup_name ups 
 + service_description APC UPS 
 + check_command ups-check 
 + use generic-service 
 + notification_interval 0 
 +
 +</code> 
 +Pro kontrolu pingu a ssh existuje defaultní konfigurační nastaveníale pro ups-check musím ještě doplnit příkaz, který se má spustitMůžu použít nějakého pluginu, nebo zkusit napsat vlastní skript. UPS APC mají vlastní webové konfigurační rozhraní se statusem o stavu apod. To můžu načíst pak regulárními výrazy vybrat, co z toho chci. 
 +<code bash> 
 +#!/bin/bash 
 +ip="$1" 
 +x=`wget -q -t 1 -T 5 http://$ip/status.cgi -O -` 
 + 
 +if [ $? -eq 0 ]; then 
 +        bat=`echo $x | sed "s/.*Battery\ status:\(.*\)/\1/" | head -c 120 | sed "s/.*Serif.*>\(.*\)<.font.*/\1/"
 +        power=`echo $x | sed "s/\(.*\)Watts.*/\1/" | sed "s/.*providing:\(.*\)/\1/" | sed "s/.*>\(.*\)\&nbsp.*/\1/"
 +        status=`echo $x | sed "s/.*Runtime\(.*\)/\1/" | sed "s/\(.*\)led..gif.*/\1/" | sed "s/.*Serif\(.*\)Serif.*/\1/" | sed "s/.*middle>\(.*\)..font.*font.*/\1/" | sed "s/\&nbsp\;/\ /"` 
 +        time=`echo $x | sed "s/\(.*\)minutes.*/\1/" | sed "s/.*>\(.*\)\&nbsp\;.*/\1/"
 +        capa=`echo $x | sed "s/.*Runtime\(.*\)minutes.*/\1/" | sed "s/.*led..gif\(.*\)Serif.*/\1/" | sed "s/.*>\&nbsp\;\(.*\)\&nbsp\;\(.\)<\/font.*/\1\ \2/"
 + 
 +        echo -ne "Battery status: $bat ($capa, $time min)\n" 
 +        echo -ne "Overall status: $status\n" 
 +        echo -ne "Providing: $power Watts\n" 
 + if [ "$status" == "On Line" ]; then 
 +                exit 0; 
 +        else 
 +                exit 1; 
 +        fi 
 + 
 + exit 0 
 +else 
 +        echo "UPS communication lost" 
 + exit 2 
 +fi 
 +</code> 
 +Tento skript si uložím jako ups.sh do nově vytvořeného adresáře /etc/nagios3/plugins. 
 +Teď už staří se na tento skript odkázat definici příkazu. To udělám editací souboru /etc/nagios3/commands.cfg. Kam doplním: 
 +<code> 
 +define command { 
 + command_name ups-check 
 + command_line /etc/nagios3/plugins/ups.sh $HOSTADDRESS$ ;je cesta ke mnou vytvořenému skriptu a předávám mu adresu hosta 
 +
 +</code> 
 +Pro to, abych mohl používat příkazy z webového rozhraní Nagiosu je potřeba v souboru /etc/nagios3/nagios.cfg změnit check_external_commands na: 
 +<code>
 check_external_commands=1 check_external_commands=1
-jeste doplnim command pro kontrolu upsek+</code> 
 +Aby se mi status mapa zobrazovala jako stromová struktura, tak edituji /etc/nagios3/cgi.cfg: 
 +<code> 
 +default_statusmap_layout=3 
 +</code> 
 +To bude asi vše. Zkontroluji nastavení a restartuji Nagios: 
 +<code> 
 +nagios3 -v /etc/nagios3/nagios.cfg 
 +/etc/init.d/nagios3 restart 
 +</code> 
 + 
 +===== Závěr ===== 
 +Dohledový systém (zkušební) je možné vidět zde: http://77.78.101.12/nagios3/ 
 + 
 +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. 
 + 
 +{{:vyuka:cviceni:y36sps:semestralky:plchm1.pdf|Prezentace}}
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
  
  • vyuka/cviceni/y36sps/semestralky/plchm1.1242943153.txt.gz
  • Last modified: 2009/05/21 21:59
  • by plchm1