[megoldva] Nagios, NSClient ++ external scripts

sziasztok!

nagioshoz kerestem windows gépek figyelésére programot, ami az nsclient++ lett (ha nem tudom megoldani, akkor javaslatok után mást is kipróbálnék szívesen). első körben alap megfigyeléssel kezdtem (él-e a winbox, rajta futó szervíz működik-e), ezek mennek rendesen, tehát a szolgáltatás elvileg helyesem működik. a bibi itt kezdődik, mert fejembe vettem, hogy amit még néznék szívesen, azt már csak saját scriptekkel tudnám megoldani és mondjuk check_nrpe-vel lekérdezni. gugli szerint ez menne a baj csak az, hogy a leírások, amik erről szólnak nem számoltak azzal, hogy a friss verziójú nsclient++ (NSClient++ 0,4,1,73 2012-12-17) konfigja már megváltozott formátúmú (az ini file szekcióit korábban még [szekciónév] formában írták, a mostaniban meg [/szekcióné] formában látom.

amit szeretnék, de nem megy:
- külső scriptek futtatása
- pl. powershell
- nrpe-vel lekérdezve nagios oldalról (az ehhez szükséges lekérdezés már megy, mint konzolról, mint a webes felületen egy default lekérdezéssel)

a külső scriptek futtatásához kellett és engedélyeztem a külső excriptek futtatását (CheckExternalScripts = 1), az nrpe szervert (NRPEServer = 1). ezeket a [/settings/default] részben a telepítő magától létrehozta. ezután engedni akartam a paramétereket és a "nasty" karaktereket is. erre vonatkozó rész leírásonként változik. próbáltam [NRPE] részbe, [/settings/NRPE/server] részbe is. jelenleg is ez utóbbi van a konfigban, formailag a "gyári szinktaktikához ez hasonlít leginkább. jelesül ilyenformán van ott

[/settings/NRPE/server]
allow arguments=true
allow nasty characters=true

próbáltam true helyett 1 írásával is, változatlan. a szerver oldaláról tesztelve (check_nrpe -p port -H host) kapok választ, az nrpe verziót, valamint azt, hogy látszólag jó minden. ezután tehát csináltam egy scriptet, amit futtatni akarok (mindegy, hogy .bat, vagy .ps1, csak fusson végre valami). ezt betettem a [/settings/external scripts/alias] részbe ilyenformán:

nesze=scripts/ezt.bat

a hívó oldalról így már "check_nrpe -p port -H host -c nesze" módon próbáltam futtatni. a válasz "no handler for scripts/ezt.bat" lett. hol rontom el, mitől működne helyesen? (elég zavaró, hogy a leírások mindegyike más .ini formátumot mutat, így lövésem sincs melyik a tényleg helyes. ezért követtem formailag azt, a mit a telepítő is csinált)

extra kérdés: az normális, hogy (a tűzfalon át van engedve, de kikapcsolt tűzfal mellett is néztem, nem az a gond) az nrpe hívásra párszor connection refused üzenet jön? ez a protokol ilyen megbízható?

segítségeteket előre is köszönöm!

[MEGOLDÁS: a 0.4.1 verzióban (és lehet, hogy innentől már így lesz, kiderül) tetszőleges külső scriptet az nsclient.ini-ben ide kell definiálni:

[/settings/external scripts/scripts]
nesze=útvonal/wrapper/script, stb.

Hozzászólások

"ez a protokol ilyen megbízható"
A protokollnak semmi baja. Ezt rendszerint az okozza, hogy az nrpe szerveren nem engedélyeztél valamit valahonnan. Debug módban azt is elsírja a logba, hogy mi a bánatja. Ilyenekre van szükséged:
allowed_hosts=
dont_blame_nrpe=
debug=
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10

A windowsos commandok elérhetőségéről nem tudok nyilatkozni.

Linuxscripting

a megbízhatóságával kapcsolatban nem az engedélyezéssel van a gond. a parancs egymás utáni kiadása után egyszer csak jön válasz. a dont_blame_nrpe-t meg fogom nézni (mintha ezt is próbáltam volna már, de mindeképpen olvastam valamit róla; nem tűnt megoldásközelinek asszem. majd megint megnézem)

a check_users dolgot miért írtad? lehet késő van, de nem értem, bocs.

--
xterm

NSclient.iniben:
command[nesze]=scripts\nesze.bat $ARG1$ $ARG2$

Service nsclient stop/start megvolt?

Nincs elirva a script név? Logban mi van? nagios.logban mit van? Tűzfalon engedélyezni kell a portokat (Windows firewall with advanced security). Azt hiszem 5666 és 1248 vagy 12489.

-------------------------
127.0.0.1 SWEET 127.0.0.1
AMD Athlon X2 245E@3,1 GHz OC, MSI Radeon 6770 1 Gb GDDR5, Seagate Barracuda, Windows 7 Enterprise

az a command[] rész most meglepett. egyetlen példában sem láttam ilyen formát! holnap tesztelem. bár lehet hétvégén nem lesz elég időm rá. a tűzfalas részre sajna tudom mondani, amit pár perce írtam. át van engedve, nem azt a gond. a parancs ismételgetésével jön válasz, meg néha nem jön. a service restart minden módon volt már. sőt, mivel a configot elvben úgy olvassa újra, elég sokszor, ameddig teszteltem. a script név nincs elírva (eredeti formályában pl. nem is a scriptet hívtam meg, hanem a powershell miatt az "= cmd /c ..." esetében azt mondta, hogy a cmd-re nincs handler. ha cseréltem, akkor arra írta. mindenképpen az = után levő "bármire" írja.

--
xterm

a command[] mindenképp kell tudtommal.

Mivel amikor a távoli szerverről lekérnéd az állapotokat nrpe-vel, akkor a [] közti stringgel azonosítja a futtatandó parancsot, ezért dobja azt hogy No handler for that command.
-------------------------
127.0.0.1 SWEET 127.0.0.1
AMD Athlon X2 245E@3,1 GHz OC, MSI Radeon 6770 1 Gb GDDR5, Seagate Barracuda, Windows 7 Enterprise

Szia! Azt írtad, hogy alternatíva is jó lesz: http://mathias-kettner.de/checkmk_windows.html . Én ezt használtam amikor Win -eket is felügyeltem. Bevált és megbízható volt (1 éve kb már nem használom, de ha jól látom, azóta is csak tovább fejlesztették).

Mi inkabb SNMP-t hasznaltunk erre mivel az nrpe kliens nem valt be.
--
"ssh in a for loop is not a solution" – Luke Kanies, Puppet developer

Hétfőn megyek melóba, megnézem nálam hogy van. Addig kitartás :) Van custom scriptünk is, szóval másolok egy vonatkozó configrészletet
-------------------------
127.0.0.1 SWEET 127.0.0.1
AMD Athlon X2 245E@3,1 GHz OC, MSI Radeon 6770 1 Gb GDDR5, Seagate Barracuda, Windows 7 Enterprise