LPS:Přechod na NRPE pro Nagios

Z HelpDesk

Snažíme se od vlastního řešení přejít na standardní s novými vymoženostmi.

Současný stav

Nyní používáme port 1040 pro vzdálené testy, typicky volný prostor na disku. Nagios server otevře port 1040 a pošle požadavek, ten mu vrátí nagios řetězec. Na straně monitorovaného hosta je inetd se skriptem netsaint_statd-stdperl na portu 1040 (nutné přidání do /etc/services). Toto řešení má několik nevýhod:

  • je nutné skript ručně udržovat a je citlivý na změn
  • je v perlu a není dostatečně rychlý, zbytečně zatěžuje systém
  • neupgraduje se se systémem
  • nepodporuje performance data, testy by se musely přepsat
  • umožňuje pouze omezenou sadu testů, nelze použít standardní pluginy
  • závislé na inetd

Přechod

Stačí nainstalovat cfengine-community z cfengine.com, o všechno, co je uvedeno ve skriptu níže se postará. Stačí nainstalovat a po kafíčku bude hotovo.

Je otestováno pro Debian/Wheezy, na ostatních distribucích je potřeba postupovat opatrněji a řídit se obsahem skriptu:

/afs/.zcu.cz/common/scripts/upgrade/netsaint_to_nrpe.sh

Opravy

Následně je třeba v NConf provést úpravy

  • změnit testy pro daného hosta, tak aby se využívalo nrpe
  • pročistit zbytečně překrývající se templaty pro hosta
  • pročistit zbytečně překrývající se templaty pro jednotlivé služby

Spustit vygenerování konfigurace a otestovat výsledek.

Specifika některých testů

PostgreSQL

Zde převzato z wiki. Instalovat pouze po doinstalovani nrpe, ten vytvori uzivatele nagios.

echo "local template1 nagios trust" >> /etc/postgresql/9.1/main/pg_hba.conf
su postgres
createuser -S -R -D nagios # pokud nefunguje, pust bez parametru a vypln nasledujici otazky
Enter name of role to add: nagios
Shall the new role be a superuser? (a/n) n
Shall the new role be allowed to create databases? (a/n) n
Shall the new role be allowed to create more new roles? (a/n) n
exit
/etc/init.d/postgresql restart


Pro testování je možné lokálně použit příkaz, ale je třeba změnit v /etc/passwd shell uživatele nagios a pak zase zpátky

chsh -s /bin/bash nagios
su -c /usr/lib/nagios/plugins/check_pgsql nagios
OK - database template1 (0 sec.)|time=0,000000s;2,000000;8,000000;0,000000
chsh -s /bin/false nagios

MySQL

Plugin a dokumentace je od komerční firmy, zahrnuto v balících debianu. Je možno použít systémový účet debianů pro správu databáze (viz /etc/mysql/debian.cnf) nebo vytvořit nového uživatele v databázi:

mysql -u root -p
GRANT usage ON *.* TO 'nagios'@'localhost' IDENTIFIED BY 'nagiospassword'

Heslo i uživatele (pokud je v konfliktu) nastavit dle služby v NConfu.

Plugin si vytváří pomocné soubory v /var/cache/nagios/, ale protože běží pod NRPE jako nagios, je nutné mu nastavit přístup (správu adresáře zajišťuje CFEngine):

chown nagios:nagios /var/cache/nagios

Test je jednoduchý:

/usr/lib/nagios/plugins/check_mysql_health --user=nagios --hostname=localhost --password=nagiospassword -mode=connection-time

Měření teploty

Kde se nachází sonda pro měření teploty, je třeba povolit uživateli nagios čtení ze seriového portu. Stačí přiřadit do skupiny:

usermod -G dialout -a nagios

Kontrola ssh na student6

Na hype přidat klíč (napsat 'yes'):

su nagios
ssh student6@SERVER.zcu.cz
yes
ctrl+c
exit

A na cílovém stroji změnit logout za exit v:

vim /home/student5/.profile