itthon / Skype / A megfigyelő szerver Nagios telepítése és konfigurálása. Nagiok telepítése és konfigurálása Ubuntun Nagiok telepítése

A megfigyelő szerver Nagios telepítése és konfigurálása. Nagiok telepítése és konfigurálása Ubuntun Nagiok telepítése

Nagios- Nyílt forráskódú program, amelyet megfigyelésre terveztek számítógépes rendszerekés hálózatok. Figyeli a megadott csomópontokat és szolgáltatásokat, és értesíti a rendszergazdát, ha valamelyik szolgáltatás leállítja (vagy folytatja) a munkáját. Ezenkívül a nagios használatával megtekintheti a gazdagépek és szolgáltatások állapotát a webes felületen keresztül. Most a legtöbbet friss változat nagios3.

    A nagios3 működéséhez szüksége lesz
  • Apache
  • GCC fordító és fejlesztő könyvtárak
  • GD fejlesztői könyvtárak

Nem árulom el, hogyan telepíti az Apache, a könyvtárakat parancsokkal telepítik

sudo apt-get install build-essential sudo apt-get install libgd2-xpm-dev

Bár a Nagios3 nekem nem működött ezen könyvtárak nélkül. a munkáról fogok beszélni Nagios az Apache2-vel.

Nagios telepítése 3 egy csapat készítette.

sudo apt-get install nagios3

A telepítés után a nagios már működik. Most hozzunk létre egy külön Apache-ot virtuális gazdagép a nagios számára. Létrehozás a könyvtárban /etc/apache2/sites-enabled Konfig fájl a nagios gazdagéphez. A gazdagép beállításaiban adja meg kezdőkönyvtárként /usr/share/nagios3/htdocsáltalában minden nagios3 webfájl ott van. A nagios beállításait is össze kell kötni az apache beállításaival. Hozzáadás a fájlhoz /etc/apache2/apache2.conf következő sor.

Tartalmazza az /etc/nagios3/apache2.conf fájlt

Utána menj erre az új gazdagépre, ha mindent jól csináltál, akkor a böngésződnek egy jelszót kell kérnie, amit még nem ismersz, de minden működik.

Most pedig foglalatoskodjunk nagios konfigurálása. Minden konfigurációs fájl megvan /etc/nagios3/. Fő konfigurációs fájl nagios.cfgösszekapcsolja az összes többi konfigurációs fájlt, és magának a nagiosnak a beállításait állítja be. Tehát ha létrehozta a saját konfigurációs fájlját, ne felejtse el belefoglalni ebbe a fájlba.
Térjünk át a fájlra cgi.cfg, minden beállítás be van állítva benne cgi szkriptek, szintén kiállítva benne hozzáférési jogok az oldalra GUI. Alapértelmezés szerint a nagiosadmin felhasználónak teljes hozzáférése van, ha szeretnél valamit engedélyezni más felhasználóknak, csak add hozzá őket vesszővel elválasztva. Az én konfigurációm így néz ki.

alapértelmezett_felhasználónév=sajátfelhasználó engedélyezett_a_rendszerinformációhoz=nagyosadmin,felhasználóm Author_for_configuration_information=nagyosadmin,felhasználóm Author_for_system_commands=nagiosadmin,myuser authentic_for_all_services =nagyrendszergazda,felhasználói jogosultságom_minden_hosts számára =nagyrendszergazda,felhasználói jogosultság minden_szolgáltatáshoz =nagyrendszergazda,felhasználói jogosultság az_all_hosts számára =nagyrendszergazda,sajátfelhasználó Author_for_all_service_commands=nagyosadmin,felhasználóm Author_for_all_host_commands=nagyosadmin,felhasználóm

Ahol a myuser a felhasználónevem. Most létre kell hoznia egy fájlt a felhasználókkal és a jelszóval, ehhez lépjen a könyvtárba /etc/nagios3/ használjuk a parancsot

cd /etc/nagios3/ sudo htpasswd -c htpasswd.users myuser

és adja meg a myuser felhasználó jelszavát
Alapértelmezés szerint a nagios egy fájlban keresi a felhasználók hitelesítését /etc/nagios3/htpasswd.users, de tárolhatja máshonnan is, ehhez a fájlváltozáshoz /etc/nagios3/apache2.conf paraméter AuthUserFile saját felelősséggel.

Most töltse be újra a nagios-t, hogy a változtatások érvénybe lépjenek

sudo /etc/init.d/nagios3 újraindítás

A teljes nagios konfigurációt is ellenőrizheti újraindítás előtt

sudo nagios3 -v /etc/nagios3/ nagios.cfg

Ellenőrzi a nagios.cfg fájlt és az összes benne lévő fájlt, és ha hibát talál, akkor ír részletes információk, azt tanácsolom, hogy a konfigurációs fájlok minden módosítása után végezzen ilyen ellenőrzést.

Ez minden, most lépjen a nagios számára létrehozott virtuális gazdagépre, és adja meg felhasználónevét és jelszavát.
Látni fogja a szolgáltatások állapotát, alapértelmezés szerint a nagios ellenőrzi a localhost és az átjáró működését. Hozzáadhatja házigazdáit vagy szolgáltatásait, hogy ellenőrizze, most megnézzük, hogyan.

Tegyük fel, hogy szeretném ellenőrizni, hogy a kollégáim mikor kapcsolják be és ki a számítógépeiket. Ehhez először le kell írnia ezeket a gazdagépeket. Létrehozás a könyvtárban /etc/nagios3/conf.d fájlt my-hosts.cfgés írd bele a vendéglátóimat

# a host definíció a barátaim összeállításához define host ( host_name volodya #Hostname alias Volodya comp #leírási cím 192.168.140.3 #ip address use generic-host ) define host ( host_name lexa alias lexa comp cím 192.168.140.4 use generic-host (alias hosztnév ) xz comp cím 192.168.140.5 use generic-host ) define host ( host_name xz2 alias xz2 comp address 192.168.140.8 use generic-host ) define host ( host_name diman alias diman comp address 192.168.140.10 ) use generic-host

Mert ez a fájl a könyvtárban van /etc/nagios3/conf.d csatlakoztassa külön a fájlban
/etc/nagios3/nagios.cfg nem szükséges, mert alapértelmezés szerint már tartalmazza az összes fájlt a könyvtárból /etc/nagios3/conf.d

Foglaljuk össze ezeket a házigazdákat egy csoportba. Írjon a csoport konfigurációs fájljába /etc/nagios3/conf.d/hostgroups_nagios2.cfg egy ilyen szöveg

#Defind my group define hostgroup ( hostgroup_name my-friends #group name alias my-friends comps # description members lexa, volodya, xz1,xz2, diman #group Members )

Most be kell állítanunk egy szolgáltatást, amely ellenőrzi a gazdagépek ezen csoportját. Hozzáadás egy fájlhoz /etc/nagios3/conf.d/services_nagios2.cfg vagy hozzon létre saját fájlt egy ilyen konfigurációval.

# ellenőrizze, hogy a barátaim kompozíciói fel vannak-e kapcsolva define service ( hostgroup_name my-friends #ellenőrizendő csoportnév service_description PING check_command check_ping! 100,0 ,20%! 500,0 .60% #check parancsáltalános szolgáltatás használata)

define contact( contact_name pasha #name alias pasha service_notification_period 24x7 #szolgáltatás értesítési időszaka host_notification_period 24x7 #host értesítési időszak service_notification_options w ,u,c,r # miről kell értesíteni host_notification_options d #értesítsen, hogy a gazdagép leállt service_notification_commands notify-service-by-email # hogyan kell értesíteni a host_notification_commands notify-host-by-email # e-mail értesítés módja f448dmg@ yandex.ru # mail )

Az időtartamok a fájlban vannak beállítva /etc/nagios3/conf.d/contacts_nagios2.cfg már több periódus van alapértelmezés szerint beállítva, ezek analógja szerint könnyedén beállíthatja a sajátját.

A rendszerfigyelés előnyei és új lehetőségei

Nagy mennyiségű állapotinformáció nyomon követése és elemzése különböző számítógépek(például a processzor kihasználtságának mértéke és hálózati kártya) sok erőfeszítést igényel, de a nyílt forráskódú Nagios (lásd a részt) jó munkát végez a valós idejű figyelés és riasztás terén.

Rendkívül fontos megérteni, hogy a Nagios nem a rendszerparaméterek, például a processzor kihasználtságának mérésére szolgáló eszköz, hanem olyan segédprogram, amely „működő”, „megbízhatatlan” és „hibás” állapotok formájában ad ki monitorozási eredményeket. A Nagios ezen funkciója segíti a kezelőt, hogy a legfontosabb és kritikus kérdésekre összpontosítson előre meghatározott és testreszabható kritériumok alapján.

A Nagios szoftver olyan funkcionalitást valósít meg, amely jelentheti az állásidő miatt elveszett időt, ami hasznos lehet a szolgáltatásnyújtás minőségének nyomon követésére a szolgáltatási szint megállapodás (SLA) szerint. Amint az a következő cikkekből kiderül, a Nagios az állásidő elszámolására és a szolgáltatásoktól és rendszerektől való függőségek létrehozására is kínál funkciókat. Ez a bevezető cikk bemutatja, milyen könnyen lehet kicsi, testreszabott megoldásokat létrehozni bizonyos megfigyelési követelményekhez.

Telepítés

Többség Linux disztribúciók® a Nagios beágyazott változatával érkezik. Ebben az esetben a termék könnyen integrálható az Apache webszerverrel. Egy ilyen konfiguráció aktiválásához vagy frissítéséhez futtassa a következő parancsot:

yum install nagios

vagy apt-get install nagios-text . Az AIX® platform binárisai letölthetők a NagiosExchange webhelyről (lásd a részt).

Más platformok esetén a Nagios forráskódja letölthető a Nagios.org webhelyről (lásd a részt). A következő fejlesztői eszközökre van szükség a Nagios létrehozásához a semmiből.

  • Eszközök:
    • autoconf
    • autógyártó
  • Futtatható fájlok:
    • libgd
    • openssl
  • Csomagok (könyvtárak és fejlécfájlok)

Az SNMP-hez (Simple Network Management Protocol) kapcsolódó számos bővítményhez Perl és a Net::SNMP csomag is szükséges.

A Nagios telepítése és konfigurálása után a szabványos http://your.host.name/nagios URL-en keresztül érhető el. Megmutatja, hogy mely rendszerek és szolgáltatások vannak engedélyezve vagy letiltva.

A Nagios beállítása

Alapértelmezés szerint az összes Nagios konfigurációs fájl az /etc/nagios könyvtárban található. Az Apache-hoz kapcsolódó konfigurációs fájlok hivatkozások segítségével kényelmesen összekapcsolhatók az Apache konfigurációs könyvtárával. A konfiguráció több fájlra van felosztva, amelyek mindegyike külön konfigurációs töredékekhez van dedikálva.

Az első beállítandó összetevők a névjegyek és a kapcsolati csoportok. A névjegyek azok az emberek, akik értesítést kapnak, ha egy rendszer vagy szolgáltatás leáll. Alapértelmezés szerint a Nagios e-mail- és személyhívó-értesítéseket kínál, de a bővítmények lehetővé teszik az értesítések küldését a Jabber protokollon és sok más módszeren keresztül, amelyek különféle körülmények között kényelmesek lehetnek.

A névjegyeket a contacts.cfg fájl tárolja, és az 1. listában látható módon vannak meghatározva.

Listázás 1. Konfiguráció 1: Alapvető elérhetőségi adatok
define contact( contact_name jdoe alias John Due service_notification_commands notify-by-email host_notification_commands host-notify-by-emailes email [e-mail védett] }

A névjegyek csoportosíthatók, és a Nagios értesíti a megfelelő csoportot azon személyek helyett, akiket értesíteni kell, ha egy rendszer vagy szolgáltatás állapota megváltozik. Néha érdemes többször megadni egy felhasználót, hogy különböző címeket vagy parancsokat adjon meg az értesítések küldéséhez, majd a felhasználóval való kapcsolatfelvétel minden módját hozzáadja ahhoz a kapcsolati csoporthoz, amelyhez tartozik ().

2. lista. 2. konfiguráció: Névjegyek csoportosítása
define contactgroup(contactgroup_name server-admins alias Server Administrators tagok jdoe,albundy )

A következő lépés a Nagios által felügyelt rendszerek beállítása. Hozzá kell adnia minden olyan számítógépet, amely rendelkezik olyan szolgáltatásokkal, amelyek tevékenységét figyelni vagy rendszeresen ellenőrizni kívánja. A rendszer tárolására szolgáló konfigurációs fájl a hosts.cfg fájl. A 3. lista egy számítógépes meghatározásra mutat példát.

3. lista. 3. konfiguráció: Új számítógép hozzáadása
define host( host_name ubuntu_1_2 alias Ubuntu tesztszerver címe 192.168.1.2 check_command check-host-alive max_check_attempts 20 notifications_enabled 1 event_handler_enabled 0 flap_detection_enabled 0 flap_detection_enabled 0 process_information_statatusnationn retail_statusnation 1 értesítési_időköz 60 értesítési_időszak 24x7 értesítés_beállítások d,u,r )

A Nagios konfiguráció utolsó lépése a szolgáltatások meghatározása a konfigurált rendszerek számára. A 4. listában látható példa egy előre definiált ping beépülő modult használ a Nagioshoz, amely ICMP (Internet Control Message Protocol) pingeket küld annak meghatározására, hogy a számítógép válaszol-e vagy sem.

4. lista. 4. konfiguráció: Hozzáadás új szolgáltatás
define service(use service-template host_name ubuntu_1_2 service_description PING check_period 24x7 contact_groups server-admins notification_options c,r check_command check_ping!300.0,20%!1000.0,60% )

A konfiguráció elkészítése után újra kell indítania a Nagios démont, majd néhány másodperc várakozás után, amíg a Nagios inicializálódik, ellenőrizze, hogy a ping szolgáltatások megjelentek-e az adminisztrátori webes felületen.

Bővítmények írása Nagioshoz

A Nagios legérdekesebb aspektusa az, hogy könnyedén írhatsz hozzá saját bővítményt, amihez meg kell tanulnod néhány dolgot. egyszerű szabályok. A beépülő modulok kezeléséhez a Nagios egyszerűen létrehoz egy gyermekfolyamatot minden alkalommal, amikor az egy szolgáltatás állapotát kéri, és a parancs kimeneti és visszatérési kódját használja az állapot meghatározásához. A szolgáltatási állapot visszatérési kódjai a következőképpen értelmezhetők:

  • rendben- visszatérési kód 0 - azt jelenti, hogy a szolgáltatás megfelelően működik;
  • FIGYELEM- az 1-es visszatérési kód figyelmeztető jelzés, hogy a szolgáltatásnak problémái lehetnek;
  • KRITIKAI- 2-es visszatérési kód - a szolgáltatás kritikus állapota;
  • ISMERETLEN- 3-as visszatérési kód - ismeretlen szolgáltatási állapot.

Az utolsó állapot egyszerűen azt jelenti, hogy a bővítmény nem tudta meghatározni a szolgáltatás állapotát. Ez történhet például belső hiba következtében.

Az 5. lista egy példa Python-szkript, amely teszteli a UNIX® OS rendszerindítási átlagát. Feltételezi, hogy a 2,0 feletti szint figyelmeztető feltétel, az 5,0 feletti szint pedig kritikus állapot. Ezek az értékek be vannak kötve a kódba, és mindig az utolsó perc terhelési átlaga is használatos.

Listázás 5. Python plugin – működő bővítmény példa
#!/usr/bin/env python import os,sys (d1, d2, d3) = os.getloadavg() if d1 >= 5.0: print "GETLOADAVG CRITICAL: A terhelési átlag %.2f" % (d1) sys. exit(2) elif d1 >= 2.0: print "GETLOADAVG WARNING: A terhelési átlag %.2f" % (d1) sys.exit(1) else: print "GETLOADAVG OK: A terhelési átlag %.2f" % (d1) sys.exit(0)

Egy kis végrehajtható komponens elkészítése után regisztrálnunk kell ezt a bővítményt a Nagiosnál, és létre kell hoznunk egy szolgáltatásdefiníciót, amely ellenőrzi a terhelési átlagot.

Ez nagyon egyszerű: először egy /etc/nagios-plugins/config/mygetloadavg.cfg fájl jön létre az alábbi tartalommal, és a szolgáltatás hozzáadódik a services.cfg fájlhoz, ahogy az alábbi példában is látható. Hadd emlékeztesselek arra, hogy a localhostnak jelen kell lennie a hosts.cfg konfigurációs fájlban.

Lista 6. Plugin példa - Nagios regisztráció
define command( parancs_neve check_mygetloadavg parancssor /elérésiútja/check_getloadavg )
Listázás 7. Szolgáltatás létrehozása a minta beépülő modul használatával
define service(use service-template host_name localhost service_description LoadAverage check_period 24x7 contact_groups server-admins notification_options c,r check_command check_mygetloadavg )

Komplett plugin írása

Az előző példa egy „kemény kódolt” bővítmény korlátait mutatta be, amely nem teszi lehetővé a konfiguráció módosítását futás közben. A gyakorlatban jobb, ha konfigurálható bővítményeket készítünk, akkor csak egy bővítményt lehet létrehozni és karbantartani, külön beépülő modulként regisztrálni a Nagiosban, és átadni neki figyelmeztető és figyelmeztető konfigurációs argumentumokat. kritikus szinteket különféle körülmények között. A következő példa használati üzeneteket is tartalmaz, ez különösen olyan beépülő moduloknál hasznos, amelyeket több fejlesztő vagy rendszergazda használ vagy karbantart.

Egy másik hasznos technika Az összes kivételt fel kell fogni, és az INKNOWN értéket visszaadni a szolgáltatás állapotjelentésébe, hogy a Nagios megfelelően értesíthesse az eseményt. Azok a beépülő modulok, amelyek lehetővé teszik a kivételek „elmenekülését”, leggyakrabban 1-es értéket adnak vissza, amit a Nagios FIGYELMEZTETÉS állapotként kezel. Fontos, hogy a beépülő modul helyesen tegyen különbséget a FIGYELMEZTETÉS (figyelmeztetés) és az UNKNOWN (ismeretlen) állapotok között. Érdemes megjegyezni, hogy az egyes FIGYELMEZTETÉS állapotok értesítései általában le vannak tiltva, de nem jó ötlet letiltani az ISMERETLEN állapotok értesítéseit.

Python beépülő modul írása

A fenti feltételezések (futásidejű paraméterezés, használati jelentések és javított kivételkezelés) olyan beépülő modult eredményeznek, amelynek forráskódja többszöröse az előzőnek. Ez azonban hozzáteszi biztonságos kezelés hibák és a bővítmény különböző helyzetekben történő újrafelhasználásának lehetősége.

Lista 8. Python plugin – teljes beépülő modul az átlagos terhelési adatok lekéréséhez
#!/usr/bin/env python import os import sys import getopt def usage(): print """Használat: check_getloadavg [-h|--help] [-m|--mode 1|2|3] \ [ -w|--figyelmeztetési szint] [-c|--kritikus szint]" Mód: 1 - utolsó pillanat ; 2 - utolsó 5 perc 3 - utolsó 15 perc" Figyelmeztetési szint alapértelmezés szerint 2.0 A kritikus szint alapértelmezés szerint 5.0""" sys.exit(3) try: options, args = getopt.getopt(sys.argv, "hm:w:c:", "- -help --mode= --warning= --critical=",) kivéve getopt.GetoptError: usage() sys.exit(3) argMode = "1" argWarning = 2.0 argCritical = 5.0 a névhez, értéke a beállításokban: if név in ("-h", "--help"): usage() if name in ("-m", "--mode"): if value not in ("1", "2", "3") ): usage() argMode = érték, ha a név in ("-w", "--warning"): try: argWarning = 0.0 + érték, kivéve Kivétel: print "Nem lehet konvertálni lebegőpontos értékre\n" usage() if név in ("-c", "--critical"): try: argCritical = 0.0 + érték, kivéve Kivétel: print "Nem lehet konvertálni lebegőpontos értékre\n" usage() try: (d1, d2, d3) = os.getloadavg() kivéve Kivétel: print "GETLOADAVG UNKNOWN: Hiba a terhelési átlag lekérésekor" sys.exit(3) if argMode == "1": d = d1 elif argMode == "2": d = d2 elif argMode = = "3": d = d3, ha d >= argCritical: print "GETLOADAVG CRITICAL: A terhelési átlag %.2f" % (d) sys.exit(2) elif d >= argWarning: print "GETLOADAVG WARNING: A terhelés átlaga %.2f" % (d) sys.exit(1) else: print "GETLOADAVG OK: A terhelési átlag %.2f" % (d) sys.exit(0)

Új beépülő modul használatához regisztrálnia kell azt az /etc/nagios-plugins/config/mygetloadavg2.cfg fájlban, a 9. listában látható módon.

Listázás 9. Python bővítmény - Nagios regisztráció
define parancs(parancsnév check_mygetloadavg2 parancssor /elérésiútja/check_getloadavg2 -m $ARG1$ -w $ARG2$ -c $ARG3$ )

Ezenkívül hozzá kell adnia vagy módosítania kell egy bejegyzést ehhez a szolgáltatáshoz a services.cfg fájlban, ahogy az a 10. listában látható. Érdemes megjegyezni, hogy Felkiáltójel! elválasztja a plugin paramétereit. Mint korábban, a localhostot a hosts.cfg konfigurációs fájlban kell meghatározni.

Felsorolás 10. Szolgáltatás létrehozása a Python beépülő modul használatával
define service(use service-template host_name localhost service_description LoadAverage2 check_period 24x7 contact_groups server-admins notification_options c,r check_command check_mygetloadavg2!1!3.0!6.0 )

Tcl plugin írása

Az utolsó példa egy Tcl nyelven írt beépülő modul, amely SOAP (Simple Object Access Protocol) és WSDL (Web Services Description Language) technológia segítségével ellenőrzi az xmethods.net árfolyamait. A SOAP biztosítja a beépülő modulnak az aktuális árfolyamokat, hogy összehasonlítsa azokat a beállított értékekkel. Ha az érték a figyelmeztetési tartományon belül van, akkor az állapot rendben van. Ha az érték a figyelmeztetési szint felett vagy alatt van, de nem a kritikus határ alatt, akkor az állapot FIGYELMEZTETÉSnek minősül. Ellenkező esetben az állapot KRITIKUSNAK minősül, hacsak nem történik hálózati hiba, amely esetben az állapot ISMERETEN értékűre van állítva.

A beépülő modul felismeri a konfigurálható paramétereket, így a különböző arányok különböző tartományokkal ellenőrizhetők. Különböző országok árfolyamainak ellenőrzésére is használható (11. lista).

Listázás 11. Tcl plugin - ellenőrizze az aktuális árfolyamokat
#!/usr/bin/env tclsh # Az argumentumok elemzése csomag parancssor beállítási lehetőséget igényel ( (country1.arg "" "Country 1") (country2.arg "" "Country 2") (lowerwarning.arg "" "Alsó figyelmeztetési határ ") (upperwarning.arg "" "Felső figyelmeztetési határ") (lowercritical.arg "" "Alsó kritikus határ") (uppercritical.arg "" "Felső kritikus határ") ) array set opt ​​​​)] # ha a felhasználó nem adott meg minden argumentumot, # majd mutasson súgóüzenetet minden szükséges ( if ($opt($necessary) == "") ( set argv "-help" catch (cmdline::geoptions argv $options (: )) használat stderr $usage exit 3 ) ) # csomag betöltése A TclWebServices csomag WS::Client-t igényel if ( 1] ) error]) ( # ha valamilyen okból nem sikerült betölteni a kurzust, jelentse, hogy az "EXCHANGERATE UNKNOWN: $error" exit 3 értéket adja ) if (($eredmény< $opt(lowercritical)) || ($result >$opt(uppercritical))) ( "CSERE KRITIKUS: árfolyam $eredmény" kilépés 2 ) if (($eredmény< $opt(lowerwarning)) || ($result >$opt(upperwarning))) ( "CSERE FIGYELMEZTETÉS: árfolyam $eredmény" kilépés 1 ) "CSERE OK: árfolyam $eredmény" kilépés 0

Most regisztrálnunk kell ezt a parancsot, hogy Nagios tudja, hogyan kell hívni. Ehhez létre kell hoznia egy /etc/nagios-plugins/config/exchangerate.cfg fájlt az előző konfigurációkhoz hasonló tartalommal és a következő parancsdefinícióval:

parancssor /útvonala/ellenőrzési_csere -ország1 $ARG1$ -ország2 $ARG2$ -alsó kritikus \ $ARG3$ -alsó figyelmeztetés $ARG4$ -felső figyelmeztetés $ARG5$ -felső kritikus $ARG6$

Az alábbi példában a check_exchangerate parancsnév használatos.

Ezután létre kell hoznia egy szolgáltatást, amely a létrehozott bővítményt használja az árfolyamok követésére. A következő egy példa egy szolgáltatásdefinícióra, amely a szolgáltatást a localhost kiszolgálóhoz társítja. Bár a csekk igazából egyikhez sem kapcsolódik igazi számítógép, még mindig a rendszerhez kell kötni. Ha az ellenőrzés magában foglalja a felügyelt hálózaton belüli kiszolgálók SOAP metódusainak meghívását, akkor hozzá kell adni egy valódi szervert a megfigyeléshez, és a szolgáltatást ehhez a szerverhez kell kötni. A kód azt ellenőrzi, hogy az angol font japán jenhez viszonyított árfolyama 225 és 275 között van.

Lista 12. A Tcl beépülő modul hozzáadása új szolgáltatásként
define service(use service-template host_name localhost service_description EXCHANGERATE check_period 24x7 contact_groups other-admins notification_options c,r check_command check_exchangerate!Anglia!Japán!200!225!275!300 )

Következtetés

A Nagios minden típusú szoftver és számítógépes hardver figyelésére használható. A saját beépülő modulok létrehozásának lehetősége lehetővé teszi, hogy mindent figyelemmel kísérjen, amivel a Nagios szerver beszélni tud. Ehhez bármilyen programozási nyelvet használhat, amely elfogadja az argumentumokat parancs sorés támogatja a visszatérési kódokat, így a lehetőségek szinte korlátlanok!

Egy tapasztalt rendszergazda kibővítheti a SOAP-példát Tcl-lel vagy bármely más nyelvvel, hogy interakcióba lépjen az intraneten található webszolgáltatásokkal, és beépülő modulokat írhasson, hogy ellenőrizze, hogy ezek a szolgáltatások megfelelően működnek-e.

Használhatja a C beépülő modulokat vagy a dinamikus nyelvbe épített C programozási funkciókat is (Pyinline a Pythonban, Inline a Perlben vagy Critcl a Tcl-ben), hogy kombinálja az operációs rendszer API-k kombinációját C nyelven egy magas szintű nyelven írt beépülő modullal. .

Egy másik Nagios funkció, amelyet érdemes megnézni, a passzív érvényesítés. nyomon követési folyamatot Nagios használatával, amelyet ebben a cikkben tárgyalunk, végrehajtható összetevőkre támaszkodik az állapot meghatározásához egy rövidzárlattal életciklus, futtatja ezeket az összetevőket, és eredményeket ér el belőlük. A passzív ellenőrzéssel a Nagios nem az állapot ellenőrzésére futtat beépülő modulokat, hanem egyedi alkalmazásokállapotváltozási üzeneteket küldjön időszakonként, vagy amikor a szolgáltatás állapota megváltozik. Egy ilyen alkalmazás riasztásokat fogadhat különböző forrásokból, felhalmozhatja azokat, és átadhatja az elkészített összefoglaló információkat Nagiosnak. A Nagios azt is feltételezheti, hogy egy szolgáltatás leállt, ha egy bizonyos ideig nem küld értesítést. A passzív érvényesítés Nagios alkalmazását a következő cikkben ismertetjük.

A Nagios bővítmények előnye, hogy könnyen létrehozhatók és megoszthatók. A Nagios bővítmények hasznosak olyan helyzetekben, amelyekkel a hálózati és rendszergazdák foglalkoznak, és a legtöbb esetben ez újrafelhasználás olyan munka eredménye, amelyet valaki korábban már végzett. A népszerű Wiki- és webforrásokhoz hasonlóan nem igényel sok erőfeszítést egy hasznos példa bemutatása, miközben az összes elérhető bővítmények nagyon nagy.

Ha valami elromlik a rendszerben, vagy szokatlan módon kezd viselkedni, a felhasználók egyöntetűen szenvednek. Ezért ebben az esetben a lehető leghamarabb értesítenie kell valakit a meghibásodásról. Még jobb lenne előre látni a problémákat előlegként. Ez a megjegyzés leírja a Nagios telepítését és konfigurációját, amely lehetővé teszi az ilyen problémák sikeres megoldását.

Invariánsok

A legtöbb rendszernek számos invariánsa van, amelyeket soha nem szabad megsérteni. Íme néhány példa a lehetséges jogsértésekre:

  • Az egyik gép terhelési átlaga X-nél nagyobb;
  • X-nél kevesebb szabad memória van az egyik gépen;
  • Az egyik gépen X-nél kevesebb szabad lemezterület van;
  • Túl sok nyitott fájlleíró az X gépen;
  • A százalék nagyon meleg, a lemez hamarosan szétesik, egy kis UPS-töltés;
  • Magas hálózati forgalom, lemez io, alacsony swap stb.;
  • Az egyik gazdagép nem pingál, vagy túl sok RTT-vel pingál;
  • Valami leállt a DNS-en keresztüli megoldásról;
  • Elérhetők a telepített csomagok újabb verziói;
  • Gyanúsan sok felhasználó jelentkezett be az egyik gépbe;
  • Eszik kritikus hibák naplókban az utolsó X percben;
  • A nem kritikus hibák száma az elmúlt X percben meghaladta az Y értéket;
  • Lajtás vagy lassan reagáló PostgreSQL , Redis , RabbitMQ , ...;
  • Az SSL-tanúsítvány hamarosan lejár;
  • A szolgáltatás válaszidejének 99. százaléka jóval hosszabb a szokásosnál;
  • Mail, SMS, push értesítések nem mennek, ...;
  • Fel kell töltenie az egyenleget egy harmadik féltől származó szolgáltatásban (AWS , Logentries , ...);
  • Gyanúsan magas költségek egy harmadik féltől származó szolgáltatásban;
  • A tesztkörnyezetben nem lehetett helyreállítani az értékesítésből származó biztonsági másolatot;
  • A szolgáltatás Zelenogradból és Dél-Afrikából elérhetetlenné vált;
  • A szolgálat belső állapotellenőrzései szerint belefutottunk az egyik szálkészletbe;

Mint látható, szinte minden szolgáltatásban könnyen találhat két tucat invariánst, vagy még többet, amelyeket soha nem szabad megsérteni, és amelyeket meglehetősen könnyű automatikusan figyelni. Ha valami elromlik, akkor elkezdünk levelet küldeni az adminoknak, SMS-t a feletteseknek, és telefonálni a kódolóknak.

Nagios telepítése

Egyébként a Nagiossal való ismeretségemnek köszönhetően sokkal jobban megértettem azokat az embereket, akik a kézi felosztást és a kézi feladatátvételt támogatják. De ez talán egy külön megjegyzés témája.

Hogyan figyeli a rendszerét?

Egy népszerű megfigyelési megoldás, a nagios lehetővé teszi skálázható rendszerek megvalósítását. Az elosztott rendszerek konfigurálása hosszadalmas folyamat, a cikk keretében egy szolgáltatás megfigyelését egy távoli gazdagépen fogjuk megvalósítani.

A konfigurációs munka egy operációs rendszerrel rendelkező szerveren történik CentOS 7, az nrpe kliens a CentOS 7-et is fogja használni

Telepítse a bővítményt a kliensre nrpeés beállításai között engedélyezi a kapcsolatot a szerverrel.

A megfigyelő szerver Nagios telepítése és konfigurálása

Elindítjuk a konfigurációt azon a gépen, amely nagios szerverként fog működni. Telepítse a szükséges csomagokat:

yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp kicsomagolás

nagios keresztül működik Apache, így a httpd a telepített csomagok listájában szerepel

Az ideiglenes fájlokkal a gyökérkönyvtárba lépünk, és a wget segítségével letöltjük a nagios és nagios-bővítmények legújabb kiadásait.

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.2.8.tar.gz

wget http://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz

Hozzon létre egy rendszerfelhasználót és csoportot

A nagios felhasználó hozzáadása a nagcmd csoporthoz

usermod -a -G nagcmd nagios

usermod -a -G nagios,nagcmd apache

Mivel CentOS-t használunk, a httpd nem www-data felhasználóként fut, hanem apache felhasználóként

A jövőbeni jogütközés elkerülése érdekében adja hozzá az apache felhasználót a nagios, nagcmd csoportokhoz

Bontsa ki a letöltött archívum tartalmát

tar -zxvf nagios-4.2.0.tar.gz

Lépjen a nagios fájlokat tartalmazó könyvtárba

A jövőben a nagios-t és az nrpe-t is a forrásból telepítjük

./configure --with-command-group=nagcmd

Adja meg a nagcmd csoportot opcióként az összeállítás során

Összeállítás

tegye install-commandmode módba

Rekurzívan másolja a könyvtár könyvtárát a /usr/local könyvtárba a kiszolgálón

cp -R contrib/eventhandlers /usr/local/nagios/libexec

Ezenkívül rekurzív módon megváltoztatjuk a nagios könyvtárak és fájlok tulajdonosát és tulajdonoscsoportját

chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Megpróbáljuk futtatni és megnézni a nagios verzióját a fő konfigurációs fájl elérési útjának megadásával

Adjon hozzá nagios-t az indításhoz – a rendszer minden indításkor futtatni fogja

systemctl enable nagios

A szolgáltatás elindítása

Hasonló műveleteket végzünk a webszerverrel

Állítsa be a nagios felhasználói jelszót

Segítséggel htpasswd létrehoz egy fájlt, amely korlátozza a nagiosadmin felhasználó hozzáférését

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

A fő csomag telepítése ezzel befejeződött. Nyisson meg egy internetböngészőt, és írja be keresési karakterlánc szerver IP-címét, majd a /nagios-t, és lépjen be a webes felületre

Szolgáltatásfigyelés beállítása távoli gazdagépen

Egy másik szervergépre megyünk, amely nagios kliensként fog működni
Lépjen a /tmp/ könyvtárba

Csomagold ki a nagios-plugins-2.1.2

tar -zxvf nagios-plugins-2.1.2

cd nagios-plugins-2.1.2

Összeállítás nagios felhasználóval és csoporttal

./configure --with-command-user=nagios --with-nagios-group=nagios

Most telepítse nrpe plugin

Először is telepítse az openssl-devel tárolóból, ha már telepítve van, hagyja ki a lépést (a csomagnak a nagios szerveren is jelen kell lennie)

yum -y install openssl-devel

Telepítheti a tárolóból is

yum install nagios-plugins-all nagios-plugins-nrpe

Ha friss verzióra van szüksége, akkor
A csomag letöltése

wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Csomagolja ki a tar.gz-t

tar -zxvf nrpe-2.15.tar.gz

Összeállítás ugyanúgy, mint korábban

Menj a nagios szerverre

A kulcs után megadott szerverről próbálunk csatlakozni -H kliens IP-címe

A csatlakozás elutasítását kapjuk, és konfiguráljuk a bővítményt

Elindítjuk az nrpe-t az ügyfélen, és hozzáadjuk a szolgáltatást az indításhoz

Nyissa meg a fő konfigurációs fájlt, és adja meg a kiszolgáló IP-címét értékként az enabled_hosts részben

mcedit /etc/nrpe/nrpe.cfg

engedélyezett_gazdagépek = 10.11.27.11

Vissza a szerverre

/usr/local/nagios/libexec/check_nrpe -H 10.11.27.44

Most a kísérletünk sikeres volt, és látjuk a nagios verziót

Nyissa meg újra a fő konfigurációt

Távolítsa el a megjegyzés jelet a következővel rendelkező sorból cfg_dir(cfg_dir=/usr/local/nagios/etc/servers)

Hozzon létre egy könyvtárat, és módosítsa azt

mkdir /usr/local/nagios/etc/servers

cd /usr/local/nagios/etc/servers

Határozza meg a figyelni kívánt gazdagépeket. A gazdagépeknek bármilyen neve lehet, a nagios minden cfg kiterjesztésű fájlt látni fog

Előírjuk a host paramétereket, a direktívák jelentése egyértelmű a névből. Sokkal több ilyen direktíva lehet, ha finomhangolásra van szükség, itt az alapvető működési konfigurációt vesszük figyelembe

definiálja a gazdagépet (
használjon linux szervert
host_name cenos11
alias csak nagios kliens
cím 10.11.27.44
max_check_attempts 5
check_period 24×7
értesítési_intervallum 30
értesítési_időszak 24×7

}

Adjon hozzá egy konfigurációt a figyelt szolgáltatáshoz. Most arra szorítkozunk, hogy ellenőrizzük a ping jelenlétét a gazdagépen

{
általános szolgáltatást igénybe venni
host_name cenos11
service_description PING
check_command check_ping!100.0.20%!500.0.50%
}

A check_command parancsot használták, egy kivonat a kézikönyvből erre vonatkozóan a következőket mondja:

check_ping -H -w ,% -c ,%
[-p csomagok] [-t időtúllépés] [-4|-6]

Ennek megfelelően a csomagok 20%-ának elvesztése esetén figyelmeztetést kapunk, 50%-os veszteséggel - ALERT

Futtassa újra, és ellenőrizze, hogy nincsenek-e hibák

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

A szolgáltatás újraindítása

systemctl indítsa újra a nagios-t

A webes felületre lépünk, és azt látjuk, hogy ott megjelenik az általunk figyelt távoli gazdagépen található szolgáltatás (a képernyőképen látható konfigurációban számos más erőforrás figyelése van konfigurálva). Az alapfunkciókkal rendelkező megfigyelő szerver konfigurálása ezzel befejeződött.

Riasztások beállítása nagiosban

Nyissa meg a fő konfigurációs fájlt, és ha szükséges, törölje a sor megjegyzéseit cfg_file=/usr/local/nagios/etc/objects/contacts.cfg:

mcedit /usr/local/nagios/etc/nagios.cfg

A fájlban megadjuk a kapcsolattartási e-mail címet az értesítések küldéséhez:

mcedit /usr/local/nagios/etc/objects/contacts.cfg

kapcsolat meghatározása (
kapcsolattartó_név nagiosadmin
használja a generic-contact
alias Nagios Admin
email [e-mail védett]

}

A szolgáltatás újraindítása

cyctemctl indítsa újra a nagios-t

Használhat további szoftver amelyen keresztül például SMS-eket lehet küldeni ÉBER alapvető szolgáltatásokkal kapcsolatban. Megérkezett egy működő Nagios szerver, a telepítés és a konfigurálás befejeződött.

Szervereknél telepítheti a Nagios szervert és klienst ugyanarra a gépre, de sokkal egyszerűbb más csomagot használni, mint pl.

A Nagios az egyik legszélesebb körben használt felügyeleti eszköz. Linux szerverekés Windows nyílt forráskódú. Ezzel nyomon követheti a fejlődést különféle alkalmazásokés szolgáltatások távolról, webes felületen keresztül. A Nagios az útválasztókat és más hálózati eszközöket is felügyeli.

A Nagios segítségével nyomon követheti az alapvető szerverparamétereket, mint például a CPU terhelése, memóriahasználata stb. Mindez elérhető egy webes felületen, amelyhez egyszerű hitelesítés szükséges. Ebben a cikkben megvizsgáljuk, hogyan történik a Nagios Ubuntu telepítése, valamint a program konfigurációja.

A Nagios Ubuntu 16.04 telepítésének többféle módja van. Használhatja a PPA-t, vagy telepítheti a hivatalos webhelyről letöltött archívum segítségével. Tovább Ebben a pillanatban a legújabb verzió a 4.3. Csak a 4.2 érhető el a PPA-ban, ezért megnézzük kézi telepítés az archívum segítségével.

Mielőtt azonban folytatnánk a telepítést, frissítenie kell a rendszert, és telepítenie kell a program felépítéséhez szükséges összes összetevőt:

sudo apt install build-essential apache2 php7.0 openssl perl make php7.0-gd libgd2-xpm-dev libapache2-mod-php7.0 libperl-dev libssl-dev démon wget apache2-utils kicsomagolás

Ezután létre kell hoznia egy csoportot és felhasználót, amely alatt a Nagios futni fog, valamint a webes felületen végrehajtott shell parancsokat:

sudo useradd nagios
$ sudo groupadd nagcmd

Adja hozzá a nagios felhasználót és azt a felhasználót, amely alatt az Apache fut a nagcmd csoporthoz:

sudo usermod -a -G nagcmd nagios
$ sudo usermod -a -G nagcmd www-data

Ezután le kell töltenünk a nagios forrásokat. Ezt megtehetjük terminál paranccsal, de mivel szeretnénk a legtöbbet kihozni új verzió, jobb, ha felkeresi a hivatalos webhelyet és letölti.

Először kattintson az elemre "Nagio Core" gombot, majd görgessen lefelé, és nyomja meg a gombot Letöltés:

Ebben a szakaszban megadhat információkat magáról, vagy kihagyhatja a kattintással "Letöltés kihagyása":

Marad a verzió kiválasztása, például 4.3.2. A letöltés befejezése után lépjen a letöltések mappába, és csomagolja ki az archívumot:

cd ~/Letöltések/
$ tar -zxvf /tmp/nagios-4.3.2.tar.gz

Most áttérhetünk a nagios összeállítására. Ehhez a következő parancsokat kell futtatnia:

./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/sites-enabled/
$make all
$ sudo make install
$ sudo make install-init
$ sudo make install-config
$ sudo make install-commandmode
$ sudo make install-webconf

A Nagios beállítása Ubuntun

A program összes konfigurációs fájlját a telepítő a /usr/local/nagios/etc/ mappába helyezi. Az alapértelmezett beállítások lehetővé teszik a Nagios futtatását, de még néhány változtatást kell végrehajtanunk. Nyissa meg a contact.cfg fájlt, és módosítsa email cím amelyre az értesítéseket küldjük:

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

kapcsolat definiálása (
kapcsolattartó_név nagiosadmin ; Rövid felhasználónév
használjon generic-contact ; Alapértelmezett sablon
alias Nagios Admin ; Teljes felhasználónév
email admin@site ; Az email címed
}

A webes felület működéséhez létre kell hoznia egy jelszót a nagiosadmin felhasználó számára a htpasswd segítségével, e nélkül egyszerűen nem léphet be a felületre:

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Végül a megfelelő működéshez el kell végeznie néhány beállítást a webszerveren. Engedélyezze a cgi modult:

sudo a2enmod cgi

Indítsa újra a webszervert:

sudo service apache2 újraindítás

Megszerzéséért további jellemzők nagios telepíthet egy sor bővítményt. Ehhez először töltse le:


Most csomagolja ki az archívumot, és lépjen a mappába:

tar -zxvf /tmp/nagios-plugins-2.1.1.tar.gz
$ cd /tmp/nagios-plugins-2.1.1/

A modulok összeállításához futtassa:

./configure --with-nagios-user=nagios --with-nagios-group=nagios
$make
$ make install

A modulok a Nagios mappába vannak telepítve, most ellenőrizze, hogy helyes-e a konfiguráció:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Az automatikus indításhoz hozzon létre egy egységfájlt a systemd számára:

sudo vi /etc/systemd/system/nagios.service


Description=Nagios
BindTo=network.target


WantedBy=multi-user.target


User=nagios
Csoport=nagios
Típus=egyszerű
ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

A Nagios elindítása

Szinte minden készen áll, hátra van a szolgáltatás elindítása és használatának megkezdése. A szolgáltatás elindításához írja be:

sudo systemctl stat nagios

A nagios webes felületének megnyitásához elegendő a nagios ip-címét és url-jét beírni a böngészőbe. Ha mindezt telepítette a helyi számítógépére, akkor használja:

http://localhost/nagios

Az oldal megnyitása után azonnal meg kell adnia a nagiosadmin felhasználónevet és a korábban beállított jelszót. Ezt követően használhatja a program összes funkcióját:

következtetéseket

Ebben a cikkben megvizsgáltuk, hogyan van konfigurálva a nagios 4, valamint teljes telepítés legújabb verzió V operációs rendszer Ubuntu. Annak ellenére, hogy első pillantásra minden bonyolultnak tűnik, a folyamat meglehetősen egyszerű. Most már figyelheti a nagios ubuntu 16.04-et. Remélem, hogy ez az információ hasznos volt az Ön számára.