Upload
urbano-santoro
View
219
Download
0
Tags:
Embed Size (px)
Citation preview
SOFTWARE DI MONITORAGGIO OPEN SOURCE
Monitoring di sistemi e di applicazioni
http://it.linkedin.com/in/robimassablogs.sysadmin.it/robimassahttp://it.linkedin.com/in/robimassa
Zenoss
• 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)
Nato nel2002
Zenoss: configurazione SNMP
IMPOSTAZIONE SERVIZIO SNMPSU HOST WIN
IMPOSTAZIONE FILE SNMPD.CONFSU HOST LINUX####################################################Access Control####################################################
com2sec local localhost monitoringcom2sec zenoss_host 10.10.1.71/32 monitoringcom2sec robipc 10.10.1.70/32 monitoring
group MyRWGroup any localgroup MyROGroup any mynetwork robipc
view all included .1 80view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
access MyROGroup "" any noauth 0 all none none
##################################################### System contact information####################################################
syslocation Sala Serversyscontact [email protected]
trapsink cnslsrv.scroce.loc servers
Zenoss: raccolta dati
n° sessioni RDPtramite WMI
Traffico di retetramite SNMP
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 nel1996
Nagios: modalità di monitoraggio
Oggetto da monitorare
Server Nagios
Ritorno dello stato
Esecuzione comando
check_command check_disk_smb!archivi!DOMINIO!USERNAME!PASSWORD!80!90
Agent less
Oggetto da monitorare
Server NagiosRitorno dello stato
Esecuzione comando
NRPE
check_command check_nrpe!comando_eseguito_sul_server_remoto
TCP/5666
Agente remoto (NRPE)
Nagios dichiarazione di un serviziodefine service { service_description Controllo servizio ORACLE Cluster Takover use generic-service host_name cluster.dominio.locale is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 contact_groups cluster_takeover notification_options w,u,c,r notification_interval 960 notification_period 24x7 check_command check_nrpe!check_rhcluster_status}
Comando lato server Nagios
command[check_rhcluster_status]=/usr/lib64/nagios/plugins/check_rhcluster_status servizio_in_cluster nodo1 nodo2
Comando lato host monitorato con NRPE
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.shSTATE_OK=0STATE_WARNING=1STATE_CRITICAL=2#Parametri NORMALE=condizione in cui il servizio gira sul nodo designato, SERVIZIO =nome servizio da controllare SERVIZIO=$1NORMALE=$2VARSERVICE=service: #usata per costruire la parte invariabile della stringa di confrontoVARSTARTED=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 correttoCONFRONTO=$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