abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 02:22 | Nová verze

Byla vydána verze 2.0 svobodné aplikace určené pro fotografování a ovládání digitálních fotoaparátů z počítače Entangle. Kódové jméno této nejnovější verze je Sodium.

Ladislav Hagara | Komentářů: 0
dnes 01:22 | Nová verze

Byla vydána verze 2.18 svobodného webového prohlížeče pracujícího v grafickém i textovém módu Links (Wikipedie). Přehled novinek v seznamu změn. Links letos slaví 20 let. První veřejná verze 0.80 byla zveřejněna 24. listopadu 1999.

Ladislav Hagara | Komentářů: 1
včera 16:55 | Zajímavý článek

Vývojáři postmarketOS (GitLab) hodnotí 600 dnů vývoje tohoto v květnu 2017 představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky [reddit].

Ladislav Hagara | Komentářů: 0
včera 15:55 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 284 bezpečnostních chyb. V Oracle Java SE je například opraveno 5 bezpečnostních chyb. Všechny jsou vzdáleně zneužitelné bez autentizace. V Oracle MySQL je opraveno 30 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace jsou 3 z nich.

Ladislav Hagara | Komentářů: 0
včera 15:44 | Komunita

Na YouTube byly zveřejněny komunitní videozáznamy přednášek z konference OpenAlt 2018. Letošní OpenAlt proběhne o víkendu 2. a 3. listopadu opět na FIT VUT v Brně.

Ladislav Hagara | Komentářů: 0
včera 10:33 | Komunita

Mozilla.cz informuje (en), že program Firefox Test Pilot se příští týden uzavře. Program sloužil téměř tři roky pro testování nových funkcí pro Firefox. Díky němu dnes máme stránku nového panelu, Screenshots pro vytváření snímků stránek, bezpečné sdílení souborů Send, doplněk pro lepší práci a přihlašování k více účtům nebo připravovaný správce hesel Lockbox. Tyto funkce pokračují dál, ale samotný Firefox Test Pilot bude 22. ledna 2019

… více »
Ladislav Hagara | Komentářů: 0
15.1. 21:45 | Zajímavý projekt

Humble Bundle v rámci akce Double Fine Presents nabízí skupinu multiplatformních her bez DRM za vlastní cenu: Mountain, 140 a THOTH (jako jediná nikoliv pro Linux), za nadprůměrnou cenu navíc GNOG a Escape Goat 2 a za aspoň $10 Gang Beasts a Everything. Platbu lze rozdělit mezi vývojáře, Humble Bundle a charitu. Akce probíhá do 29. ledna.

Fluttershy, yay! | Komentářů: 2
15.1. 17:22 | Nová verze

Laboratoře CZ.NIC vydaly novou verzi 4.12.0 aplikace Datovka, tj. svobodné multiplatformní desktopové aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi.

Ladislav Hagara | Komentářů: 0
15.1. 17:00 | IT novinky

Byla zveřejněna pravidla hackerské soutěže Pwn2Own Vancouver 2019, jež proběhne od 20. do 22. března v rámci bezpečnostní konference CanSecWes. Vedle virtualizačních softwarů nebo webových prohlížečů se bude letos útočit i na automobil Tesla Model 3.

Ladislav Hagara | Komentářů: 0
15.1. 10:33 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostních chybách v scp klientech. Jedná se o chyby CVE-2019-6111, CVE-2018-20685, CVE-2019-6109 a CVE-2019-6110 v scp z OpenSSH a CVE-2018-20684 ve WinSCP. Zranitelné je také pscp z PuTTY. Server pod kontrolou útočníka může provádět neoprávněné operace na straně klienta.

Ladislav Hagara | Komentářů: 4
Používáte USB Type-C?
 (19%)
 (15%)
 (10%)
 (12%)
 (37%)
 (3%)
 (45%)
Celkem 369 hlasů
 Komentářů: 0
Rozcestník

Nagios + Centreon + MySQL - skripty

18. 3. 2008 | Max Devaine | Sítě | 10977×

V tomto článku si ukážeme, jak napsat jednoduchý skript, jak ho definovat pomocí příkazu a jak upravovat stávající příkazy a využívat více voleb skriptů. Už je také na čase zprovoznit posílání e-mailů.

Obsah

Jednoduché seznámení se skripty

link

Základní popis skriptů

link

S instalací Centreon se nám instalují i další skripty. Můžeme říci, že tato sada je celkem dostačující pro běžné monitorování. Skripty se nacházejí v adresáři

/usr/lib/nagios/plugins/

Většinou jsou skripty zkompilované do binární formy (psané např. v C), ale mohou to být skripty v Perlu, Bashi aj. Jejich výstup a nejen ten by měl být podle určitého vzoru. Pro skripty jsou rezervované následující volby, které by neměly být použity k ničemu jinému:

-V version (--version)
-h help (--help)
-t timeout (--timeout)
-w warning threshold (--warning)
-c critical threshold (--critical)
-H hostname (--hostname)
-v verbose (--verbose)

Mezi další standardní volby patří ještě tyto:

-C SNMP community (--community)
-a authentication password (--authentication)
-l login name (--logname)
-p port or password (--port or --passwd/--password)monitors operational
-u url or username (--url or --username)

Každý skript musí splňovat ještě další dvě základní věci. První a tou nejdůležitější je POSIXová návratová hodnota na výstupu STDOUT (neposílat nic na STDERR), jež by měla mít jednu z následujících hodnot:

Návratová hodnotaStav službyStav zařízení
0OKUP
1WARNINGUP nebo DOWN/UNREACHABLE
2CRITICALDOWN/UNREACHABLE
3UNKNOWNDOWN/UNREACHABLE

Stavy OK, WARNING, CRITICAL jsou jasné, stav UNKNOWN patří nečekané chybě, třeba chybě skriptu.

Klasický výstup by měl být textový, jednořádkový (Nagios 3 už umí zacházet i s víceřádkovými) a maximální počet znaků by neměl přesáhnout 80 na řádek. Formát by měl být následující:

STAV: Informační text
Critical: Plugin timed out after 10 seconds
PING Critical: Plugin timed out after 10 seconds

Jednoduchý skript

link

Nyní si ukážeme velmi jednoduchý skript v Perlu, který nebude dělat nic jiného, než předhazovat stavy podle tabulky výše. Skript vytvoříme na následující cestě a dáme mu jméno "test":

nano -w /usr/lib/nagios/plugins/test

Obsah skriptu bude následující (myslím, že komentáře mluví za vše):

#!/usr/bin/perl -w
use strict;
use warnings;

# definování globálních proměných:
my $help;
my $version;
my $warning;
my $critical;
my $ok;

# definování parametrů skriptu:
use Getopt::Long qw(Configure GetOptions);
Configure('bundling');
GetOptions
("h" => \$help,             "help" => \$help,
 "V" => \$version,          "version" => \$version,
 "critical" => \$critical,
 "warning" => \$warning,
 "ok" => \$ok
);

# parametr --help s návratovou hodnotou 3 = unknown
if ($help) {
print "-h (--help) napoveda
-V (--version) verze programu
--ok vse je ok
--warning varovna hodnota
--critical pokusny vypis chyby pro nagios\n";
exit 3;
}

# paramtr --version s návratovou hodnotou 3 = unknown
if ($version) {
print "Verze programu je pip\n";
exit 3;
}

# paramtr --ok s návratovou hodnotou 0 = ok
if ($ok) {
print "Ok: vsechno funguje\n";
exit 0;
}

# paramtr --warning s návratovou hodnotou 1 = warning
if ($warning) {
print "Warning: Franto, nejaky prusvih\n";
exit 1;
}

# paramtr --critical s návratovou hodnotou 2 = critical
if ($critical) {
print "Critical: Spadlo to\n";
}
exit 2;

Neměli bychom mu také zapomenout nastavit práva pro spouštění:

chmod 755 /usr/lib/nagios/plugins/test

Nyní si ho můžeme v příkazové řádce lehce otestovat:

debian-test# /usr/lib/nagios/plugins/test --help
-h (--help) napoveda
-V (--version) verze programu
--ok vse je ok
--warning varovna hodnota
--critical pokusny vypis chyby pro nagios

Pokud se někomu zobrazuje při spuštění skriptů Centreonu nebo našeho skriptu hláška (viz /var/log/nagios2/nagios.log)

Can't locate Config/IniFiles.pm in @INC ...

tak potřebuje doinstalovat perl modul pro použití rozšíření CPAN. Na Debianu/Ubuntu by to řešil např. následující příkaz:

aptitude install libconfig-inifiles-perl

Nebo ručně, což nedoporučuji:

perl -MCPAN -e 'install Config::IniFiles'

Použití skriptu v Centreon

link

Nyní, když máme skript vytvořen, zcela funkční a na správném místě, můžeme ho začít testovat v prostředí Centreon. Nejdříve si vytvoříme samotný příkaz, poté hosta a nakonec službu, na kterých budeme onen příkaz testovat.

Vytvoření příkazu

link

V nabídce Configuration -> Commands si vytvoříme pomocí položky "add" checkovací příkaz s názvem třeba "test">

centreon skripty 01

Vysvětlení příkazu:

  • $USER1$/ - je cesta k samotnému skriptu, v našem případě je ekvivalentní k /usr/lib/nagios/plugins/.
  • test --$ARG1$ - samotný skript, kterému předáváme nějaký argument, ten ale budeme definovat později přímo v nastavení nějaké služby nebo zařízení (hostu).
  • Argument example: !ok - toto je kolonka s příkladem definice argumentu, je to jen nápověda, která se k tomuto příkazu zobrazuje.

Nyní si ukážeme příklady, které jsou naprosto totožné, jen jinak zapsané (vše se stále vztahuje ke kolonce "Command line" v Centreon):

/usr/lib/nagios/plugins/test --ok
$USER1$/test --ok
$USER1$/test $ARG1$ #argument pak musíme později definovat jako !--ok
$USER1$/test --$ARG1$ #argument pak musíme později definovat jako !ok

Další příklad, tentokrát s více argumenty (využijeme přímo hotového skriptu check_ftp). Když si vypíšete nápovědu ke skriptu check_ftp, tak zjistíte, že má mnohem více parametrů, než jen definici koncového zařízení, jak je to použito v Nagiosu:

$USER1$/check_ftp -H $HOSTADDRESS$

Tento příkaz si můžeme přepsat třeba nějak takto:

$USER1$/check_ftp -H $HOSTADDRESS$ -p $ARG1$ -$ARG2$

Když tomuto skriptu předáme parametry !2221!4, tak vlastně provedeme příkaz

$USER1$/check_ftp -H $HOSTADDRESS$ -p 2221 -4

A kde tedy předáváme ony parametry příkazu? Nu, jak už jsme řekli, přímo v nastavení daného zařízení (hosta) nebo služby. Takže si vytvoříme hosta podle tohoto vzoru:

centreon skripty 02

Nyní ještě službu (nezapomeňte ji přiřadit k hostu v záložce Relations):

centreon skripty 03

Dále už jen exportujete nastavení do Nagiosu a znovu ho načtete (Configuration -> Nagios atd., znáte z minula...). Nyní by se vám mělo přidat jedno zařízení a jedna služba a obě by měly být OK. Zkoušejte si pak měnit parametry z !ok na !warning, popř. !critical a uvidíte, jak se to bude pěkně projevovat. Po změně parametrů samozřejmě nezapomínejte znovu exportovat nastavení do Nagiosu.

Je opravdu nutné psát skripty?

link

To je otázka. Pokud potřebujete zjišťovat stavy nějaké služby nebo zařízení a nemůžete proto najít vhodný skript, tak se ještě podívejte na stránku http://www.nagiosexchange.org, kde najdete velké množství checkovacích skriptů a dalších rozšířeních.

Odesílání e-mailů

link

Abychom mohli odesílat e-maily, tak potřebujeme nějaký poštovní server. Nejvíce připadají v úvahu dvě možnosti. Buď si nainstalujeme a nakonfigurujeme vlastní poštovní server, který bude nezávislý (schránky atd.), nebo se s tím nebudeme plácat a prostě nainstalujeme nějaký poštovní server a nastavíme mu přeposílání na nějaký jiný, který jsme do teď spokojeně využívali. První možnost vyžaduje větší úsilí, připojení k Internetu a vydala by na samostatný článek, kterých už stejně bylo napsáno mnoho. Druhá varianta je jednoduchá a stručná, takže ji zmíním :-).

Druhá varianta se hodí pro lidi, kteří už používají nějaký e-mailový server, mají na něm vlastní schránky atd., takže by zbytečně rozjížděli plnohodnotnou duplicitní věc. Příkladem budiž firma, která má v lokální síti vlastní server, jenž je připojen do Internetu a stará se o veškerou e-mailovou komunikaci. My nainstalujeme na server s Nagiosem jen SMTP server a nastavíme mu přeposílání na náš stávající e-mailový server (na něm by měla být nastavená IP adresa Nagiosu jako důvěryhodného serveru)

Tak jdeme instalovat a konfigurovat SMTP server Postfix (na Debian):

aptitude install postfix

a upravíme soubor /etc/postfix/main.cf:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

myhostname = debian-nagios.debian-nagios.cz
mydomain = nagios
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

# pokud chcete, aby e-mail od Nagiosu vypadal takto:
# admin@nagios.cz, tak do mailname napište: nagios.cz
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, $mydomain

# IP adresa serveru, kam se mají e-maily přeposílat:
relayhost = 192.168.1.100
relay_domains = $mydomain
transport_maps = hash:/etc/postfix/transport

# adresy, které mají povoleno využivat tento SMTP server
# (v tomto případě jen server sám o sobě) a pak server,
# na který jsou e-maily posílány
mynetworks = 192.168.1.100, 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Dále je třeba ještě upravit /etc/postfix/transport:

nagios smtp:[192.168.1.100]:25

Nakonec ještě restart Postfixu a je to:

/etc/init.d/postfix restart

Pokud nechcete čekat na Nagios, tak si můžete zkusit poslat e-mail z příkazové řádky:

echo "Ahoj chlape, jak se vede?" | mail maxdevaine@volny.cz

Zda se e-mail odeslal, se můžete dozvědět v logu:

cat /var/log/mail.info

Závěr

link

Příště moduly.

Nejčtenější články posledního měsíce

Windows 10 za €9,46, Office 2016 Pro za €21,43 – poslední promoakce 2018, získejte až 20% extra slevu!
Jaderné noviny – přehled za prosinec 2018
Týden na ITBiz: Stínové IT

Nejkomentovanější články posledního měsíce

  všechny statistiky »

Seriál Nagios + Centreon + MySQL (dílů: 5)

Nagios + Centreon + MySQL - instalace a základní konfigurace (první díl)
<—« Nagios + Centreon + MySQL - konfigurace pomocí Centreon
»—> Nagios + Centreon + MySQL - skripty
Nagios + Centreon + MySQL - moduly pro Centreon (poslední díl)

Související články

Nagios + Centreon + MySQL - konfigurace pomocí Centreon
Nagios + Centreon + MySQL - instalace a základní konfigurace
Traffic shaping (patchování a instalace)
Traffic shaping - 2 (IMQ a úvod do shapingu)
Jemný úvod do adresace v protokolu IP verze 4
OSPF - dynamické routování
Nastavení DNS
Čo keď nechodí sieť?
IPSec v kernelu 2.6
Kešovací DNS server BIND
Jak nabootovat Linux po síti
Směrování v sítích IP
NFS+NIS+LTSP - přihlašování na server
Seriál: Domácí síť
Seriál: Soukromá síť
Seriál: Stavíme bezdrátovou síť
Seriál: Linuxové DMZ

Odkazy a zdroje

Nagios Exchange
Nagios Plugin API
Nagios plug-in development guidelines

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)
       

Hodnocení: 75 %

        špatnédobré        

Nástroje: Tisk bez diskuse

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

18.3.2008 09:19 Bohdan
Rozbalit Rozbalit vše skripty - psat skripty slusne
Zdravim,

chtelo by to psat skripty pro nagios slusne a alespon pozuit utils.pm z nagiosu
use utils qw(usage %ERRORS);

exit $ERRORS{WARNING};
vracet tvrde cisla se do budoucna nemusi vyplatit
Max avatar 18.3.2008 12:13 Max | skóre: 66 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: skripty - psat skripty slusne
Vím, měl jsem tam dopsat něco jako : "toto je ukázka toho, jak to funguje, ale takové prasečinky se nesmí dělat". Příklad je myšlen jako zbytečně nekomplikovaná ukázka toho, jak to funguje, to bylo jediné poslání onoho skriptu.
Zdar Max
Měl jsem sen ... :(
20.3.2008 06:49 mck
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
myslim ze minimalne za zmienku stoji spomenutie performance vystupu
Queria Sa-Tas avatar 22.3.2008 22:40 Queria Sa-Tas | skóre: 7 | Brno
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
predne super clanky - moc diky :)

akorat bych se chtel zeptat: - v nadpisu je "+ MySQL", ale zatim se o tom nepsalo, nebo jsem neco prehlidl (a to je dost mozne)? bude se to v nejakem clanku rozepisovat nebo to je uz na kazdem? a z tohoto duvodu by taky mozna nebylo od veci shrnout jak 'komunikuji' nagios, centreon apod, dohledal jsem si ze je tu jakysi status_file u ktereho je dulezite mit opravneni ke cteni pro Apache(*) usera :) kazdopadne ktere informace (config,data) jdou odkdud kam a tak no, ted si je ziskava centreon a uklada do db, nebo jsou pouze v tom status souboru (kery se po restartu premaze)?

- no a druha vec je PerfParse ... koukal jsem, ze to je modul k nagiosu co muze ziskavat data a ukladat si je do DB, nasledne k nim delat grafy. Mozna je to to, co je potreba pro fungovani grafu (Centr.Views), pac ja je tam taky nevidim, PerfParse nemam (zatim?), ale nastaveni pro to jsou vsude nachystana (od Centreonu). A viz treba anglicky navod k Centr. s tim taky pocita http://wiki.oreon-project.org/index.php/Documentation_EN ... coz se take mj. tyka predchozi otazky no
Max avatar 23.3.2008 20:24 Max | skóre: 66 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
Centreon má velké množství dat uloženo v mysql db. Viz první článek a při instalaci je vidět, že se mj. ptá na heslo a jména db, která má vytvořit. Vytvoří celkem dvě db :
centreon (v mém článku, v návodech je ještě postaru oreon)
cds (centreon data storage)
Veškeré nastavení má centreon uloženo v db. S nagiosem komunikuje tak, že v centreonu jednoduše naklikáte nastavení, které potom jedním tlačítkem vyexportujede do konfiguračních souborů nagiosu a zároveň nagios reloadnete, aby si je načetl.
O zjišťování stavů služeb a hostů se stará cgi script, který může využívat kdokoliv. Teď nejsem na svém pc, abych se přesně podíval na cestu a jméno toho scriptu, ale myslím, že je to tento :
/usr/lib/nagios/cgi/status.cgi
Dále pak pro mapu :
/usr/lib/nagios/cgi/statusmap.cgi
atd.
Standardně má práva nastavena dobře, tak jsem to v článku nezmiňoval.
Pokud jde o grafy apod. věci, tak k těm nic rychlého nemám a ani nevím, zda je budu zmiňovat v článku, jelikož dle "velkého zájmu" plánuji poslední článek a ten se bude zabývat modula, hlavně integrací syslogu do centreonu.
Zdar Max
Měl jsem sen ... :(
Max avatar 26.3.2008 13:46 Max | skóre: 66 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
Tak, grafy už mi jedou, dnes jsem se na to podíval a ok :).
PerfParse je software, který se musel doinstalovat pro vykreslování grafů. Toto je ovšem zastaralé řešení, resp. je to řešení pro dosáhnutí grafů bez centreonu. Kdo používá centreon, tak ten už v sobě všechno potřebné má. Data pro grafy se zapisují do databáze CDS (název dle návodu, který jsem psal). Při instalaci centreonu se nainstaluje i služba ods (oreon data storage), která se nastavuje klikáním v centreonu a poté se musí spustit.
Pokud jde o PerfParse, tak Centreon obsahuje klikátko pro jeho nastavení. Dřív totiž neuměl vykreslovat grafy. Takže toto klikátko je už spíš asi takový pozůstatek dávných dob, ale neříkám, že je to zastaralé řešení. PerfParse se stále dobře hodí :).
Když nad tím tak přemýšlím, tak asi zahrnu zprovoznění grafů do příštího článku k modulům. Je to krátké, takže by se to tam mohlo vejít :)
Zdar Max
Měl jsem sen ... :(
8.4.2008 13:30 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
super. na tohle se tesim. pokud teda do te doby nezprovoznim grafovani sam. ;-)
Max avatar 11.4.2008 12:08 Max | skóre: 66 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
Článek jsem posílal v neděli do redakce, takže uvidíme, kdy vyjde :)
Zdar Max
Měl jsem sen ... :(
7.10.2008 09:23 Sniper
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
Zdravim,

mam dva dotazy, prvni je jak monitorovat v 3 verzi nagosu MSSQL a jeho databaze?

a druhy dotaz jelikoz se jedna o hoooodne serveru na kterych mam ustavicne problem s mistem tak by me zajimalo jestli jde nejake vypnout posilani emailu "notifikace" ale pouze pro "warning" zravy. chtel bych dal prijimat Critical a dalsi ale warningu mam tolik ze me to zahlcuje a je to zbytecny.

Jinak super clanek ;)
25.10.2008 13:01 Ivko
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
Tak na prvni dotaz pres nrpe server ktery naistalujes na strane klienta a pak si tam doinstalujes pluginy ktere potrebujes v nrpe.cfg napises check_mysql atd.. No a v nagiosu si udelas novy prikaz check_nrpe -H ip adresa -c check_mysql.

6.11.2008 22:50 tomas
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
Jako spravce velmi rozsahleho systemu nagiosu a tester centreonu muzu rict, ze nagios vari i kafe
16.8.2011 09:10 Lou
Rozbalit Rozbalit vše Re: Nagios + Centreon + MySQL - skripty
postmap transport

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.