Nagios halado tervezes

Legalabbis szerintem halado :)
Mukodik szepen a Nagios, monitoroz kb. 20 szervert. Gond eseten jon a level.
Namost, en azt szeretnem megoldani, hogy _bizonyos_ esemenyekrol SMS jojjon,
tehat a normal mellett masik emilcimre is menjen level. A kovetkezo lenne:
PAR szervernel HA nem megy az apache es/vagy all a szerver (pingre nem valaszol),
akkor kuldjon SMS-t. Tehat ha xy szerveren ott all 500 level, az is kritikus, de
nem kell rola SMS, mig ha a test szerver hajnali kettokor leall (vagy az irodai gep),
arrol sem kellene SMS.

Hogyan tudnal ezt minel egyszerubben megoldani? (Nem teljes leirast varok, csak otleteket :)

Hozzászólások

Én régen úgy oldottam meg, hogy felvettem egy olyan groupot, amiben benne volt az emailes és az sms-es user is. Az 'sms' user is emailben kapta a riasztást, de az ő email címére érkező leveleket megkaptam sms-ben. Erre az olcsosms.hu-t használtam, ott be lehetett állítani, hogyha jön egy mail az ottani fiókodra, akkor azonnal kapd meg sms-ben (asszem tán 9huf/sms). Azóta már nem használom, de szerintem nem változott a felállás.

Elöljáróban:
A nagiost én Nconffal piszkálgatom, ez generálja a konfigot.

- lérteholo egy contact group-ot, felveszel bele egy felhasználót egy email címmel
- Azt email cím mailboxában valami kis script figyeli, hogy milyen levél jött és ha megfelel a feltételeknek, akkor elküldi smsben - ez részlet kérdés
- a nagiosban szolgáltatásonként tudsz megadni akár több contact groupot, így tudod szabályozni, hogy melyik szolgáltatásokról küldjön levelet, majd smst

Masodik pont: na ez a hackolas, amit nagyon szeretnek elkerulni. Ez itt es most mukodik, de 1-2 ev mulva rohadtul nem fogok emlekezni, micsinal az a script, ami a levelekt figyeli, masodsorban mashova attelepiteni se egyszeru.
Szoval alapbol a nagios configjaval szeretnem megoldani.

De koszi az otletet!

--
http://www.micros~1

A dolog nagyon 1xű, minden mobil szolgáltatónál van lehetőség SMS-ben kiküldeni az emaileket.
Pl. Pannon-nál 4-5 Ft-ért ki küldik, és még szűrőket is használhatsz.

Amit meg akarsz kapni SMS-ben azt mobil email címedre is elküldöd, külön eszközt, scriptet nem igényel, megbízható.

Szia.

A menetét már leírták előttem, amit még érdemes megemlíteni, hogy az alábbi paraméterekkel szépen szabályozhatóak contact-onként az értesítések:


host_notifications_enabled [0/1]
service_notifications_enabled [0/1]
host_notification_period timeperiod_name
service_notification_period timeperiod_name
host_notification_options [d,u,r,f,s,n]
service_notification_options [w,u,c,r,f,s,n]
host_notification_commands command_name
service_notification_commands command_name

Üdv: Zoli

Koszi, ezt megnezem. Nem tudtam, hoyg a contact-hoz is be lehet allitani. Mindjart nezem tovabb a doksit.
(mondjuk, itt fentebb nem latom, hoyg ez melyik hostra es service-re vonatkozzon, pedig ugy lenne szep, ha megcsinalhatnam hostokra vagy meginkabb hostgroupokra a fentit). De innen mar el tudok indulni, koszi.

--
http://www.micros~1

Ize...Hozzatennem (mert lathatoan felreertheto a kerdesem), nem az a gondom, hogyan kuldjek SMS-t ha level erkezik :)
(pannonmail.hu -> sms)
Az a gondom, hogyan kellene "szepen" megcsinalni azt, hogy csak az altalam kivalasztott hostok/servicek allapotarol jojjon kulon ertesites. Tehat
ket gep: a es b
ket service: x es y

I. a. gepen fut y service, crit, sms megy, x service nem megy, ugyan krit, megse megy sms
II. b gepen meg mondjuk forditva, ha y service krit, nem megy sms, ha x service krit. akkor pedig megy.

Lathatoan az a gondom, hogyha
a) minden gepen gond lenne bizonyos service kritikussa valasa
b) egy gepen minden service kritikussa valasa
eseten konnyen meg lehetne irni.

--
http://www.micros~1

Nem, az jo, amit irtal feljebb, csak nem akarok hozza kulon scriptet irni. Amugy amr korvonalazodik a megoldas,
szerintem az lesz, hoyg kulon service template-t csinalok arra a service/host-ra, amelyiket mashoyg szeretnek kezelni mint a tobbit. Csak szokas szerint a sok user hulye kerdesekkel nyaggat, ezzel meg nem haladok :(

Ha megvan, megirom.
--
http://www.micros~1

Nálunk ez úgy működik - igaz, nem szelektíven -, hogy egy egyszerű shell script hívogat egy URL-t (PHP-kód van mögötte), ha valami esemény van. Az URL egy PHP-kódra mutat, ami átveszi az értesítés paramétereit (típus,hosztnév,állapot,mobilszámok), majd egy COM-portra kötött GSM-adapteren (modem) keresztül kiküldi az SMS-t a megadott számokra (a kiküldést egy C-ben megírt démon kezeli, DB-be bejönnek az SMS-ek, ezeket fix időközönként lehúzza, és szépen sorban kiküldi az üzeneteket).

Nem állítom, hogy ez egy egyszerű/könnyen kivitelezhető megoldás, de nálunk abszolút bevált, már kb. fél éve monitorozzuk így a szervereinket. Ezzel a módszerrel bármely service vagy host leállása esetén 5 percen belül értesülünk a problémáról.

Persze lehet egyszerűsíteni a dolgon, ha a GSM-adaptert a nagiost futtató gépre kötöd, így közvetlenül tudod vezérelni, de nálunk ezt nehéz lett volna megoldani.

Külső szkriptet meghívni így lehet a nagiosból:


# notify-host-by-sms
define command{
command_name notify-host-by-sms
command_line /usr/local/sbin/nagios-host-by-sms.sh "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTSTATE$" "$CONTACTPAGER$"
}

# notify-service-by-sms
define command{
command_name notify-service-by-sms
command_line /usr/local/sbin/nagios-service-by-sms.sh "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$SERVICEDESC$" "$SERVICESTATE$" "$SERVICEOUTPUT$" "$CONTACTPAGER$"
}

Ezt a commands.cfg-ben kell deklarálni.

A szelektív küldést is meg lehet oldani, ha felveszel egy új contact group-ot, és ezt hozzárendeled azokhoz a hostokhoz vagy service-ekhez, amiket sms-értesítéssel szeretnél monitorozni.

Üdv:
Gergő

A teszt szervereket minek figyelteted ejjel nappal?

Azokat nem elég csak munkaidőbe? Ha iccaka ledoglik, hát IJ, ezért riasszon...

Dehogynem. Csak jelenleg mindegyik szerver ugyanugy figyelve van, legfeljebb a
service-ekben van kulonbseg. Ha nem irtam volna, a rendszer erosen finomhangolasra szorul, jelenleg azon orulok, hogy sikerult beuzemelnem es poccre tudok hozzaadni debiant es centost, VPS gepet es fizikait. Ezutan kell megoldanom a Windows serverek figyeleset es az egeszet finomhangolni, de legeloszor a fentivel akartam kezdeni.

Csak az a baj, hogy ez csak egy a sok munkam kozul, viszont nem egyszeru mondjuk egy "nem tudok tavolrol csatlakozni a MySQL szerverhez" es egy " nem mennek el a leveleim az Outlookbol" problema kozott erre is szakitani idot. Valahoyg nehezen all at az agyam arrol, hogy egyik pillanatban a suket usernek magyarazzam, mit baszott el, ket perc mulva meg probaljam a rendszer strukturajat megtervezni, aztan ket perc mulva a masik szerencsetlennel foglalkozzak. Igy csak akkor allok neki, ha varhatoan legalabb feloram van ra.

--
http://www.micros~1

Nálam is ugyanígy van beállítva és probléma nélkül működik. Milyen verziójú a Nagios? A contact group, a contact és a timeperiod bejegyzéseket be tudod másolni, vagy felrakni pastebin-re?

A sajathost hostnál a lezárás után az már a fájl vége? Futottam már bele olyanba, hogy nem volt a konfig fájl végén sortörés és ezért nem működött rendesen az adott szoftver. Azt nem tudom már, hogy épp a Nagios esetében volt-e ilyen.

Üdv: Zoli

Es basszus, rajottem! Felreertettem a Nagios felepiteset. Igy hittem:
1. host
- service
- service
2. host
- service
- service
stb

Es ez alapjan, amit a hostra beallitok, az ervenyes lesz az osszes ott mukodo szervizre. Hat nem :)
/var/cache/nagios3/objects.cache mutatja az effektiv ertekeket. Akkor jottem ra, hogy inkabb matrixos felepitese van, vagyis

service1 service2 service3
host1
host2
host3

alakban. Vagyis, nem eleg a hosthoz megadni a contactot, a service-hez is meg kell.
Viszont igy egesz egyszeru lesz az eredeti problemam is. Felteve, ha egy hosthoz/service-hez hozza tudok rendelni ket erteket is, valahoyg igy:

define service {
use generic_service
host_name xygep
check_command xy_gep_warn
contact_groups emil_groups
}

define service {
use generic_service
host_name xygep
check_command xy_gep_crit
contact_groups sms_groups
}

Hat itt volt nekem a nagy problemam, felreertettem a mukodeset.

--
http://www.micros~1

Lehet, hogy félreértem amit szeretnél, de ehhez nem szükséges két értéket hozzárendelni.

Például, ha megvan a szükséges service bejegyzésed, már csak a contact_groups értékével kell variálni. Azon service esetén, ahol kell sms-t küldeni: contact_groups emil_groups,sms_groups, ahol nem, csak sima e-mail: contact_groups emil_groups.

Ezt követően a megfelelő csoportba tartozó contact bejegyzésekben meghatározod, hogy milyen host és service üzeneteket küldjön az adott címre. Pl. az e-mail címre mehet minden:

define contact{
[...]
service_notification_options w,u,c,f,r,s
host_notification_options d,u,f,r,s
email celtic@xx.yy
}

Az sms értesítés csak a critical, down vagy ismeretlen állapot esetén:

define contact{
[...]
service_notification_options u,c
host_notification_options d,u
email celtic-sms@xx.yy
}

Ha jól értettem ezt szeretnéd elérni.

Üdv: Zoli

Szia!
Eppen mondani akartam, hogy ugyanezt irtak feljebb is es hogy vegulis ezt tervezem, amikor meglattam, hoyg eredetileg is Te irtad :)

Most, hogy mar (remelhetoleg) rajottem, a host es service kozti kulonbsegre, ez nagyon is megfelelo lesz, koszi! Holnap (vagy hetvegen) nekiallok. Csak ne kellene Java zh-ra keszulnom, az osszes eddigi ket ora utan :( (vagy 2*2*0,75 ora, haromnegyed oras egy tanora, egy alkalommal ketto van es eddig ketto volt, de az elson nem volt vmware, mert a rendszergazdaknak az egesz nyaruk nem volt eleg, hoyg tartomanyba rakott gepekre felhuzzanak egy image-t...)

--
http://www.micros~1

nem értem a problémát. van host és service nofitication.
ha a host down, akkor kapsz SMS-t, ha nem down, "csak" apache állt le akkor nem kapsz.
(cserébe nem a PING service fog riasztani SMS-ben, azaz packetloss-ról nem kapsz értesítést)

ezt lehet kombinálni időfeltétellel is (azaz vannak bizonyos események, amik csak munkaidőben riasztanak)