Prislistor och tjänster släppta!

Nu har jag äntligen kommit på banan som fristående konsult!

Under rubriken “Konsult” finns en kort sammanfattning av mina kompetenser, självklart så täcks inte allt in där, utan det bästa är att fråga om jag kan ta jobbet. Under “Systemövervakning” försöker jag förklara fördelarna med övervakning och varför det är bra för dig, till sist så hittas priser och fasta tjänster under “Tjänster och priser“.

Allt är under genomarbetning och kommer att fräschas upp och förbättras med tiden. Har du några frågor, tankar eller bara något att säga mig, skicka ett mail till andreas@abergman.se eller ring mig på 0708-768300.

Skala upp Icinga utan att installera flera instanser.

Med mod_gearman kan man enkelt skala upp och sprida ut icinga över flera servrar, utan att hålla på och mecka med jobbiga “passive checks”, mod_gearman sköter biffen åt dig!

http://labs.consol.de/nagios/mod-gearman/

Jag återkommer senare med en mer ingående artikel om mod_gearman.

Failloop

Jag satt och skrev på en plugin för Icinga, och gjorde världens dundertabbe, för dig som nu tänker “åh den jävlen drop:ade hela databasen och rm -rf:ade /”, så har du fel! Det var inte riktigt så roligt.

Bakgrund
Icinga lagrar aktuell data om alla hostar i en databastabell som heter “hosts” och datan om deras status i tabellen “hoststatus”. Jag har definierat upp en check i icinga som kollar så att hosten är online, resultatet av det här scriptet lagras i tabellen “hoststatus”.

Kontentan
Mitt script kontrollerade statusen på hosten i tabellen “hoststatus” och reflekterade ut den statusen i Icinga.

Resultatet av detta? Det blev en loop där jag kollade statusen, som skrev till databasen och sen läste av värdet igen, en fin Failloop :)

Lösning
Jag skulle ha läst ur tabellen “servicestatus” istället…

Icinga + Scheduled passive checks

Jag har funderat ett tag på hur man kan använda Icinga för övervakning av maskiner som inte står i samma nät som icingaservern, jag vill även uppnå det utan att öppna några brandväggsportar mer än nödvändigt. Lösningen jag har klurat på bygger på passiva checks och ett API samt ett schemalagt script för att exekvera scriptet. Jag ska se om jag kan snickra ihop något så återkommer jag!

Op5 släpper plugin för att övervaka ESX:er/Vmware med Nagios

Idag släppte Op5 sin plugin för att övervaka Vmware ESX-servrar via Nagios, pluginen hittar du här: http://www.op5.org/community/projects/check-esx-plugin

Jag har ingen möjlighet att testa det själv, men communityn som har hunnit testa den verkar gilla det och jag är övertygad om att vi kommer få se prov på pluginen in action inom en snar framtid.

Eftersom den stödjs av Nagios så fungerar den garanterat med Icinga, och det är absolut inte dåligt! Den enda haken som jag ser det är att man behöver Vmware SDKt skrivet i perl för att använda pluginen.. Det känns sådär hett!

Mycket nu och Ninja

Det är mycket nu! Fullt upp med att dra igång www.ngweb.se, vi  är något unikt på spåren det gäller bara att få det på pränt. Vill du veta mer om hur Next Generation Web .kan ta hand om din webblösning så kolla på webbsidan eller skicka mig ett mail!

I all denna hysteri så påminde David mig om ett projekt som jag både använt och testat men hunnit glömma bort, inte för att det är dåligt utan mer för att jag haft mycket att stå i.

Projektet Ninja (Nagios is now just awesome) från det svenska Op5, det är helt enkelt ett nytt webbgränssnitt för Nagios, och för en gång skull så är det snyggt, visserligen så är Icingas nya GUI också snyggt, men inte på samma sätt! Op5 har en del andra roliga projekt kring Nagios, bla en konfigurationshanterare, väl värt att titta på!

Konfigurera Icinga för NRPE

I ett tidigare inlägg  skriver jag om hur man sätter upp NRPE på maskinerna, nu ska jag gå igenom hur man konfigurerar kontrollerna.

Först måste vi definiera att kommando för nrpe_check, detta gör vi i vår command.cfg enligt nedan.

define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Nu måste vi skapa en host som vi kan köra våra kontroller på, det gör vi i en fil som vi kallar för server02.cfg enligt nedan:

define host{
        use           linux-server                                                                    
        host_name     Server02
        alias         Server02
        address       192.168.0.1
        }

När vi har en Host uppsatt, så sätter vi upp en check som ska göras:

define service{
        use            local-service        
        host_name      Server02
        service_description  Current Load
        check_command  check_nrpe!check_load
}

Glöm inte att starta om/ ladda om konfigurationen i Icinga innan du försöker se om det funkar, kontrollen kommer nu att synas i webbgränssnittet som en vanlig check.
Anledningen till att vi kan skriva bara check_load och ändå få det att funka är att check_load redan är definierad med gränsväden i filen /usr/local/icinga/etc/nrpe.cfg på Server02

command[check_load]=/usr/local/icinga/libexec//check_load -w 15,10,5 -c 30,25,20

Av säkerhetsskäl så är det smartast att fördefiniera alla kontroller på maskinen som ska kunna utföra, då behöver man bara skicka minimalt med kommandon/inkommande data via nätverket och minskar därmed risken för att någon med illvilliga avsikter tar över din maskin. Det går att skicka med gränsvärden från icinga, men det rekomenderas inte om du kör övervakningen över nätet, kör du det i ditt interna nätverk så är det en mindre risk för intrång och kan vara ett smidigare sätt att justera sina gränsvärden.

Installera NRPE för Icinga

Eftersom Icinga är fullt bakåtkompatibelt med Nagios så kan man utan problem använda sig av nagiosplugins för att göra vissa manövrar, i mitt fall övervaka en annan server, en linux VPS. Den enda nackdelen med att använda en nagiosplugin är för att den har standardanvändare och grupper, men det går som tur är att definiera
själv när man kompilerar pluginen/add-on:en.

Det vi ska göra är att kompilera addonen och pluginen NRPE(http://nagios.sourceforge.net/docs/3_0/addons.html), notera att addonen NRPE har en plugin(check) som också heter NRPE, den heter i systemet check_nrpe men ingår i samma projekt.

NRPE är en demon som körs via xinet.d och används för att låta en Icinga/Nagios installation exekvera scripts på den aktuella maskinen, man måste dock komma ihåg att alla script som ska exekveras måste finnas på den aktuella maskinen.Jag har två stycker servrar jag vill blanda in, Server01 som håller icinga installationen och Server02 som jag vill övervaka, noteras ska att båda maskinerna är Debian Stable.

Förberedelser på båda maskinerna
Börja med att ladda ner de paket som krävs, du behöver:

* Openssl samt libssl-dev
* NRPE: http://www.nagios.org/download/addons
*Nagiosplugins: http://sourceforge.net/projects/nagiosplug/files/ (behövs bara på Server02)
*Xinetd(behövs bara på server02)

Det är möjligt att kompilera in vissa kontroller direkt i NRPE, men jag väljer att inte göra det.

 
Skapa användare och grupper
För att kunna köra NRPE och Nagiosplugin så måste vi skapa en användare och en grupp på maskinen, jag väljer att kalla dessa för ‘icinganrpe’, användaren icinganrpe ska vara medlem av gruppen icinganrpe.
Vi börjar med att installera de delar som krävs på Server02.

Konfigurera och installera Nagiosplugins
 
Packa upp det nerladdade arkivet och kör:

./configure --prefix=/usr/local/icinga --with-nagios-user=icinganrpe --with-nagios-group=icinganrpe
make && make install

–prefix anger i vilken katalog nagiosplugins ska installeras, jag väljer samma katalog som icinga ligger i på Server01.
–with-nagios-user anger vilken användare pluginen ska kompileras med.
–with-nagios-group samma som ovan fast för gruppen.

Konfigurera och installera NRPE
Packa upp det nerladdade arkivet och kör:

./configure --with-nagios-user=icinganrpe --with-nagios-group=icinganrpe --with-nrpe-user=icinganrpe --with-nrpe-group=icinganrpe --enable-ssl --libexecdir=/usr/local/icinga/libexec/ --bindir=/usr/local/icinga/bin/ --sysconfdir=/usr/local/icinga/etc
make all
make install
make install-daemon
make install-daemon-config
make install-plugin
make install-xinetd

–prefix anger i vilken katalog nagiosplugins ska installeras, jag väljer samma katalog som icinga ligger i på Server01.
–with-nagios-user anger vilken användare pluginen ska kompileras med.
–with-nagios-group samma som ovan fast för gruppen.
–with-nrpe-user samma som för nagios-user och group.
–with-nrpe-group samma som ovan.
–enable-ssl eftersom vi inte vill att maskinerna ska kommunicera med varandra i klartext så installerar vi NRPE med SSL påslaget, därav Openssl som krav.
–libexecdir anger vart nagiosplugins finns installerade.
–bindir anger vart binärfilen för NRPE ska installeras.
–sysconfdir anger vart konfigurationen för NRPE ska installeras. 

Anledningen till att det blir så många flaggor är för att nrpe och nagiosplugins som standard installeras i kataloger som heter *nagios* något, och det vill jag inte när jag ska använda det med Icinga.

Konfigurera Xinetd
xinetd är en “internet superserver” som används för att starta och köra demoner och servrar som inte har några egna PID, precis som svchost i windows. När vi ovan körde make install-xinetd så gjorde den i princip allt som vi behöver göra, dock så ska vi dubbelkolla att det blev rätt, börja med /etc/Xinetd.d/nrpe här har du en flagga som heter “Only from” som standard står det 127.0.0.1 där, låt det stå kvar tillsvidare, men senare ska vi ändra det till IP:t på Icinga maskinen.
Byt fil till /etc/services och lägg till i slutet på filen:

nrpe 5666/tcp #nrpe

Starta nu om xinetd, /etc/initd./xinetd restart. om allt har gått enligt plan så ska du nu ha en nrpe-demon körandes, för att kolla det kör:

netstat -at | grep nrpe
Det borde ge dig, gör det inte det prova starta om xinted.d igen, funkar inte det kolla syslog efter felmeddelanden.

tcp        0      0 *:nrpe                  *:*                     LISTEN

För att testa om nrpe funkar,  anslut till NRPE demonen med check_nrpe:

/usr/local/icinga/libexec/check_nrpe -H localhost

Det borde ge dig något liknande:
NRPE v2.8

Konfigurera Server01 för NRPE

Ladda ner källkodspaketet för NRPE på maskinen som kör Icinga, anpassa ./configure för att använda samma användare som icinga(i mitt fall ‘icinga’).

./configure --with-nagios-user=icinganrpe --with-nagios-group=icinga --with-nrpe-user=icinga --with-nrpe-group=icinga --enable-ssl --libexecdir=/usr/local/icinga/libexec/ --bindir=/usr/local/icinga/bin/ --sysconfdir=/usr/local/icinga/etc
make all
make install-plugin

Skillnaden mot att installera på Server02 är att vi inte är intresserade av demonen utan bara pluginen, för att testa NRPE, ändra “Only From” i /etc/xinetd.d/nrpe och kör sedan samma kommando igen:

/usr/local/icinga/libexec/check_nrpe -H Server02

Det borde ge dig något liknande:
NRPE v2.8

Glöm om inte att byta ut Server02 mitt din servers IP! Om du får rätt svar så fungerar det, om den klagar på SSL, se till att du har openssl installerat och att det är samma version på båda maskinerna.

Nu är du klar med att installera NRPE på din maskiner, nu är nästa steg att konfigurera Icinga.
Läs mer om att konfa icinga med NRPE: http://abergmanse.wordpress.com/2010/05/06/konfigurera-icinga-for-nrpe/

Styr Icinga/Nagios från din iPhone

Det finns en uppsjö applikationer som låter dig ansluta och hantera din icingainstallation, men jag fastnade för en app som heter TouchMon(http://www.s-team.at/en/touchmon). Den är hyfsat dyr, då den kostar 99kr att köpa för fullversion, den låter dig ansluta till flera installationer samtidigt och den är reklamfri, men för den som vill testa så finns det en gratisversion som har reklam och är begränsad till att ansluta till en installation.