Kako daljinski kroz Nagios očitati broj poruka u mailq?

Korišćenjem Nagios-a i snmp-a, ili nrpe-a treba očitati koliki je Sendmail mailq na mail serveru (koji je udaljeni host).

1. Instalacija NRPE agenta na mail server (host koji hoćemo da pratimo)
Dakle instalacija NRPE agenta (može i sa # yum install nrpe* nagios-plugins*, može se desiti da treba bez zvezdica…..).
Paziti NI SLUČAJNO OBA NAČINA!!!!
# wget http://assets.nagios.com/downloads/nagiosxi/agents/linux-nrpe-agent.tar.gz (CentOS 5-6)
# tar xzf linux-nrpe-agent.tar.gz
# cd linux-nrpe-agent
# ./fullinstall
Tu će tražiti da se specificira sa koje IP adrese se može prilaziti, i tu navesti IP Nagios servera.
###################
Videti link4, kako kroz yum instalirati nrpe agenta na CentOS-u.
###################
2. Proveriti da li check_mailq plugin radi na mail serveru :
# cd /usr/local/nagios/libexec   
ako je instalirano kroz yum, lokacija je /usr/lib64/nagios/plugins/
To je lokacija gde je pri instalaciji NRPE agent smestio Nagios plugins.
# ./check_mailq -w2 -c5 -Msendmail -v

Ako vam se pri ovome javi ovakva greška :
Can’t locate utils.pm in @INC (@INC contains: nagios/plugins /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./check_mailq line 36.
BEGIN failed–compilation aborted at ./check_mailq line 36.

U samom skriptu check_mailq liniju (ovo se ne mora raditi za yum instalaciju, lokacija je tu OK podešena) :
use lib “nagios/plugins”;
zamenti sa :
use lib “/usr/local/nagios/libexec” ;
gde je ovo lokacija gde se posle instalacije nrpe agenta utils.pm nalazi

Posle ovoga će plugin lepo raditi na lokalnoj mašini :
# ./check_mailq -w2 -c5 -Msendmail -v
/usr/bin/mailq = /var/spool/mqueue is empty
/usr/bin/mailq = Total requests: 0
OK: mailq is empty|unsent=0;2;5;0

2a. Konfiguracije na udaljenom hostu čiji mailq se proverava
U samom konfiguracionom fajlu /usr/local/nagios/etc/nrpe.cfg (kod yum instalacije taj konfiguracioni fajl je u /etc/nagios folderu) treba dodati liniju koja opisuje komandu koju želimo da izvršimo daljinski :
command[check_mailq]=/usr/local/nagios/libexec/check_mailq -M sendmail -w 3 -c 2

Takođe treba dodati sa koje mašine se ove provere smeju uraditi (to je Nagios server) :
allowed_hosts=127.0.0.1,10.10.10.222,10.10.10.224

Takođe u /etc/sudoers fajlu treba dodati to da nalog nagios na hostu, može bez lozinke da izvrši komandu mailq (yum instalacija to stavlja sama, ali ipak proveriti) :
Defaults:nagios !requiretty
nagios ALL = (root) NOPASSWD: /usr/bin/mailq

U fajlu /usr/local/nagios/libexec/check_mailq, umesto linije (ovo se ne mora uraditi kada je instalacija preko yum-a) :
if (! open (MAILQ, “$utils::PATH_TO_MAILQ | ” ) ) {
staviti liniju :
if (! open (MAILQ, “/usr/bin/sudo $utils::PATH_TO_MAILQ | ” ) ) {

Ovo se posle testira direktno na lokalnom hostu :
Paziti da bi cela stvar radila nagios nalog mora imati /bin/bash shell.
# cd /usr/local/nagios/libexec
# su nagios -c “./check_mailq -w 5 -c 10”
OK: mailq (3) is below threshold (5/10)|unsent=3;5;10;0
###################
Ako je korišćen yum za instalaciju, sve izmene se vrše u fajlu /etc/nagios/nrpe.cfg (navedene su samo neke stavke u configuracionom fajlu) :
server_port=5666
nrpe_user=nagios ovde ni slučajno ne ostaviti nrpe!!!!
nrpe_group=nagios ovde ni slučajno ne ostaviti nrpe!!!!
allowed_hosts=127.0.0.1,10.10.10.222                  IP adresa Nagios servera, ovde MORA da bude zapeta između!!
command[check_mailq]=/usr/lib64/nagios/plugins/check_mailq -w 10 -c 20
Takođe, za yum instalaciju :
# service nrpe start
# chkconfig nrpe on
###################
Ako je za instalaciju korišćen ne-yum (ručna instalacija) i ako se servis pokreće korišćenjem Xinet.d-a, potrebno je podesiti i fajl /etc/xinet.d/nrpe :
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg –inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 10.10.10.222 10.10.10.224
}
#####################

2b. Na hostu obavezno podesiti i iptables da Nagios server može da priđe

3. Povezivanje hosta sa Nagios serverom korišćenjem NRPE-a
Šta je uopšte NRPE?
Pa evo kratkog objašnjenja : NRPE – Nagios Remote Plugin Executor, NRPE allows you to remotely execute Nagios plugins on other Linux/Unix machines. Dobar link kako to radi.

Pošto već imamo NRPE instaliran na hostu, treba proveriti fajlove : /etc/xinetd.d/nrpe i /usr/local/nagios/etc/nrpe.cfg, da li je tu Nagios server imenovan kao jedina IP adresa sa koje se mogu vršiti nrpe upiti (i naravno 127.0.0.1 mora tu takođe da stoji, između njih je samo blanko, bez zareza). Ako nije tako, izmeniti fajl, i restartovati xinetrd servis.

# chkconfig nrpe on       da bi se servis podigao posle restarta mašine

Ako se pri podizanju nrpe servisa (automatski se podiže posle reseta xinetd) javlja ovakva greška :
nrpe[5105]: Network server bind failure (98: Address already in use)
Znači da je nrpe instaliran i peške sa tar i automatski sa yum….. Jedan od ova dva treba deinstalirati.

Proveriti da li je nrpe daemon podignut :
# netstat -an|grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN

4. Nagios server i šta tu treba uraditi
Trebalo bi da na lokaciji /usr/lib/nagios/plugins postoji check_nrpe plugin (ako ga nema, instalirati ga).

Testirati da li Nagios server može da komunicira sa udaljenim hostom :
# ./check_nrpe -H 10.10.10.35
NRPE v2.14

Teba takođe definisati sledeće na Nagios serveru : host koji treba pratiti (to uglavnom već postoji), komandu vezanu za nrpe i servis koji tu komandu koristi.

Definicija hosta : fajl /etc/nagios/hosts.cfg
define host{
host_name mail.liste-10.10.10.35
alias mail.liste-10.10.10.35
address 10.10.10.35
parents gw-10.10.10.1                          ovo treba radi slike i rasporeda hostova

hostgroups mail_grupa  
naziv host grupe u kojoj će se videti server, i tu ga treba dodati
normal_check_interval 5 ovo se odnosi na minute, ako se nestavi default je 60
retry_check_interval 3
max_check_attempts 5
active_checks_enabled 0
passive_checks_enabled 0
check_period 24×7
contact_groups IT-racunari
notification_interval 60
notification_period 24×7
notification_options d,u,r
notifications_enabled 1
}

define hostgroup{
hostgroup_name mail_grupa
alias Grupa sa mail serverima
members mail.izvodi-10.10.10.41,mail.liste-10.10.10.35
}

Definicija komande : u fajlu /etc/Nagios/commands.cfg
#NRPE provera za mailq na Linux-u
define command{
command_name check_mailq_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c check_mailq
}

Definicija servisa : fajl /etc/Nagios/services.cfg
define service {
host_name liste.mail-10.35.2.35
service_description NRPE mailq provera
check_command check_mailq_nrpe!/
check_period 24×7
max_check_attempts 5
normal_check_interval 20
retry_check_interval 3
contact_groups IT-racunari
notification_interval 60
notification_period 24×7
notification_options w,u,c,r
}

I na kraju testiranje sa samog Nagios servera :
# ./check_nrpe -H 10.10.10.35 -c check_mailq
OK: mailq is empty|unsent=0;2;3;0

Dodatak : Gde su koji fajlovi na hostu, vezani za NRPE
Konfiguracioni fajlovi na hostu kojeg proveravamo : /usr/local/nagios/etc/nrpe.cfg i *****
U oba treba da stoji isto.
Egzekutor fajl na hostu : /etc/xinetd.d/nrpe
####################
Ako je u pitanju yum instalacija : /etc/nagios/nrpe.cfg je jedini konfiguracioni fajl.
####################

Dobri linkovi : link1, link2, link3, link3a

Super link4.