giovedì, maggio 01, 2014

Nagios Check RBL mailserver

- post<li> - Permalink

Ciao, gestendo diversi mailserver, può capitare che qualcuno di questi finisca in qualche famigerata DNBL o RBL.

I motivi per cui questo può accadere sono i più diversi, ma tra quelli di attualità, almeno nel mio caso, ci sono delle e-mail a cui vengono rubate le credenziali di accesso e quindi queste vengono usate non tanto per leggere la relativa casella, ma quanto per spedire attraverso un mailserver dotato di una buona fama.

Ovviamente scoprire dai propri clienti che un server non recapita più correttamente i messaggi perché è finito in qualche lista nera è poco edificante e soprattutto poco professionale.

Pertanto se vogliamo monitorare con il nostro Nagios anche questo aspetto dobbiamo installare l'apposito plugin!

Il plugin check_rbl è scaricabile da qui https://trac.id.ethz.ch/projects/nagios_plugins/wiki/check_rbl e le istruzioni per l'installazione le trovate su https://trac.id.ethz.ch/projects/nagios_plugins/browser/check_rbl/INSTALL .

Nell'installazione, oltre a verificare che siano rispettati i relativi requisiti (pochi e molto comuni) dovete solo verificare dove risiedono gli altri plugin di Nagios.

Nel mio caso, per esempio la prima riga è stata, ad esempio:

> perl Makefile.PL INSTALLSITESCRIPT=/usr/local/nagios/libexec/

una volta installato si può testare subito con gli esempi riportati nel wiki

> perl check_rbl -t 60 -H nagios.org \
-s dnsbl.ahbl.org \
-s cbl.abuseat.org \
-s dnsbl.cyberlogic.net \
-s bl.deadbeef.com \
-s spamtrap.drbl.drand.net \
-s spamsources.fabel.dk \
-s 0spam.fusionzero.com \
-s mail-abuse.blacklist.jippg.org \
-s korea.services.net \
-s spamguard.leadmon.net \
-s ix.dnsbl.manitu.net \
-s relays.nether.net \
-s dnsbl.njabl.org \
-s bhnc.njabl.org \
-s no-more-funn.moensted.dk \
-s rbl.orbitrbl.com \
-s psbl.surriel.com \
-s dyna.spamrats.com \
-s noptr.spamrats.com \
-s spam.spamrats.com \
-s dnsbl.sorbs.net \
-s spam.dnsbl.sorbs.net \
-s bl.spamcannibal.org \
-s bl.spamcop.net \
-s pbl.spamhaus.org \
-s sbl.spamhaus.org \
-s xbl.spamhaus.org \
-s ubl.unsubscore.com \
-s dnsbl-1.uceprotect.net \
-s dnsbl-2.uceprotect.net \
-s dnsbl-3.uceprotect.net \
-s db.wpbl.info \
-s access.redhawk.org \
-s blacklist.sci.kun.nl \
-s bl.technovision.dk \
-s dnsbl.kempt.net \
-s dnsbl.solid.net \
-s dul.ru \
-s forbidden.icm.edu.pl \
-s hil.habeas.com \
-s rbl.schulte.org \
-s sbl-xbl.spamhaus.org

Io, per maggior scalabilità, ho preferito usare il file di configurazione esterno check_rbl.ini con la lista delle blacklist da consultare e quindi ho preparato un command (dentro al file command.cfg) fatto in questo modo:

# check rbl
define command{
command_name check_rbl
command_line $USER1$/check_rbl --extra-opts=rbl@$USER1$/check_rbl.ini -t 240 -H $HOSTADDRESS$
}

infine, dentro al file dei controlli relativi al singolo mailserver ho aggiunto semplicemente le righe:

define service{
use generic-service,srv-pnp
host_name mail
service_description RBL
check_command check_rbl
}

Se tutto è corretto il sistema comincia a verificare se e quando il server monitorato è finito in qualche blacklist. Comodo no?

Il mio file check_rbl.ini con le blacklist da consultare è questo:
[rbl]
;http://multirbl.valli.org/list/ - 2014-08-29
server=0spam.fusionzero.com
server=0spam-killlist.fusionzero.com
server=combined.abuse.ch
server=drone.abuse.ch
server=spam.abuse.ch
server=httpbl.abuse.ch
server=uribl.zeustracker.abuse.ch
server=ipbl.zeustracker.abuse.ch
server=contacts.abuse.net
server=rbl.abuse.ro
server=uribl.abuse.ro
server=abuse-contacts.abusix.org
server=dnsbl.ahbl.org
server=ircbl.ahbl.org
server=rhsbl.ahbl.org
server=spam.dnsbl.anonmails.de
server=list.anonwhois.net
server=dnsbl.anticaptcha.net
server=dnsbl6.anticaptcha.net
server=orvedb.aupads.org
server=rsbl.aupads.org
server=l1.apews.org
server=l2.apews.org
server=aspews.ext.sorbs.net
server=dnsbl.aspnet.hu
server=ips.backscatterer.org
server=b.barracudacentral.org
server=bb.barracudacentral.org
server=list.bbfh.org
server=l1.bbfh.ext.sorbs.net
server=l2.bbfh.ext.sorbs.net
server=l3.bbfh.ext.sorbs.net
server=l4.bbfh.ext.sorbs.net
server=bbm.2ch.net
server=niku.2ch.net
server=bbx.2ch.net
server=all.ascc.dnsbl.bit.nl
server=all.v6.ascc.dnsbl.bit.nl
server=all.dnsbl.bit.nl
server=ipv6.all.dnsbl.bit.nl
server=bitonly.dnsbl.bit.nl
server=blacklist.netcore.co.in
server=rbl.blakjak.net
server=netscan.rbl.blockedservers.com
server=rbl.blockedservers.com
server=spam.rbl.blockedservers.com
server=list.blogspambl.com
server=bsb.empty.us
server=bsb.spamlookup.net
server=query.bondedsender.org
server=plus.bondedsender.org
server=dnsbl.burnt-tech.com
server=blacklist.sci.kun.nl
server=whitelist.sci.kun.nl
server=dul.blackhole.cantv.net
server=hog.blackhole.cantv.net
server=rhsbl.blackhole.cantv.net
server=rot.blackhole.cantv.net
server=spam.blackhole.cantv.net
server=cbl.anti-spam.org.cn
server=cblplus.anti-spam.org.cn
server=cblless.anti-spam.org.cn
server=cdl.anti-spam.org.cn
server=cml.anti-spam.org.cn
server=cbl.abuseat.org
server=rbl.choon.net
server=rwl.choon.net
server=ipv6.rbl.choon.net
server=ipv6.rwl.choon.net
server=zz.countries.nerd.dk
server=dnsbl.cyberlogic.net
server=bogons.cymru.com
server=v4.fullbogons.cymru.com
server=v6.fullbogons.cymru.com
server=origin.asn.cymru.com
server=origin6.asn.cymru.com
server=peer.asn.cymru.com
server=tor.dan.me.uk
server=torexit.dan.me.uk
server=ex.dnsbl.org
server=in.dnsbl.org
server=rbl.dns-servicios.com
server=dnsbl.ipocalypse.net
server=dnsbl.mags.net
server=dnsbl.mcu.edu.tw
server=dnsbl.othello.ch
server=dnsbl.rv-soft.info
server=dnsblchile.org
server=list.dnswl.org
server=vote.drbl.caravan.ru
server=vote.drbldf.dsbl.ru
server=vote.drbl.gremlin.ru
server=work.drbl.caravan.ru
server=work.drbldf.dsbl.ru
server=work.drbl.gremlin.ru
server=bl.drmx.org
server=dnsbl.dronebl.org
server=rbl.efnet.org
server=rbl.efnetrbl.org
server=tor.efnet.org
server=bl.emailbasura.org
server=rbl.fasthosts.co.uk
server=fnrbl.fast.net
server=forbidden.icm.edu.pl
server=88.blocklist.zap
server=hil.habeas.com
server=accredit.habeas.com
server=sa-accredit.habeas.com
server=hul.habeas.com
server=sohul.habeas.com
server=hostkarma.junkemailfilter.com
server=nobl.junkemailfilter.com
server=lookup.dnsbl.iip.lu
server=spamrbl.imp.ch
server=wormrbl.imp.ch
server=dnsbl.inps.de
server=dnswl.inps.de
server=intercept.datapacket.net
server=rbl.interserver.net
server=any.dnsl.ipquery.org
server=backscat.dnsl.ipquery.org
server=netblock.dnsl.ipquery.org
server=relay.dnsl.ipquery.org
server=single.dnsl.ipquery.org
server=rbl.ipv6wl.eu
server=iadb.isipp.com
server=iadb2.isipp.com
server=iddb.isipp.com
server=wadb.isipp.com
server=whitelist.rbl.ispa.at
server=mail-abuse.blacklist.jippg.org
server=dnsbl.justspam.org
server=dnsbl.kempt.net
server=spamlist.or.kr
server=bl.konstant.no
server=admin.bl.kundenserver.de
server=relays.bl.kundenserver.de
server=schizo-bl.kundenserver.de
server=spamblock.kundenserver.de
server=worms-bl.kundenserver.de
server=spamguard.leadmon.net
server=dnsbl.madavi.de
server=ipbl.mailhosts.org
server=ipwl.mailhosts.org
server=rhsbl.mailhosts.org
server=rhswl.mailhosts.org
server=shortlist.mailhosts.org
server=xpews.mailhosts.org
server=c10.rbl.hk
server=bl.mailspike.net
server=rep.mailspike.net
server=wl.mailspike.net
server=z.mailspike.net
server=bl.mav.com.br
server=cidr.bl.mcafee.com
server=rbl.megarbl.net
server=dnsbl.forefront.microsoft.com
server=bl.mipspace.com
server=combined.rbl.msrbl.net
server=images.rbl.msrbl.net
server=phishing.rbl.msrbl.net
server=spam.rbl.msrbl.net
server=virus.rbl.msrbl.net
server=web.rbl.msrbl.net
server=relays.nether.net
server=trusted.nether.net
server=unsure.nether.net
server=ix.dnsbl.manitu.net
server=no-more-funn.moensted.dk
server=nospam.ant.pl
server=wl.nszones.com
server=dyn.nszones.com
server=sbl.nszones.com
server=bl.nszones.com
server=ubl.nszones.com
server=dnsbl.openresolvers.org
server=blacklist.mail.ops.asp.att.net
server=blacklist.sequoia.ops.asp.att.net
server=rbl.orbitrbl.com
server=netblock.pedantic.org
server=spam.pedantic.org
server=pofon.foobar.hu
server=rbl.polarcomm.net
server=safe.dnsbl.prs.proofpoint.com
server=dnsbl.proxybl.org
server=psbl.surriel.com
server=whitelist.surriel.com
;server=list.quorum.to
server=all.rbl.jp
server=dyndns.rbl.jp
server=short.rbl.jp
server=url.rbl.jp
server=virus.rbl.jp
server=rbl.schulte.org
server=rbl.talkactive.net
server=rbl.zenon.net
server=access.redhawk.org
server=eswlrev.dnsbl.rediris.es
server=mtawlrev.dnsbl.rediris.es
server=dnsbl.rizon.net
server=dynip.rothen.com
server=asn.routeviews.org
server=aspath.routeviews.org
server=dul.ru
server=dnsbl.rymsho.ru
server=rhsbl.rymsho.ru
server=all.s5h.net
server=ipv6.all.s5h.net
server=dyn.sbg-rbl.org
server=dyn2.sbg-rbl.org
server=sbg.sbg-rbl.org
server=tor.dnsbl.sectoor.de
server=exitnodes.tor.dnsbl.sectoor.de
server=query.senderbase.org
server=sa.senderbase.org
server=bl.score.senderscore.com
server=bl.shlink.org
server=dmm.shlink.org
server=dyn.shlink.org
server=rhsbl.shlink.org
server=rhswl.shlink.org
server=wl.shlink.org
server=blackholes.scconsult.com
server=dnsbl.sorbs.net
server=problems.dnsbl.sorbs.net
server=proxies.dnsbl.sorbs.net
server=relays.dnsbl.sorbs.net
server=safe.dnsbl.sorbs.net
server=nomail.rhsbl.sorbs.net
server=badconf.rhsbl.sorbs.net
server=dul.dnsbl.sorbs.net
server=zombie.dnsbl.sorbs.net
server=block.dnsbl.sorbs.net
server=escalations.dnsbl.sorbs.net
server=http.dnsbl.sorbs.net
server=misc.dnsbl.sorbs.net
server=smtp.dnsbl.sorbs.net
server=socks.dnsbl.sorbs.net
server=rhsbl.sorbs.net
server=spam.dnsbl.sorbs.net
server=recent.spam.dnsbl.sorbs.net
server=new.spam.dnsbl.sorbs.net
server=old.spam.dnsbl.sorbs.net
server=web.dnsbl.sorbs.net
server=korea.services.net
server=geobl.spameatingmonkey.net
server=origin.asn.spameatingmonkey.net
server=backscatter.spameatingmonkey.net
server=badnets.spameatingmonkey.net
server=bl.spameatingmonkey.net
server=fresh.spameatingmonkey.net
server=fresh10.spameatingmonkey.net
server=fresh15.spameatingmonkey.net
server=bl.ipv6.spameatingmonkey.net
server=netbl.spameatingmonkey.net
server=uribl.spameatingmonkey.net
server=urired.spameatingmonkey.net
server=singlebl.spamgrouper.com
server=netblockbl.spamgrouper.com
server=all.spam-rbl.fr
server=geobl.spamanalysis.org
server=bl.spamcannibal.org
server=dnsbl.spam-champuru.livedoor.com
server=bl.spamcop.net
server=dbl.spamhaus.org
server=_vouch.dwl.spamhaus.org
server=pbl.spamhaus.org
server=sbl.spamhaus.org
server=sbl-xbl.spamhaus.org
server=swl.spamhaus.org
server=xbl.spamhaus.org
server=zen.spamhaus.org
server=feb.spamlab.com
server=rbl.spamlab.com
server=all.spamrats.com
server=dyna.spamrats.com
server=noptr.spamrats.com
server=spam.spamrats.com
server=spamsources.fabel.dk
server=bl.spamstinks.com
server=badhost.stopspam.org
server=block.stopspam.org
server=dnsbl.stopspam.org
server=dul.pacifier.net
server=multi.surbl.org
server=xs.surbl.org
server=srn.surgate.net
server=dnsbl.swiftbl.org
server=dnsrbl.swinog.ch
server=uribl.swinog.ch
server=rbl.tdk.net
server=bl.technovision.dk
server=st.technovision.dk
server=dob.sibl.support-intelligence.net
server=dbl.tiopan.com
server=bl.tiopan.com
server=opm.tornevall.org
server=r.mail-abuse.com
server=q.mail-abuse.com
server=rbl2.triumf.ca
server=wbl.triumf.ca
server=truncate.gbudb.net
server=wl.trusted-forwarder.org
server=dunk.dnsbl.tuxad.de
server=hartkore.dnsbl.tuxad.de
server=dnsbl-0.uceprotect.net
server=dnsbl-1.uceprotect.net
server=dnsbl-2.uceprotect.net
server=dnsbl-3.uceprotect.net
server=ubl.unsubscore.com
server=black.uribl.com
server=grey.uribl.com
server=multi.uribl.com
server=red.uribl.com
server=white.uribl.com
server=free.v4bl.org
server=ip.v4bl.org
server=virbl.dnsbl.bit.nl
server=dnsbl.webequipped.com
server=ips.whitelisted.org
server=blacklist.woody.ch
server=ipv6.blacklist.woody.ch
server=uri.blacklist.woody.ch
server=db.wpbl.info
server=bl.blocklist.de
server=dnsbl.zapbl.net
server=rhsbl.zapbl.net
server=zebl.zoneedit.com
server=ban.zebl.zoneedit.com


Sognate e mirate sempre più in alto di quello che ritenete alla vostra portata. Non cercate solo di superare i vostri contemporanei o i vostri predecessori. Cercate, piuttosto, di superare voi stessi. (da Sartoris)

giovedì, novembre 28, 2013

Nagios Monitor Qmail - qmailtoaster & qmailmrtg

- post<li> - Permalink

Monitor server infrastructure is today a life-safer activity, for example, react immediately to a mail-password-steal can preserve you to be listed in spammer lists (aka blacklists) :D .

To monitor a CentOS mailserver with qmailtoaster using nagios the step are:

  • Install Nagios Plugin and NRPE on target mailserver

  1. /usr/sbin/useradd nagios
  2. passwd nagios
  3. mkdir /download
  4. cd download
  5. wget https://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz
  6. tar zxvf nagios-plugins-1.5.tar.gz
  7. cd nagios-plugins-1.5
  8. ./configure
  9. make
  10. make install
  11. chown nagios.nagios /usr/local/nagios
  12. chown -R nagios.nagios /usr/local/nagios/libexec
  13. cd ..
  14. wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz 
  15.  tar zxvf nrpe-2.15.tar.gz
  16.  cd nrpe-2.15
  17. ./configure
  18. make all
  19. make install-plugin
  20. make install-daemon
  21. make install-daemon-config
  22. make install-xinetd
  23. Edit the /etc/xinetd.d/nrpe file and add the IP address of the monitoring server to the only_from directive.
    only_from = 127.0.0.1 <nagios_ip_address>
  24. Add the following entry for the NRPE daemon to the /etc/services file:
    nrpe 5666/tcp # NRPE
  25. service xinetd restart
  26. Add the following entry for the NRPE daemon to the /etc/sysconfig/iptables file:
    # NRPE
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5666 -j ACCEPT
  27. service iptables restart
  28. Edit the /usr/local/nagios/etc/nrpe.cfg file and add the follow lines in the # COMMAND DEFINITIONS section
    command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
    command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
    command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/mapper/VolGroup00-LogVol00
    command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
    command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
    command[check_qq]=/usr/local/nagios/libexec/check_mrtg -F /usr/share/toaster/htdocs/mrtg/queue-size.log -a MAX -v 1 -w 300 -c 500 -l 'Messages in queue'
    command[check_smtp]=/usr/local/nagios/libexec/check_mrtg -F /usr/share/toaster/htdocs/mrtg/smtp.log -a MAX -v 1 -w 19 -c 20 -l 'Concurrent Smtp'
    

  • Configure Nagios on monitor

  1. Edit the /usr/local/nagios/etc/objects/commands.cfg adding:
    define command{
            command_name check_nrpe
            command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
    }
    
  2. Edit the /usr/local/nagios/etc/servers/mailserver.cfg adding:
    define service{
            use             generic-service,srv-pnp         ; Inherit default values from a template
            host_name               mailserver
            service_description     SSH
            check_command   check_ssh
            }
    
    define service{
            use             generic-service,srv-pnp         ; Inherit default values from a template
            host_name               mailserver
            service_description     SMTP
            check_command   check_smtp!-t 60
            }
    
    define service{
            use             generic-service,srv-pnp         ; Inherit default values from a template
            host_name               mailserver
            service_description     POP3
            check_command   check_pop!-t 60
            }
    
    define service{
            use             generic-service,srv-pnp         ; Inherit default values from a template
            host_name               mailserver
            service_description     DISK            
            check_command           check_nrpe!check_disk
            }
    
    define service{
            use             generic-service,srv-pnp         ; Inherit default values from a template
            host_name               mailserver
            service_description     LOAD            
            check_command           check_nrpe!check_load
            }
    
    define service{
            use             generic-service,srv-pnp         ; Inherit default values from a template
            host_name               mailserver
            service_description     QmailserverQueue              
            check_command           check_nrpe!check_qq
            }
    
    define service{
            use             generic-service,srv-pnp         ; Inherit default values from a template
            host_name               mailserver
            service_description     ConcurrentSMTP          
            check_command           check_nrpe!check_smtp
            }
    
  3. service nagios restart
If all ok you'll be must view in your nagios interface something as in the top image :D

My nightmare is the qmailqueue and your?

Byez

"If the brain were so simple we could understand it, we would be so simple we couldn't."

giovedì, agosto 29, 2013

rm cp mv chiedono sempre il permesso di sovrascrivere?

- post<li> - Permalink

Si lo so è l'uovo di colombo, una volta scoperto è una banalità sconfortante, ma potrebbe capitare anche a voi che lanciate il comando

> cp -rf wordpress/* httpdocs/

e lui per tutta risposta vi chiede se siete sicuri di voler sovrascrivere ogni singolo file! Rispondere "yes" per qualche migliaio di file non è per niente piacevole! :D

Il mv è equivalente.

La soluzione?
> \cp -rf wordpress/* httpdocs/

Il motivo? Gli alias! provate a guardare dentro al file .bashrc

 User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

Semplice no?

Byez

La banalizzazione è il prezzo della comunicazione. 

giovedì, maggio 23, 2013

Nagios check vmware esx - CentOS 6

- post<li> - Permalink

Monitorare molti aspetti di VMWare Esxi con Nagios può essere molto semplice se si riescono a mettere in fila alcuni problemi creati da guide che già a distanza di un anno possono essere datate e quindi non più valide.

Mi segno qui i passi anche per mia futura memoria:
  1. Installazione Perl-SDK di VMware 5.1
  2. Installazione / configurazione Op5 check_esx (check_vmware_api) plugin for Nagios
  3. Configurazione Nagios

Ambiente:


Procedura:

  1. CentOS, Nagios e PNP4Nagios li considero già installati e funzionanti

  2. Scaricare, una volta autenticati,  e installare Perl-SDK di VMware 5.1

    •  installare un po' di pre-requisiti con il comando:
      yum -y install openssl-devel perl-Archive-Zip perl-Class-MethodMaker uuid-perl perl-SOAP-Lite perl-XML-SAX perl-XML-NamespaceSupport perl-XML-LibXML perl-MIME-Lite perl-MIME-Types perl-MailTools perl-TimeDate uuid libuuid perl-Data-Dump perl-UUID
    • estrarre il file VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz ed lanciare l'installazione
      tar zxvf VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz
      cd vmware-vsphere-cli-distrib
      ./vmware-install.pl
    •  Qui sorgono due problemi che si risolvono così
      • L'installazione del perl-SDK di VMware si blocca perche chiede l'httpproxy e l'ftpproxy anche se non sono necessari. Modificare il file vmware-install.pl in questo modo
        my $httpproxy =1;
        my $ftpproxy =1;
      • Non riesce a installare il componente perl UUID. Io la soluzione l'ho trovata qui:
        yum install libuuid-devel
        perl -MCPAN -e'install UUID'
    • Ora i problemi dovrebbero essere risolti e quindi si può rilanciare il comando:
      ./vmware-install.pl
  3. Installare perl-Nagios-Plugin con il comando

    yum install perl-Nagios-Plugin
  4. Scaricare il plugin di Op5 check_vmware_api.pl:

    cd /usr/local/nagios/libexec/
    wget "http://git.op5.org/git/?p=nagios/op5plugins.git;a=blob_plain;f=check_vmware_api.pl" -O check_vmware_api.pl
    chmod +x check_vmware_api.pl
    chown nagios.nagios check_vmware_api.pl
  5. Configurare un Utente dentro a ESXi con permessi in sola lettura:

    • "Tramite vSphere Client –> Local Users & Groups, creare un utente che sarà utilizzato dal plugin per monitorare il sistema. Prestare attenzione al formato della password che richiede certi criteri di password complexity." Una buona password potrebbe essere quella suggerita da Come scegliere una password 2 ovvero due parole divise da un numero e almeno una maiuscola tipo passione4Patata
    • "In vSphere Client –> Permissions, assegnare il ruolo di Read-only all’utente appena creato e cliccare su OK."









  6. Ora possiamo testare il funzionamento del plugin con i comandi:

    /usr/local/nagios/libexec/check_vmware_api.pl -H IpEsxiHost -u UtenteCreato -p PasswordScelta -l runtime
    CHECK_VMWARE_API.PL OK - 13/13 VMs up, overall status=green, connection state=connected, maintenance=no, All 194 health checks are Green, 2 config issue(s) | vmcount=13units;; health_issues=0;; config_issues=2;;

    oppure
    /usr/local/nagios/libexec/check_vmware_api.pl --H IpEsxiHost -u UtenteCreato -p PasswordScelta -l cpu -s usage -w 80 -c 90
    CHECK_VMWARE_API.PL OK - cpu usage=9.12 % | cpu_usage=9.12%;80;90
  7. E' giunta l'ora di configurare Nagios!

    •  Dentro al file /usr/local/nagios/etc/resource.cfg andiamo ad aggiungere
      ##Usati dal plugin check_vmware_api.pl 20130521 - http://www.feub.net/2010/12/monitoring-vmware-esxi-and-vsphere-with-nagios/
      $USER11$=UtenteCreato
      $USER12$=PasswordScelta
    • Al file /usr/local/nagios/etc/objects/commands.cfg andiamo aggiungere questi template
      #21/05/2013 - DG
      # check vmware esxi machine
      # check cpu
      define command{
              command_name check_esx_cpu
              command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l cpu -s usage -w $ARG1$ -c $ARG2$
              }
      
      # check memory usage
      define command{
              command_name check_esx_mem
              command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l mem -s usage -w $ARG1$ -c $ARG2$
              }
      
      # check memory usage
      define command{
              command_name check_esx_swap
              command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l mem -s swap -w $ARG1$ -c $ARG2$
              }
      
      # check net usage
      define command{
              command_name check_esx_net
              command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l net -s usage -w $ARG1$ -c $ARG2$
              }
      
      # check runtime status
      define command{
              command_name check_esx_runtime
              command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l runtime -s status
              }
      
      # check runtime status
      define command{
              command_name check_esx_runtime_issues
              command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l runtime -s issues
              }
      
      # check io read
      define command{
              command_name check_esx_ioread
              command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l io -s read -w $ARG1$ -c $ARG2$
              }
      
      # check io write
      define command{
              command_name check_esx_iowrite
              command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l io -s write -w $ARG1$ -c $ARG2$
              }
      
      # check vmfs
      define command{
              command_name check_esx_vmfs
              command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l vmfs -s $ARG1$ -o used  -w $ARG2$ -c $ARG3$
              }
      
      
    • Prepariamo il file relativo al server VMWare Esxi da monitorare dentro alla cartella /usr/local/nagios/etc/servers/EsxiHostName.cfg
      ###############################################################################
      ###############################################################################
      #
      # HOST DEFINITION
      #
      ###############################################################################
      ###############################################################################
      
      define host{
              use             linux-server,host-pnp           ; Inherit default values from a template
              host_name       EsxiHostName                               ; The name we're giving to this host
              alias           EsxiHostNameAlias                ; A longer name associated with the host
              address         IpEsxiHost                ; IP address of the host
              hostgroups      VirtualServer           ; Host groups this host is associated with
              }
      ###############################################################################
      ###############################################################################
      #
      # SERVICE DEFINITIONS
      #
      ###############################################################################
      define service{
              use                             local-service,srv-pnp         ; Name of service template to use
              host_name                       EsxiHostName
              service_description             PING
              check_command                   check_ping!100.0,20%!500.0,60%
              }
      
      # VMWare
      # check cpu
      define service{
              use                             generic-service,srv-pnp
              host_name                       EsxiHostName
              service_description             ESXi CPU Load
              check_command                   check_esx_cpu!80!90
              }
      
      # check memory usage
      define service{
              use                             generic-service,srv-pnp
              host_name                       EsxiHostName
              service_description             ESXi Memory usage
              check_command                   check_esx_mem!80!90
              }
      
      # check net
      define service{
              use                             generic-service,srv-pnp
              host_name                       EsxiHostName
              service_description             ESXi Network usage
              check_command                   check_esx_net!102400!204800
              }
      
      # check runtime status
      define service{
              use                             generic-service,srv-pnp
              host_name                       EsxiHostName
              service_description             ESXi Runtime status
              check_command                   check_esx_runtime
              }
      
      # check runtime issues
      define service{
              use                             generic-service,srv-pnp
              host_name                       EsxiHostName
              service_description             ESXi Runtime issues
              check_command                   check_esx_runtime_issues
              }
      
      # check io read
      define service{
              use                             generic-service,srv-pnp
              host_name                       EsxiHostName
              service_description             ESXi IO read
              check_command                   check_esx_ioread!40!90
              }
      
      # check io write
      define service{
              use                             generic-service,srv-pnp
              host_name                       EsxiHostName
              service_description             ESXi IO write
              check_command                   check_esx_iowrite!40!90
              }
      # check vmfs
      define service{
              use                             generic-service,srv-pnp
              host_name                       EsxiHostName
              service_description             ESXi datastore1
              check_command                   check_esx_vmfs!datastore1!80%!90%
              }
      
    • Testiamo il tutto e rilanciamo Nagios:
      /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
      service nagios restart
  8. Se tutto è in ordine adesso dovremmo trovarci nel nostro pannello una situazione come questa
    Nagios check_esx

Complimenti se siete riusciti ad arrivare fino a leggere queste righe, ma spero che questi riferimenti possano rappresentare la partenza per qualcun altro quando dovrà scrivere un articolo più aggiornato ;D

Riferimenti:

  1. La partenza di tutto è stato questo post di Paolo che ringrazio anche per le immagini relative alla creazione dell'utente in Esxi - Monitorare server ESX(i) con Nagios tramite plugin check_esx su CentOS. L'unica cosa da fare attenzione è che fa riferimento ancora al vecchio nome del plugin e non sono aggiornati i riferimenti per il download.
  2. Il link corretto e ufficiale da cui scaricare il plugin di Op5 lo trovate a questo indirizzo http://exchange.nagios.org/directory/Plugins/Operating-Systems/*-Virtual-Environments/VMWare/check_vmware_api/details
  3. Gli scheletri dei file di configurazione di Nagios sono tratti da Monitoring VMware ESXi and vSphere with Nagios riveduti e corretti by me
  4. Il dettaglio di tutto quello che si può monitorare con il plugin check_vmware_esxi.pl lo trovare nel sito di Op5 http://www.op5.com/how-to/monitoring-vmware-esx-3-x-esxi-vsphere-4-and-vcenter-server/ .
  5. Tutte, ma proprio tutte le opzioni le trovate con il comando
    /usr/local/nagios/libexec/check_vmware_api.pl --help
Byez

Ron. Drakken ha un chip per il controllo della mente?
Kim: Ancora un altro piano per la conquista del mondo.
Ron: Oppure vorrà obbligare la gente ad ascoltare le storie sulla sua infanzia contorta.