SOFTWARE DI
MONITORAGGIO OPEN
SOURCE
Monitoring di sistemi e di applicazioni
http://it.linkedin.com/in/robimassa
blogs.sysadmin.it/robimassa
http://it.linkedin.com/in/robimassa
Zenoss
Nato nel
2002
• Basato su Zope, Python, Net-SNMP, RRDtool, MySQL, Twisted
• Versione Core gratuita basata su GPL v2
• RPM per Redhat o Centos
• Appliance per VMWARE
• ZenPacks plug-in sviluppati dalla community per monitoring di
specifici workloads (device, software)
• Versione commerciale Enterprise basata sulla Core (supporto
+ features+certificazione per monitoring SQL e Exchange)
Zenoss: configurazione SNMP
IMPOSTAZIONE SERVIZIO SNMP
SU HOST WIN
IMPOSTAZIONE FILE SNMPD.CONF
SU HOST LINUX
####################################################
Access Control
####################################################
com2sec local localhost
monitoring
com2sec zenoss_host 10.10.1.71/32 monitoring
com2sec robipc 10.10.1.70/32 monitoring
group MyRWGroup any
group MyROGroup any
local
mynetwork robipc
view all included .1
80
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
access MyROGroup ""
any
noauth 0
all none none
####################################################
# System contact information
####################################################
syslocation Sala Server
syscontact [email protected]
trapsink cnslsrv.scroce.loc servers
Zenoss: raccolta dati
Traffico di rete
tramite SNMP
n° sessioni RDP
tramite WMI
NAGIOS
• Versione gratuita basata su GPL v2
• Plug-in sviluppati dalla community
(shell scripts, C++, Perl, Ruby, Python,
PHP, C#, etc..) per monitoring di
specifici workloads (device, software)
• Nagios Agents
• NRPE (plug-in remoto)
• NRDP (HTT/S, XML)
• NSClient++ (client remoto su TCP 1248)
• Versione commerciale Nagios XI™
con features ulteriori e maggiore
automazione
Nato nel
1996
Nagios: modalità di monitoraggio
Esecuzione comando
Agent less
Ritorno dello stato
Server Nagios
Oggetto da monitorare
check_command
check_disk_smb!archivi!DOMINIO!USERNAME!PASSWORD!80!90
Esecuzione comando
Ritorno dello stato
Server Nagios
NRPE
TCP/5666
Agente remoto (NRPE)
check_command
check_nrpe!comando_eseguito_sul_server_remoto
Oggetto da monitorare
Nagios dichiarazione di un servizio
define service {
service_description
use
host_name
is_volatile
check_period
max_check_attempts
normal_check_interval
retry_check_interval
contact_groups
notification_options
notification_interval
notification_period
check_command
}
Comando lato server Nagios
Controllo servizio ORACLE Cluster Takover
generic-service
cluster.dominio.locale
0
24x7
4
5
1
cluster_takeover
w,u,c,r
960
24x7
check_nrpe!check_rhcluster_status
Comando lato host monitorato con NRPE
command[check_rhcluster_status]=
/usr/lib64/nagios/plugins/check_rhcluster_status servizio_in_cluster nodo1 nodo2
Nagios implementazione di un plug-in
#!/bin/bash
# Plugin di controllo stato servizi in Cluster Robi Massa vrs. 1.0 2011
# ./controllo_servizi_cluster 1 2 3
# N.B. il comando viene eseguito con il demone NRPE che normalmente ha privilegi ridotti rispetto a root, in alcune versioni di RHCLUSTER il comando CLUSTAT
# non funziona se non lanciato da root e' necessario quindi eseguire il comando chmod u+s /usr/sbin/clustat per consentire il funzionamento corretto
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^[^\\/]*$,,'`
. $PROGPATH/utils.sh
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
#Parametri NORMALE=condizione in cui il servizio gira sul nodo designato, SERVIZIO =nome servizio da controllare
SERVIZIO=$1
NORMALE=$2
VARSERVICE=service:
#usata per costruire la parte invariabile della stringa di confronto
VARSTARTED=started
#usata per costruire la parte invariabile della stringa di confronto
#Estrazione output comando clustat relativo alla riga del servizio monitorato eliminando gli spazi (senza formattazione vi sono caratteri che falsano il confronto)
RETVAL=$(/usr/sbin/clustat |grep -w $SERVIZIO | sed 's/ //g')
# costruzione stringa confronto nel modo in cui dovrebbe essere presentata se il servizio fosse sul nodo corretto
CONFRONTO=$VARSERVICE$SERVIZIO$NORMALE$VARSTARTED
if [[ "$RETVAL" == "$CONFRONTO" ]] ; then
echo "OK il servizio $SERVIZIO e' sul nodo $NORMALE"
exit $STATE_OK
elif [[ "$RETVAL" != "$CONFRONTO" ]] ; then
echo "ATTENZIONE il servizio $SERVIZIO non e' sul nodo $NORMALE"
exit $STATE_WARNING
else
echo "controllo dello stato del servizio $SERVIZIO impossibile verificare lo stato possibile BLOCCO"
exit $STATE_CRITICAL
fi
Zenoss vs Nagios
• Buona integrazione con
WMI
• Configurabile tramite
interfaccia WEB
• Nasce per raccogliere dati e
presentarli graficamente
• Molto flessibile
• Configurazione poco
amichevole (tramite file di
testo)*
• Nasce per eseguire il test
delle stato di attività e
visualizzarlo graficamente
*Esistono progetti che prevedono utilità
di configurazione grafiche del Nagios
p.es NagiosQL
DEMO
Grazie.
QUESTIONS
&
ANSWERS
Scarica

Software di monitoraggio open source